4 ms·
I'm not that sold on this. Programming in ASM isn't really "harder" than programming in Haskell, it's just slower - it requires discipline, but not the ability
by frostburg 8y ago
I'm not that sold on this. Programming in ASM isn't really "harder" than programming in Haskell, it's just slower - it requires discipline, but not the ability to grasp abstraction that some more modern languages need.
I think that issues like knowing "how do compilers actually work" or "this thing is actually the halting problem, let's stop" are more relevant than how removed from latches and memory controllers one is.
- supermdguy 8y ago> Programming in ASM isn't really "harder" than programming in Haskell, it's just slower - it requires discipline, but not the ability to grasp abstraction that some more modern languages need. Reminds me of this comment: https://news.ycombinator.com/item?id=17403233 https://news.ycombinator.com/item?id=17403233
- tabtab 8y agoThat story reminds me of a guy who made a CRUD application (tracking, reports, & statistics) out of MS-Excel VBA. I was asked to start supporting it, and did a lot of similar head scratching. Amateur programming can be worse than no automation at times. He wasn't bitter, however; just confused about my assessment about it being time-consuming to support. I had to explain that typical programmers use abstractions to make code maintainable and not rely on our ability to read, well, spaghetti code fast. I've met some programmers quick at deciphering spaghetti code, but I confessed I wasn't one of them. I used the analogy of taking a custom-built amateur car with a custom-built engine to a generic auto-mechanic and expecting them to figure it out as fast as a regular car. That story seemed to click.
- skolemtotem 8y agoAssembly offers just as much capability for abstraction as any other language, and I think that it demands more "ability to grasp abstraction", because you pretty much have to build those abstractions yourself.
- lapinot 8y agoAkwardly, i agree on the facts but the sentence doesn't feel right. Would you agree with this rephrasing: asm is simple in terms of number of abstract concepts needed to define its syntax and semantics (and as far as i know this is good since it's intended as a mother-of-all lingua franca), but of course every language out there is turing complete (and has some mechanism for syscalls); so in the end the only way to build haskell-like abstractions in asm is actually to code up GHC and then code in haskell. Which i wouldn't call at all programming in asm (just like i'm not commuting circuits by typing on this keyboard). Nor do i think this is actually what asm is used for (when written by humans). My guess is that asm is used for programming close to the metal--crucial parts of firmwares, drivers--in situations with simple logic and in which abstraction would actually get in your way (who care about types or functions when you just need to write some values into some memory location).
- tabtab 8y agoI don't necessarily disagree, but typically an organization wouldn't let a non-degreed employee use or touch ASM (fair or not). It looks dodgy from a P/R perspective. I also forgot to mention that many engineers and scientists used FORTRAN and BASIC back then without knowing much about the guts of computers. It's largely why such languages were made.