Hacker News new | ask | show | jobs
by lucianbr 592 days ago
> In the old days, developers had to really know their stuff. Coding wasn’t just a checklist—it was a craft, and every line was written with care.

There's a name for seeing the past through rose-colored glasses, isn't there?

"In the old days" developers had various degrees of skill and care, as they do "in the new days".

2 comments

We could complain about Stackoverflow, Google, automatic memory management, compiler optimization, the fact that a broken program doesn't crash your entire OS, ...

A related point: MIT dropped the SICP curriculum in 1997, the reasoning being:[1]

> Sussman said that in the 80s and 90s, engineers built complex systems by combining simple and well-understood parts. The goal of SICP was to provide the abstraction language for reasoning about such systems. > > Today, this is no longer the case. Sussman pointed out that engineers now routinely write code for complicated hardware that they don’t fully understand (and often can’t understand because of trade secrecy.) The same is true at the software level, since programming environments consist of gigantic libraries with enormous functionality. According to Sussman, his students spend most of their time reading manuals for these libraries to figure out how to stitch them together to get a job done. He said that programming today is “More like science. You grab this piece of library and you poke at it. You write programs that poke it and see what it does. And you say, ‘Can I tweak it to do the thing I want?'”. The “analysis-by-synthesis” view of SICP — where you build a larger system out of smaller, simple parts — became irrelevant. Nowadays, we do programming by poking.

As software becomes more powerful, it must become more complex. And thanks to the internet, we have tons of pre-built solutions out there. Now, much of the problem is combining them together. When doing this, you can't know or care about every line. I totally agree, we must treat a lot more systems scientifically, like an object under observation.

[1]: http://lambda-the-ultimate.org/node/5335

> There's a name for seeing the past through rose-colored glasses, isn't there?

> "In the old days" developers had various degrees of skill and care, as they do "in the new days".

Yes, but "various" isn't a fixed ratio. While there have always been unskilled and careless developers, the ratio in the past could have been better and the ratio now could be worse.

Personally I've seen the decline over my career, in my little corner. But I wouldn't attribute it to generative AI, rather:

1. The rise of offshoring ("Why hire a skilled American developer when you can hire ten of the cheapest possible offshore developers instead?"). Skilled and careful developers don't want to get paid the cheapest wages, so this increases the proportion of unskilled and careless developers that you have to deal with everyday.

2. Programming being perceived as a well-paying, desirable job. That changes the kind of people who try to pursue it. When it was seen as mostly the domain of looked-down-on nerds, you got a greater proportion of people who where passionate about it. If it's seen as the last of the good-paying jobs, you'll get more people doing it for the money who don't really like it. This is also a factor in the offshoring situation above.

It's totally plausible that generative AI will accelerate the trends and make them even worse, but the trends didn't start with it.