The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
Software is not new either - same control structures spinned in a slightly different way. Functional programming is all the rage now but LISP was created in the '60es. When I started programming (late '70es, early '80es) artificial intelligence was right around the corner. Seems it stayed there all these years.
You're both right. Neither has truly made significant advances.
Hardware is just faster/cheaper/denser, not improved per se. Multicore is the worst thing ever to happen to software, period. The hardware boys having fun at the expense of software boys who should know better.
I wrote a recursive descent parser in Simula, in 1979, for an Algol subset. The fact that I can write one for most of C++ today mostly has to do with the hardware not taking a day to run it and the fact that I've gotten better at large software projects. But it's hardly a sea change.
I won't even mention the advances in software quality that have led to exhortations for "stateless programming", where bedwetters write every one of their transactions to disk.
I'd say it was maybe the father of functional programming. It didn't have constructs like monads, but other than that it was pretty much the standard in functional programming for its day (i don't think it was called functional programming back then though)
Personally, I find that Lisp is adequately described as "Lost In Silly Parentheses" - I'm no fan of the syntax, but all of the fundamentals of functional programming are there. It's just rough around the edges for lack of some of the more modern constructs like monads
I started professionally in 1980 and still love assembler or even pascal, though I don't use it much now days.
Finding IDEs more and more frustrating with their bugs and semantics.
It all seems to have dampened the creative side of the challenge.
Bloated, badly written libs rule now. Copy and past every where I look.
One thing is certain, the size of software grew with at least the same speed as that of the hardware, and not always for the best
The first Algol 60 compiler I wrote (yes, using my own parser generator) ran in less than 16 K on a 32K PDP-11 (early 70-ies), it was written in BCPL. No "fancy" stuff like IDE's that think they know what you want, just a simple editor (cannot remember the name of the editor, it was probably something like ed on RT-11, well before Unix came)
Nearly 20 years ago (I did professionally nothing with computers at that time), I wrote
in spare time an Algol 60 -> C translator, it still runs but the executable takes over 700 KByte (I know the size is nothing compared to that of a C compiler).
The current application I am working on (hobby, something with SDR) when packed as a Windows installer takes nearly 60 Mbyte, without dll's it takes 13 MByte) although I must admit that the signal processing (2048000 samples/second, with app an FFT per msec could not have been done on a PDP-11), but the size increase of applications is dramatically
Wrt quality: In the 70-ties there was this belief that - on average - each 100 lines of source code would contain (at least) an error, I belief that currently that is worse, imagine then a 100 times larger program .....
I do not deal with IDE's, they think they know what I want, and if I try to express that do not want it they more or less enforce it on me.
Actually, for me that is the main reason not to try a language like C# since there does not
seem to be single a tutorial that describes the language without forcing you to install some crappy IDE. When programming, I want to be in full control, so separate editors, compilers, debuggers is what I need, and therefore I'll stay with Linux.
But of course that is different from using the computer as administrative vehicle, then I want indeed to say things like:
find me my wedding photos, call the plumber to repair the faucet in the bathroom
I work in a different world, but I occasionally notice some bloat in the code so I start removing dependencies and watch what happens. It can be a useful exercise since it shows you who needs what and usually makes me wonder if I really need those things. Sometimes it leads me to split things up and that is often useful.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"