For this episode we spoke again with Georges Saab, Vice President of Software Development at the Java Platform Group and Manish Gupta, Vice President of Global Marketing for Java and GraalVM.
The very first feature that made a massive impact wasn’t a change in the Java language at all. It was the vastly improved library support that happened in the early releases. Between 1.0 and 1.3, these libraries included the Swing window toolkit, the Collections framework, a RPC-like API for remote calls, JDBC for interacting with databases, and more. The standard libraries grew richer, more sophisticated, and allowed Java to become a real enterprise language.
In 2004, Java added generics, which allowed types, methods, and interfaces to be specified with the associated data types to be specified when that item was instantiated without sacrificing type safety. “At the time, generics were a challenge and people had strong opinions about them,” said Saab. Today, generics are one of the enduring features of the language.
Java may have been designed as a completely object oriented language, but when Java SE 8 was released in 2014, it added Lamda expressions (aka closures), which added some functional programming elements. Not every problem is best served by OOP, and by adding Lambdas, Java became more flexible.
Despite its prominence across numerous industries, Java isn’t sitting still. Saab mentioned four big projects coming to Java that had him excited, all designated by codenames: Loom, Valhalla, Leyden, and ZGC. You can read all about them on our blog.
If you want to learn more, Oracle has put together a wealth of resources to celebrate Java's 25th anniversary.