Hacker News new | past | comments | ask | show | jobs | submit login

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.




lambdas are a kludge? Really? You prefer creating one-method anonymous classes instead?


I think they meant in terms of how the feature was implemented, not the feature itself.


Ok, yeah, that's true.


> 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.


Yes.

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.


Only 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.


> 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.


Where does Microsoft use Scala?

Or every bank out there?


Machine learning:

- https://github.com/microsoft/scala_torch

- https://microsoft.github.io/SynapseML/

- https://www.infoworld.com/article/3236869/what-is-apache-spa...

And Microsoft of course owns LinkedIn which is built on a Scala backend.


Small 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?


Just search any job board for 'spark', you will see plenty of banks and many other companies.


Plenty of banks isn't every bank.


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.


Those busy using R, Python, Excel, alongside PowerBI and Tableau?


No, the ones using Spark. Do keep up!


It's a bad sign if use of a language is tied to a singular framework such as Spark or Rails.

The next fad is in, the language is out.


Interesting, then Java is in trouble I guess because it's mostly tied to Spring Boot?


It's not. Maybe it's selection bias: I don't see it around that much.


It is a bit hard when after all isn't every bank as originally described.

Need to move that goalpost around.


Nothing gets past you, Mr Literal!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: