this post was submitted on 23 Sep 2023
80 points (92.6% liked)

Technology

34894 readers
962 users here now

This is the official technology community of Lemmy.ml for all news related to creation and use of technology, and to facilitate civil, meaningful discussion around it.


Ask in DM before posting product reviews or ads. All such posts otherwise are subject to removal.


Rules:

1: All Lemmy rules apply

2: Do not post low effort posts

3: NEVER post naziped*gore stuff

4: Always post article URLs or their archived version URLs as sources, NOT screenshots. Help the blind users.

5: personal rants of Big Tech CEOs like Elon Musk are unwelcome (does not include posts about their companies affecting wide range of people)

6: no advertisement posts unless verified as legitimate and non-exploitative/non-consumerist

7: crypto related posts, unless essential, are disallowed

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 1 points 1 year ago (1 children)

Compensations are light years behind whatever's coming next. ๐Ÿ™‚ And I don't think of them as "core". They're practically syntactic sugar. If you can write a comprehension but can't write a loop with a conditional in Python or FORTRAN, you're missing the core.

[โ€“] [email protected] 1 points 1 year ago

@beejjorgensen I spent so many time writing manual loops even in Basic, sometimes in ASM (on Z-80) later in C, but actually, abstraction level of manually written loops is relatively low.

Ok, core concept in Python are iterable objects. Iterable objects are much, much more advanced abstraction, than manual loop - I and yes, I have spent many, many years writing manual loops again and again, later I added some macros, but still - in Python, it is not only less keystrokes, but the iterable object abstraction is something, which was absent in Fortran and C (maybe not in C++, but C++ was mostly pain)

Syntactic sugar poured on iterable objects is maybe not so important, but in enviroments without certain core concepts, no amount of syntactic sugar will fix that.

Think of it as it was in Basic: it had no pointers (unless you wished to peek and poke memory manually). C had pointers and pointer aritmetics, which was powerful abstraction, compared to Basic. You would need to manually call peek() function to read pointer... well, technically possible, but you would read one byte at a time, with no clue about data type, etc). C pointer is not just syntactic sugar over peek(), it is much more than that.

And there are more and more such powerful abstraction, which are just absent in older languages. You can eg. call try ~ except (or catch, or whatever) syntactic sugar - well, maybe it is, but is sugar coated setjmp()/longjmp() call of libc, not sugar coated goto, as it may seem at the first glance...