Hacker News new | ask | show | jobs
by sanswork 460 days ago
My C compiler has been generating assembly code for me for 30 years. And people were saying the same thing even earlier about how compilers and HLLs made developers dumb because they couldn't code in asm.
4 comments

C compilers are deterministic. You don't have to inspect the assembly they produce to know that it did the right thing.
And C compilers have bugs too earlier ones a lot more though thankfully we are now several decades into their development.
Very whataboutism. Do you understanding why the person is making this argument? Or is everything just postmodern deconstructionism?

Everything has some imperfection, so LLMs are just fine... Completely missing the totally valid criticisms people have of the systems.

I like to call that “unary thinking”. Nothing is “perfect”, therefore everything is “imperfect”, so everything is the “same”. One category for everything, unary.
I'm not arguing LLMs currently generate great code. My argument is that it doesn't matter to the assertion that they make devs dumb.

Tools being bad currently doesn't matter just like compilers being bad in the past doesn't matter.

You're trying too hard to argue here.

Every 5 years or so of my career something new has come out to make coding easier and every time a stack of people like yourself come out to argue it's making devs dumb or worse.

LLMs still generate terrible output a lot of the time but they are improving. Early compilers generated terrible ASM a lot of the time to the point that it was common to use inline assembly in your code or rewrite parts later. Tools can improve, the point is that neither make the dev worse they just add to productivity.

Writing code isn't my job it's a task I do to make the systems I design functional.

critical thinking is hard i guess
Presumably you don't throw out the c code and just check in the assembly.
>And people were saying

Source? A quote? Or are we just making up historical strawmen to win arguments against?

I've heard from people older than me that this is how people felt about compilers.

https://vivekhaldar.com/articles/when-compilers-were-the--ai...

He provides some sources (7) at the bottom of the article.

To pick one, the following has a video interview with one of the founders of Fortran:

https://www.ibm.com/history/fortran#:~:text=Fortran%20was%20...

So we're not making up stuff, this perspective was ubiquitous among assembly programmers of the 1950s. In 1958 (as the first article I link to mentions), half of programs were written in Fortran. Which means half of people still thought writing assembly by hand was the way to go.

I've personally written assembly by hand for money on an obscure architecture, and I've also written a non-optimizing compiler for a subset of Rust to avoid the assembly. There is great joy in playing stack tetris, but changing code requires a lot of effort. Imagine if there weren't great alternatives, you'd just get good at it.

I imagine if there weren't compilers (or interpreter) I would never have learned how to code. My generation of programmers was taught with Java and in my university course we did all our homework in the first year using BlueJay, a program that made it _even easier_ to get up and running with a bit of Java code.

(just to save some face: I learned Prolog in my second year).

Yeah, before high-level languages, programming was mostly done by mathematicians and electrical engineers who felt adventurous.

I also had BlueJay on my first semester. But fortunately I had machine architecture, compilers and operating systems later.

Not quite what the OP claims but see for example the Story of Mel:

  I had been hired to write a FORTRAN compiler
  for this new marvel and Mel was my guide to its wonders.
  Mel didn't approve of compilers.

  ``If a program can't rewrite its own code'',
  he asked, ``what good is it?''
https://www.gutenberg.org/cache/epub/3008/pg3008-images.html...

Though to be fair The Story of Mel supports rather than refute the argument against compilers.

https://en.m.wikipedia.org/wiki/Real_Programmers_Don%27t_Use...

The joke story is mocking the common arguments/beliefs at the time.

If you expect me to source you a collection of comments about "real programmers" from over 30 years ago though that is too much of an ask but I was there, I read it often and I started fairly late on the scene in the 90s.

No quote or source, but I can corroborate. I've even heard the same argument when C++ was getting popular and C was still the "standard."
except we can guarantee (with tests) that the generated instructions from the compiler are bug free 99% of the time. Pretty big difference there.
The tool currently being bad doesn't matter to the argument of whether or not they make devs dumb.
if i can one day have a similar level of confidence in LLM output, as i do in a compiler, then i will also call it an abstraction. until then…i wait. :)

But i agree, it’s unrelated to devs being dumb.