Why? Old languages must remain around for legacy support. However, it's hard to see the point of shoe-horning all those modern features into an old language.
I write a lot of Java, and really, almost everything since Java 8 should not have been added. Lambdas, for example, are a kludge in Java.
Want modern features? Use a modern language. If you want to stay in the Java ecosystem, for example, you could use Kotlin.
I'm talking about Java only because I haven't seen Pascal for literally decades. I last programmed Pascal in the 1980s. Adding that laundry list of features to Pascal is just silly.
> Use a modern language. If you want to stay in the Java ecosystem, for example, you could use Kotlin.
That's easier in Java given how easy it is to interop between languages (see also Clojure). What if I'm using C++? There's no easy upgrade path to anything else.
There's still value to "shoe-horning all those modern features". I might not start a project with C++ today, instead choosing a modern language (e.g. Rust) instead. But there are millions of lines of C++ already written that would be improved by modern features (see how C++11 changed the landscape).
> I might not start a project with C++ today, instead choosing a modern language (e.g. Rust) instead.
This would depend on what your constraints and needs are. Rust isn't a "modernized C++", it's a language/ecosystem with a different set of strengths and weaknesses. You may very well prefer C++ over Rust today.
Then we have to switch PLs much more often. Seems reasonable to me to add/integrate new features that have proven to add a benefit to delay this process.
Java until recently had less going for it than Delphi 15 years ago except the insanely large ecosystem - which trumps everything else, admittedly.
Java the language was misguided in its decision to use libraries instead of language features leading to impressive amounts of boilerplate. Yes, you can do everything you can do in Python, Lisp or Haskell. But, you can also do that in brainf*ck, by definition, so the actual complexity of Java solutions is actually higher than a more featured language, because you end up reimplementing all those language features anyway in a slightly broken way or pull in tons of dependencies that do that for you, in either case with added API surface to learn.
> because you end up reimplementing all those language features anyway in a slightly broken way or pull in tons of dependencies that do that for you, in either case with added API surface to learn.
I suppose this statement is true for absolutely all programming languages?
You have to use libraries in all languages, all libraries is somehow broken because of using unique way to implement functionality, by using any library you have to learn unique API, etc. etc.
Except sometimes you don’t have to use libraries because the language just does the right thing out of the box, e.g. go with channels, selects and goroutines. This is what Python’s ‘there should be only one way to do it’ is really about.
Those are just the ones you will see from a random sample of job postings. There are many others out there that are not posted at any given moment. If you don't believe me just talk to any data scientist who has worked at or does work at a bank.
I write a lot of Java, and really, almost everything since Java 8 should not have been added. Lambdas, for example, are a kludge in Java.
Want modern features? Use a modern language. If you want to stay in the Java ecosystem, for example, you could use Kotlin.
I'm talking about Java only because I haven't seen Pascal for literally decades. I last programmed Pascal in the 1980s. Adding that laundry list of features to Pascal is just silly.