The Java language has had 22 years of ups and downs since its first version was released in 1995, and the latest iteration of Java is now Java 9. The cross-platform advantages of the language are now a mere trifle, and the emergence of languages such as Go and Rust has further broadened the boundaries of the programming language. The company that invented Java, Sun, has long since been acquired by Oracle, which is now in the throes of cloud computing, and even James Gosling, the father of Java, has joined AWS, the world's largest cloud computing company.
The 20 years that Java has been in development have also been the 20 years that the Internet has been growing at a rapid pace, and Java has also seen the rise of e-commerce. The Java language has also witnessed the wave of e-commerce, mobile Internet, big data, and cloud computing, so you can see Java in every major Internet company today.
Looking at the development of the Java language, one can't help but be reminded of one of Xin Qiji's words:
A thousand years ago, heroes were not looking for Sun Zhongmou. The wind has always been blown away by the rain and the wind. The slanting sun, grass trees, unusual alleys, people send slaves once lived. I think of the days when I was as angry as a tiger with a golden spear and an iron horse. Yuanjia, who was a wolf, won the favor of looking northward in haste. Forty-three years ago, I still remember the fire on Yangzhou Road. When I look back, I can see a piece of God's elegant social drums under the Buddha Beaver Shrine. I'm not sure who to ask, but I'm not sure if I'm still able to eat.
TIOBE's language rankings show that since the beginning of 2016, the Java language has seen a clear downward trend, and the developer community has also seen some downbeat comments about the Java language, and the editors have some questions in their minds: Is Java old enough to be able to "eat"? Based on this background, InfoQ invited Java senior expert Zhang Jianfeng to explain the current state of development of the Java language and the future.
Review of the development of the Java language
The Java language originated in 1991 with the Ork project led by James Gosling at Sun, and in 1995 Sun formally named it Java, with the slogan "Write once, run anywhere".
In January 1996, Java 1.0 was released, providing an interpreted Java virtual machine, which coincided with the beginning of the Internet, and Java's Applets, which ran in Mozilla browsers, were seen as the Internet language of the future.
With the release of Java 1.1 in February 1997, the basic shape of the Java language, such as reflection, JavaBeans, the relationship between interfaces and classes, and so on, has remained consistent to this day. However, some of Java's original goals, such as executing Applets in the browser and a cross-platform graphical interface, Awt, quickly met with negative reviews.
In December 1998, the first milestone release of Java, Java 1.2, was released. This version used the JIT (Just in time) compiler technology to achieve the optimal balance between language portability and execution efficiency, and the Collections assembly class was so well designed that it was quickly and widely used for enterprise application development. Sun divided the Java technology system into three directions, namely J2SE (for desktop and general-purpose application development), J2EE (for enterprise application development), and J2ME (for mobile terminal development). This categorization has a long history and reflects the thinking of the mainstream language designers: for different application areas, in the form of a collection of APIs and other divisions.
In May 2000, Java 1.3 was released, in which Corba, as a language-level distributed object technology, became a technical prerequisite for J2EE. J2EE was heavily influenced by the design of Corba, and the early EJB Home, interfaces, and implementations were implementations of Corba in C, which were ported to Java. The Servlet specification in J2EE has been a great success, along with the rise of the Internet, and the browser interacts directly through the HTTP protocol Servlet, and many MVC frameworks, to become a Web1.0 Netflix.