3 ms·
"While CS undergrads are still required to take classes on assembly, most productive SWEs never interact with assembly. Moving up the ladder of abstraction has
by jebarker 1y ago
"While CS undergrads are still required to take classes on assembly, most productive SWEs never interact with assembly. Moving up the ladder of abstraction has consistently been good."
Gotta disagree. Adding abstraction has yielded benefits but it certainly hasn't been consistently good. For example, see the modern web.
- zamderax 1y agoIt’s been overall good. Being able to access a web app or website by entering a URL is impressive!
- nativeit 1y agoA functioning URL is impressive?
- PessimalDecimal 1y agoMany browsers, especially Chrome, have abstracted away direct interaction with URLs. Would you also consider that good?
- zdragnar 1y agoYou can still do that if you want to. Most people don't. Back before I got a cell phone, I had many many phone numbers memorized. Once I got a cell phone with a contacts list, I just stopped. Now I have my parents and my wife's phone numbers memorized, and that's it. URLs are much the same. On most websites, if I can see the domain is the one that I expect to be on, that's all I really care about. There's a few pages that I interact with the URL directly, but it's a minority.
- jebarker 1y agoYou can serve web pages and render them in browsers all written in C. I'll concede that that's a useful level of abstraction over assembly.
- PessimalDecimal 1y agoThe analogy likening LLMs to compilers is extremely specious. In both steps, the text written by the user/programmer is higher-level and thus "easier" but beyond that, the analogy doesn't hold. - Natural language is not precise and has no spec, unlike programming languages. - The translation from C (or other higher-level language) to assembly by a given compiler is determined in a way that the behavior of an LLM is not. - On the flip side, the amount of control given to the tool versus what is specified by the programmer is wildly different between the two.
- rvz 1y agoExactly. The industry has encouraged mediocrity and in-efficiency with over-abstraction and abusing technologies in areas where it doesn't make sense for basic software. This is what you have seen with the rise with some of the worst technologies (Javascript) being used in places where it shouldn't because some engineers want to keep using one language for everything. Which is where you have basic desktop apps written using electron taking up 500MB each and use 1.2GB of memory. It doesn't scale well on a typical 8GB laptop on a user machine. Not saying it should be in assembly either (which also doesn't make sense), but the fact that today's excuse is that a SWE is used to one language is really a poor excuse. Nothing wrong with using high-level compiled languages to write native desktop apps that compile to an executable.
- lispisok 1y ago>This is what you have seen with the rise with some of the worst technologies (Javascript) being used in places where it shouldn't because some engineers want to keep using one language for everything. NodeJS was the biggest mistake our industry made and I will die on this hill. It has taken the crown from null. People have been trying to claw it back with Typescript but the real solution was to drop JS altogether. JS becoming the language in the browser was an artifact of history when we didnt know where this internet thing was going. By the time NodeJS was invented we should have known better.
- resonious 1y agoVery subjective but IME, understanding assembly is correlated with being a skilled web developer. Even though you don't actually write assembly while doing web dev.