5 ms·
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
by bradley13 3y ago
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.
- valenterry 3y agoThen 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.
- thriftwy 3y agoOnly in the last few years we have a competing JVM language. Scala was a dead end. Clojure was a fad. Rhino/JS was very limited in its ambition. Java improvements allowed JVM to stay relevant and fend off DotNet, which is a good thing considering Microsoft's history.
- yawaramin 3y ago> Scala was a dead end. I'm sure all the companies, like Microsoft, Twitter, Disney, and basically every bank out there, will be very surprised to hear this.
- pjmlp 3y agoWhere does Microsoft use Scala? Or every bank out there?
- yawaramin 3y agoMachine learning: - https://github.com/microsoft/scala_torch https://github.com/microsoft/scala_torch - https://microsoft.github.io/SynapseML/ https://microsoft.github.io/SynapseML/ - https://www.infoworld.com/article/3236869/what-is-apache-spark-the-big-data-platform-that-crushed-hadoop.amp.html https://www.infoworld.com/article/3236869/what-is-apache-spa... And Microsoft of course owns LinkedIn which is built on a Scala backend.
- pjmlp 3y agoSmall projects, most of the stuff they do in ML is based on C++ and Python. Hence why they hired Guido and are putting money into optimising CPython. LinkedIn is a separate entity, even if owned by Microsoft. Zero Scala content at BUILD. What about the banking world across the globe, no numbers?
- yawaramin 3y agoJust search any job board for 'spark', you will see plenty of banks and many other companies.
- pjmlp 3y agoPlenty of banks isn't every bank.
- yawaramin 3y agoThose 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.
- pjmlp 3y agoThose busy using R, Python, Excel, alongside PowerBI and Tableau?
- baq 3y agoJava 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.
- deely3 3y ago> 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.
- baq 3y agoYes. 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.
- maleldil 3y ago> 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).
- einpoklum 3y ago> 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.
- renewedrebecca 3y agolambdas are a kludge? Really? You prefer creating one-method anonymous classes instead?
- kagevf 3y agoI think they meant in terms of how the feature was implemented, not the feature itself.
- renewedrebecca 3y agoOk, yeah, that's true.