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

Technology

34907 readers
333 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] 2 points 1 year ago (1 children)

Comprehensions are just shorthands, nothing more. You can unroll into loops on a syntactical level.

But the fact that you think like that, shows to me, that you actually don't understand the core concepts behind languages.

At the end, each language compiles to assembly, and all the fancy features are just different ways of encoding assembly.

[–] [email protected] -2 points 1 year ago* (last edited 1 year ago) (1 children)

@agressivelyPassive ok, comprehensions are just syntax, but still, they still allow producing new arrays directly from iterable objects, without need to store them in temporary arrays, which counts as added abstraction.

Basically I agree, that there are concepts which are simply not available in certain runtime libraries/interpreters, like multithreading or lazy evaluation. So I more or less agree, that syntax is not so important and we should categorize the underalying abstractions, accessible by syntax (or whatever).

But at least memory management abstractions of Python are very different from Fortran or C (ok, you can use many different libraries for that in C, but you will hardly get reference counting and automatic clenaup of unreferenced objects and so, and this not just syntax issue... it is automation issue...)

[–] [email protected] 3 points 1 year ago

And nothing of that has anything to do with understanding core concepts. Threads are native CPU constructs, they don't just exist because of a library. Memory management is nice, but also not arcane knowledge that can only be learned by going to a university.

A C dev learning dependency injection and a Java dev learning manual memory management will both have to learn something new, but for neither it should fundamentally change how they think about computers.

Again, you seem not to understand what's actually going on under the hood. There is not a single language concept that a regular dev in another language couldn't understand. It's all just "make compiler write assembly so computer go brrr". That doesn't mean it's trivial to be proficient in a new language, but that was never the goal of any higher education. It's called computer science, not advanced button pressing.