At the end of June of this year,
Mikeal Rogers (he participated in the work of the
Node.js Foundation since the founding of this organization, and now leaves the project) gave
an interview to thenewstack.io. Then he said that the Node.js platform will bypass Java within a year. Here we need to clarify that we are talking about the fact that the number of programmers who write for Node.js will exceed the number of those who write in Java.
Resource builtinnode.com, a week after the publication of the interview, prepared the
material , the author of which, wondering: “Will Node.js really bypass Java?”, Analyzed the situation. We present to your attention a translation of an interview and an analytical article and offer to reflect on the prospects of Node.js and Java.
Interview with Mikeal Rogers
Let's start from the beginning. You are not going to participate in the work of the Node.js Foundation?That's right - I'm leaving in a few weeks. I have been here from the very beginning, everyone has seen. Today, everything in the Node.js Foundation looks quite decent. I am ready to move on to something new, although I have not yet decided what exactly it will be and where I will do it.
')
Tell us about your most significant achievement at the Node.js Foundation.I believe that my main achievement is restoring order in matters with the
fork io.js. It was a difficult time for the community, a turning point. Fortunately, we coped with all this, became stronger and more organized. I can be proud of bringing to the community, heterogeneous and peculiar, modern management principles
How did you start programming?I started programming at 13 years old. I wanted to be a hacker, and I was mainly engaged in assembler. This is just what you need to do something like a buffer overflow. I studied, dealing with someone else's code. The hacker community existed before the widespread open source movement. Then you could, for example, send patches to mailing lists or share exploits via IRC.
It was all in Washington State, in a small town near Seattle. I moved to Seattle as soon as I was 18. I worked in various technical companies, including Mozilla, where, as a developer in Python and JavaScript, I worked on projects like
JSBridge and
Mozmill . Wrote CouchDB applications.
What brought you to the world of open source?As I got involved in programming and in the IT industry, it was completely natural to join the open source. This movement was very similar to the world of hackers, with which I started. From the beginning to the mid-90s, the open-source community was not particularly friendly to newbies. If a person knew exactly what he was doing and why, he joined the community and participated in projects. Hackers, on the other hand, were more like a handful of teenagers who showed everyone their achievements and helped those in need.
Now I have a feeling that everything was the opposite. Hackers went underground, and the open-source community turned out to be much more open. If you look at how projects are developing on the same GitHub, at who is investing time and energy in them, it turns out that all of this is intended for a wide audience, and not for some caste of the elect. More than half of the commits to GitHub come from people who make them less than five times a month. That is, on the one hand, many people contribute to open source projects, and on the other, they are not going to devote all their time to this.
Tell us about managing open source communities and why this is important.All the time you hear how they talk about server scaling, and talking about community scaling is somehow not enough. Perhaps there is no creator of the open source project, who would not want to develop it, as they say, “shot”. However, when this happens, not everyone is ready to support the project. This is actually not easy. First, the project requires several hours a week, and suddenly it turns out that the amount of work has grown so much that two full-time jobs may not be enough to manage it. In order to cope with such things, around open-source projects, you need to create communities that can be scaled up and that can strengthen and support the project in case of its unexpected growth. Some structure is needed here. An open source development culture exists, and management is such an approach to organizing work on a project that will allow it to grow and develop in a given direction and remain operational.
All of these ideas have influenced me because of my work at the
Open Source Applications Foundation . This organization was founded (and funded) by
Mitch Kapor , the founder of Lotus Development Corp and the creator of the Lotus 1-2-3 spreadsheet. The goal of OSAF was to support the massive introduction of free and open source software.
At OSAF, we seriously discussed topics such as the values ​​and incentives created around the project, talking about where we direct people’s energy by doing this or that. Some of the old-timers resisted changes in the way they worked, but young people perceived innovations with a bang. What is called an “open source project” is, in fact, not only code, and code is not the main problem. If you look at systems and processes as incentive structures, you can “program” them to get a certain result. If something is wrong, you can analyze the events that led to what happened, to understand what led to the error. As a result, you can create systems aimed at obtaining the desired results.
The work of OSAF, as a result, was not crowned with success. There is a book, “
Dreaming in Code, ” written by Scott Rosenberg on how it all happened. I started working at Mozilla on the day I stopped working with OSAF. Then it was already clear what exactly went wrong. In the end, Mitch stopped funding the project, and I switched to Mozilla.
How and when did you start working on Node.js?Me and my childhood friend
Adam Christian created
Windmill , an open source testing framework written in Python. It was a competitor to
Selenium . It turned out very well. Even the creator of Selenium said that our development is better than his. This, so to speak, is a small background to the events that followed. Literally right after the release of Node.js, in November of 2009, I came across a tweet that asked if anyone had an HTTP proxy under Node. Naturally, no one had such a thing, the platform didn’t turn a few days. And I, for about three years, have been doing a proxy optimization for Windmill. As a result, I thought, “There will be something to occupy myself on the weekend.” After a couple of hours I already had a working proxy. I was literally stunned by the fact that all this took about 80 lines of code, and when I experienced the performance of a new proxy, it turned out that it was many times greater than what I had been working on for years. Right then I said to myself: “I don’t write in Python anymore - the future is for Node.js”.
The creator of Node.js,
Ryan Dahl , after some time moved to San Francisco, the atmosphere there contributed to the rapid and dynamic development of the API Node.js. In the course of the work there were also discussions about what kind of community the project needs. I participated in the work on the early elements of the Node core, on the library ecosystem. The same applies to all sorts of cases related to the community. For example, I helped organize the
NodeConf conference, which attracted those who were busy working on Node. There was a lot of work, but we all knew that Node would certainly take off. Although, of course, then we could not have thought that Node.js would literally overtake Java in ten years.
What technical or business problems does Node.js solve?The number of platforms for which development has to be carried out, even within the framework of one project, is constantly expanding. If you, say, create a certain web solution, you will have a site visible to users. Then - not just the server part, but a set of API, then - a mobile client, a desktop client. Perhaps, the project will need technology and the Internet of things. If the team is small, it is difficult to develop for a number of completely different environments, but Node provides a universal platform with an ecosystem of half a million packages. This is more than other platforms. You do not need to reinvent the implementation of most algorithms - you will almost certainly find a complete package. This allows programmers to write applications, rather than creating an infrastructure on which they will work. The development process is getting faster.
Node is a huge phenomenon, it works almost everywhere, and this already speaks for itself.
What can you say about the current state of the project?Now Node.js has about 8 million users, and this figure continues to grow by about 100% per year. We have not yet bypassed Java in terms of the user base, but if growth continues at the same pace, Node.js will be ahead of Java in the early summer of 2018.
In the project more than 100 active developers. The weekly rate of commits is variable. When we release new releases, people are actively involved in the work, or for a while they are fed up with it, but the fluctuations are not that great. It all started, before the fork of io.js, from three developers, so now we are definitely moving in the right direction.
Tell us about the participation in the project and the potential earnings on thisNode.js Foundation is a non-profit organization, so I cannot talk about making money at the level of open-source projects. However, personally, participation in such things helped me when looking for a job and when discussing the level of wages.
Everyone who participates in open-source development, as a result, turns out to be more attractive from the point of view of the employer, the developer. This is definitely a huge advantage. Say, behind a LinkedIn profile, there can be a lot of valuable publicly available information. If someone like a technical director is looking for employees, he can, through open-source projects, see how a person communicates, how he reacts to criticism of his code, how he behaves, if the situation heats up - he tries to settle everything, or brings universal scale to scandal. .
Developers who contribute to open source projects earn more than their peers who are not involved in such cases and who work in the same positions.
Want to say something else?What I particularly like about Node.js is that every year about as many people start programming for this platform as it already uses it. Here we see a constant influx of fresh blood and new ideas. We are constantly working to reduce entry barriers, we open the world of programming for those who have not previously engaged in software development. Availability Node.js is constantly increasing due to the large number of new developers. At any time, approximately 50% of the community are people who have not written not only under Node, but also have barely familiar with JavaScript. Therefore, we need to make the platform such that it is easy to join and start coding.
I like the versatility and availability of Node.js. On this platform, you can build corporate-level solutions, however, it is very interesting and that bring it to beginners. Here - art, science, and crazy creative. No other community is so open.
Bypass or not?
What is the future platform? Java is it or Node.js? Mikeal mentioned that there are now about 8 million Node.js users, the annual growth of this indicator is about 100%. Last year, the Node.js Foundation
reported 3.5 million users, that is, at least for a year, this was exactly what happened.
Simple calculations show that in 2018 Node will already have 16 million users. How many users does Java have?
In 2013, Oracle announced
9 million Java developers. In 2007 there were about 6 million. How many will be in 2017? It is hard to say.
Oracle did not make any statements on this topic, so we can only speculate. However, if we arm ourselves with the above indicators, supposing that the number of Java developers is also growing, it turns out that there should be about 12-14 million of them now. Again, all this is very approximate. In order to understand the situation, we draw some numbers.
The
TIOBE index is an indicator of the popularity of programming languages. Popularity is an important factor for choosing a language, and a good indicator for comparing platforms. TIOBE ranking is based on the analysis of search queries using more than two dozen search engines. In fact, it is influenced by the number of professional developers, training courses and other materials on the language.
Java was a very popular language even before the advent of the Node.js platform. If you look at the historical indicators of the TIOBE index, you can see that Java took first place far more than once or twice.
TIOBE IndexThis year Java is again the first in popularity. This is how Java’s popularity has changed over time.
JAVA popularityThere may be a question about why there are no Node.js in the ranking. The fact is that TIOBE does not consider Node an independent programming language and takes this platform into account in the general section of JavaScript.
In any case, the TIOBE index tells us about the maturity and popularity of Java. However, it is worth considering, for example, that
PayPal and
NetFlix switched from Java to Node.js. Java may well be a popular platform, but companies are ready to change basic software if something more attractive appears, and Node.js has useful qualities for which they are switching to this platform.
Here you can find other companies that have opted for Node.
On HackerNews there is a section with information about vacancies.
Here you can find tools for working with this data. Below is a comparison of jobs where you need to know Node.js (blue graph) and Java (black). This shows the data from August 2011 to June 2017. This comparison, like the previous one, is subjective. It takes into account the materials from HackerNews, but it is impossible not to notice that these data are quite consistent with those about which we spoke above.
The graph tells us, firstly, about the growing interest in Node.js, and secondly - that this platform sometimes bypasses Java.
Node.js and Java: jobsIf you use the Stack Overflow overview, you can compare Java and Node.js directly. However, we must bear in mind that this data is representative only for Stack Overflow users.
If we go to the programming language section, we will again compare JavaScript and Java, since Node.js is not considered an independent programming language. For completeness, it should be said that JavaScript here, in the popularity rating of programming languages, ranks first, and Java - third. If you look at the section on technology popularity analysis, you can see historical information on Java and Node.js over the past 5 years - this is exactly how much Stack Overflow does this kind of research.
The popularity of technology according to Stack OverflowThe popularity of Node.js, from 2013 to 2017, has grown from 8% to 26%. The popularity of Java over the same period fell from 42% to 39%. It takes into account the percentage of respondents using technology.
Results
If the number of programmers who write for the Node.js platform continues to grow at 100% per year, then Node, by this measure, will bypass Java. However, the number of technology users is not all. There are areas where JavaScript, and in particular Node.js, are ahead of Java. There are areas (as rightly noted in one of the comments on the review published on builtinnode), in application to which it is still very early to talk about the superiority of Node.js over Java. In any case, Node.js is a very promising platform, the development of which, we are sure, will be very interesting to watch.
Dear readers! What do you think the future of Node.js and Java will be like? Does the Node.js platform bypass Java or not?