Strange as it may seem ... or not ... I find myself "a
student of programming languages." I actually
enjoy finding new ones and kicking their tires, especially since nearly all of them have Unix/Linux open-source implementations.
The vast majority of them are "ALGOL-derivative languages," using the traditional "procedural" approach to problem-solving (such as
all of the languages most-commonly discussed here), but some are not.
SQL, for instance, is a (semi-)
declarative language: you describe the solution that you want, but don't tell the underlying system how to do it – as you would have had to do with a predecessor like IDMS, or that you
do(!) have to do, today, in a throwback-language like MongoDB. SQL is not
fully declarative, however ...
Languages such as Prolog (almost-)purely describe the problem to be solved, giving (almost) no hint as to how to arrive at the solution. Great way to solve Sudoku puzzles or logic-problems.
("The man with the red hat is not sitting on the blue chair.")
I have more-or-less made my living by dealing with
legacy software: right now, I'm unraveling a big, phat, PHP system ... 11 years old at this writing ... which by-the-way
earns over $1.1 million dollars a month. Dozens of people over these years have turned up their noses at it and promised to "re-write" it. I did not. Neither do I challenge the author – my boss on the project – nor will I ever. Having a
very broad(!) technical perspective from which to work, honed by more than three decades now of experience, have certainly served me well in this niche. But, it all comes, I think, from my genuine fascination with computer programming languages and techniques. (Yes, it
still amazes that we can make
machines(!) do these wonderful things for
people. And, across all these many years now, "the
details are continuously changing, but the
principles do not."
Ahh, we do live in interesting times.