top | item 30414294

(no title)

TheMonarchist | 4 years ago

> Lambdas, Streams… Java is far from "80s style OOP" today.

Streams are a library feature. At a cursory look Boost seems to have had something similar since 2003: range adaptors[0].

Moreover lambdas have existed since 70s. They are modern only in the sense that Java got them in 2016 or so.

> It steals the best from the more avant-garde languages and builds it in coherently. That's no small task, so it takes few years.

That's a nice way to say that it gets new features only when they are undeniably useful.

> Therefore I wouldn't call Java "cutting-edge", but "modern" easily.

If Java is modern, C++ is cutting edge. It got the syntactic sugar for lambdas in 2011 - five years before Java.

However I may have put too much weight on "modern" in the question title. The demand for Java coders is going to be higher than the supply not unlike COBOL. If you can live with its limitations, you can make a living maintaining Java codebases for decades to come.

[0]: https://www.boost.org/doc/libs/1_78_0/libs/range/doc/html/ra... (Nowadays you would use Eric Niebler's Ranges-v3 when C++20 Ranges aren't available.)

discuss

order

No comments yet.