Home > News content

Who will kill Java?

via:博客园     time:2017/10/13 9:31:23     readed:1307

English Original:What Will Kill Java?

Java is one of the most popular programming languages ​​on the planet, but the competition is getting stronger. Here we will talk about Java may encounter Waterloo's place, and what can be done to prevent its recession.


September 2017TIOBE indexList Java as the more popular language of the month. In fact, it has been ranked the top three for many years.

Stack Overflow Developer Survey 2017List Java as the third most commonly used programming language after Javascript and SQL (in fact, it has maintained this ranking for the past four years).

Do not say how these results are generated, or whether the results reflect the real world situation, we can not deny that, Java in a number of environments is still a popular language.

However, Java will one day die. There is nothing in the world.

Programming language The real definition of death is no one to use it again & mdash; but this situation is hard to happen. Even if it is old and not widely used language (for example, if you have heard of Modula-3?), Is still being used, maintained, or at least evolved into other things.

Of course, this is a gradual process, how the method is uncertain. From reality, it is assumed that the programming language, when it is no longer used for new projects, means its death, but it may still survive on many legacy projects (COBOL is a perfect example).

The final outcome will come to the head of Java, then who will kill it?

Let's analyze the options.

In the "What Killed Smalltalk Could Kill Ruby Too"The reason why Smalltalk was killed was that it was too easy to cause confusion, and that its arrogance arises from unprofessional practices such as lack of test-driven development (TDD)," said Robert Litter, The

In any language you can do a mess. Of course, in some languages, it is easier to cause confusion than other languages. For example, in dynamic typing languages, we can change the type of variables at any time & mdash; but we do not have this problem in Java.

In addition, many people in the Java community used good practice, such as design patterns and TDD, to help us make better software.

So let's explore another option.

Java is an object-oriented language. What if the other (new) paradigm takes over? What if object-oriented programming becomes obsolete?

Well, this possibility is not large & mdash; the basic principle has been for a long time has not really changed. Significant innovations such as structural, functional, and object-oriented programming took place in the 1950s, 1960s, and even the 1970s, but since then nothing has happened.

However, in the past decade, there are many new languages ​​available, these languages ​​have a modern grammar and a new function of the framework.

So, does not modern grammar and new features lead to the death of Java?

No, I do not think so.

Do you remember (or have you heard) EJB 2.0 and its Entity Beans? They are terrible, but members of the Java community like Rod Johnson and Gavin King responded with frameworks such as Spring and Hibernate.

In a similar way, although Java is not a full-featured language, but because of Vavr such a library, we can make Java more functional.

What i mean is that Java is missing some of the stuff that someone will fill in this gap by creating (frames, tools, specifications, whatever).

Then Java will not die because of another programming language?

Let's take JavaScript as an example. After all, JavaScript is taking the world, right?

We can use Node.js in the background, similar to React Native or Ionic on mobile devices, and we do not even have to mention all the competing options at the front end.

However, at least in the enterprise software, I did not see the trend that JavaScript would replace Java. JavaScript does not have a successful framework or tool in the business world. It does not have anything to do with the Java Virtual Machine (JVM), the Java Virtual Machine (JVM) is still the preferred platform for large and mission-critical software.

So what about Kotlin?

Kotlin language first appeared in 2011, and recently Google announced that Kotlin on Android to provide first-class support. Kotlin is gradually being adopted by well-known companies, and not limited to these companies in the Android app (example).

In addition to modern features, Kotlin is also an open source language, which is produced by onejava ideOf the company to provide support.

So if you ask me, my answer is yes yes, Kotlin looks like a good candidate for Java (in the distant future) instead of Java.

Of course, Java may also be replaced by one or more languages.


I'm not sure, and I dare say no one now knows the answer to this question.

What I can be sure is that no language can kill Java autonomously. Not with any external force, in this regard.

The knife that can kill Java is that it can not meet the needs of the market.

The programming language is a tool for building applications that solve computer problems. If a programming language provides abstractions, models, tools, and frameworks that make it more efficient or create code that is more efficient than Java, which language would you choose?

Even between Java versions, if you choose between Java 1.4 and Java 9, would you choose Java 1.4? Will you give up the opportunity to work with lambdas or generic? I do not think so. You will need a newer version of the feature.

Over the years, Java has been considered a lengthy and clumsy language because of exceptions, internal classes, getters, and setters, and so on. Until Java 7 (some people think that is Java 8) began to improve.

However, Java 7 was released in 2011, nine years later than Java 1.4 (released in 2002). In this era, this is unacceptable and may lead to a vicious circle.

Review the Java diagrams on the TIOBE page carefully. Although most of the time in the top three, but there is a clear downward trend, indicating that it is losing market share. This trend is common in all languages. The most likely reason is that the number of programming languages ​​is increasing, and applications are increasingly being written in multiple languages. Therefore, competition is more intense than ever before.

If we think that other languages ​​are better than this language, then it is no longer popular, we will not teach this language to a new generation of developers.

New tutorials, courses and books will no longer be created.

A valuable member of the community will be drawn away by other techniques.

The language will not be used in the new environment.

Will lead to reduced language popularity.

Mark Reinhold, Oracle Java platform group chief architect, proposed a new six-month release plan, is to move forward Java and a major step forward to the future. In his words (feature-driven version):

This method can be used in the early adopters to thoroughly check and test, with high levels of quality to provide large new features. The downside, however, is that smaller APIs, languages, and JVM functionality can only be achieved when the big feature is ready.

This is an acceptable compromise reached in the decades before and after the turn of the century, when Java competed with only a few platforms that evolved at similar steps. Today, however, Java competes with many of the platforms that grow faster.

Most of the last words are true.

However, this is not just Oracle's work. The community must also protect Java.

How to do it?

Some of my thoughts:

  • Do not be arrogant (do not think Java is too big to fail)
  • Promote good development practices
  • Continue to publish great framework, tools and so on
  • Support for JSR
  • Help teach and promote the Java language
  • Try Java in a new environment

Otherwise, if Java can not keep up with the pace of the times, then the final will be shot after the waves died on the beach.



Translation of:Code agricultural network& ndash; small peak

China IT News APP

Download China IT News APP

Please rate this news

The average score will be displayed after you score.

Post comment

Do not see clearly? Click for a new code.

User comments