1000 Responses to Java Is Not Dying
Translator's Note: Andrew Binstock, the editor-in-chief of Dr. Dobbs, recently published a post about Java titled "Java is so robust, how could it die?" After its release, the post quickly became a hot topic on various tech websites and soon received nearly 1,000 replies. Andrew Binstock seemed to have anticipated this situation, as he immediately wrote another post about the netizens' replies after reaching 1,000 comments, reiterating his views on some of the responses.
In my column published last week, titled "Java is so robust, how could it possibly die," it deeply resonated with many developers. On Reddit, Hacker News, and Slashdot, the number of replies to this article exceeded 1,000. What surprised me was that only a small portion of people disagreed with my views. In other words, the claim that Java is about to die doesn't hold much water in reality. Nevertheless, I would like to list some of the common opinions here:
Java won't die, but it will become a "legacy language." This view is probably the most prevalent among the comments. In my understanding, a "legacy language" has two characteristics: first, code written in this language will only be maintained and not modified, meaning new projects will generally not consider using a "legacy language" for development; second, new languages will replace the "legacy language" to develop software previously written in it. Under this concept, COBOL fully meets the two characteristics of a "legacy language": commercial programs today are no longer written in COBOL but are implemented in various other languages, especially—uh, Java.
Therefore, I disagree with the view that Java is a "legacy language" because I can't find any evidence to support it. Android alone ensures that Java will continue to be used in many new mobile application development projects. In enterprise development, I haven't seen any language that can replace Java's position. The popularity of the Spring framework also proves that Java is a widely accepted language in enterprise-level development. JavaScript's dominance in front-end development and its performance through Node.js on the server side may eventually take away part of Java's market share in web applications. Similarly, Ruby on Rails will also occupy the market share of small-scale sites. In very narrow fields, Java might become a "legacy language," but it's too early to predict what the future holds, as frameworks based on Java are still very active in many new projects.
The reason Java appears to be dying is that the "cool kids" always chase the new. Personally, I agree with this view. Software development is currently experiencing a "golden age" of new technologies and languages. Over the past 15 years, numerous languages such as Erlang, Lua, Ruby, Scala, Groovy, Clojure, and many others (some of which were invented earlier but gained fame later) have emerged, along with Go, Rust, CoffeeScript, R, Haskell, and countless others vying for attention. In the history of computer development, there has never been a time like now when so many new languages and technologies are being produced. If Java, as the teaching language adopted by many universities, represents the standard of general programming languages, then these new languages represent emerging technologies and examples, more easily capturing the attention of technical personnel. I agree with this statement. Personally, I enjoy exploring new languages, but these new languages cannot replace Java. As one Reddit user said, "I'm new to programming, just graduated this year, and I have to say that Java and C#/.NET haven't 'died.' I'm currently working on my second job, but both my first and second jobs involved writing programs in Java."
Java desktop application development is dead. Here, I must say I tend to agree with this view. Java applets have almost completely disappeared and are now only used in very specific areas. Even JavaFX, an important technological upgrade from Swing, I don't think it has enough strength to make Java dominate client interface development, especially in desktop applications. However, Java has never been the main player in desktop application development, so even if Java isn't good at desktop development now, it doesn't affect its overall performance.
Oracle Factor: I must admit that Oracle's image in the eyes of developers isn't great. The way Oracle handles a large amount of technology assets inherited from Sun (especially many open-source projects) has further solidified programmers' hostility towards the company. But from another perspective, with Java under Oracle's wing, I believe it will be better off than when it was under Sun's management, because Sun only developed Java as a programming language, while Oracle will do more and comprehensively. I mentioned this point in my previous article. Especially, I am highly skeptical of the view that "developing the language itself is the hard truth." Look at JavaScript, I don't need to elaborate on its role in the Internet era, do I? JavaScript is almost universally hated for its language features, and over the years, there hasn't been much improvement. But the stagnation of this language does not prevent it from becoming the hottest language in the Internet field, and many developers actually like its so-called "language limitations."
Finally... Some comments completely agreed with the views expressed in my previous article and thought I didn't delve deep enough. They particularly pointed out that there are many high-quality tools in the Java ecosystem; especially IDEs; a large number of libraries, all of which are open source; and the high portability of Java bytecode; as well as numerous existing documents and resources available for developers to use. I want to say that no programming language—whether old or new—can match the availability of resources that Java offers.
Go forward, Java!
Andrew Binstock
Editor-in-Chief of Dr. Dobbs
Translated by ImportNew.com - Huang Xiaofei
Translation Link: http://www.importnew.com/6325.html
WeChat ID: importnew --