[DZone Research] Backend Web Development: Node.js and Java
In this article, we focus on the increasing popularity of Node.js as a backend development environment, and what Java devs do on the backend.
Join the DZone community and get the full member experience.
Join For FreeThis post is part of the Key Research Findings in the 2018 DZone Guide to Dynamic Web and Mobile Development.
Introduction
For this year's DZone Guide to Databases, we surveyed software professionals from across the IT industry. We received 1,202 responses with a 64% completion rating. Based on these numbers, we calculated the margin of error at 3%. In this article, we discuss the continued growth of Node.js in the web developer community and the most popular backend langauge, Java.
The Rise of Node.js
90% of respondents reported using JavaScript on the client-side; as discussed in our last article, this is to be expected. Interestingly, 41% of respondents use JavaScript on the server-side, up from the 36% of respondents who targeted the server-side with their JavaScript in our 2017 DZone Guide to Web and Mobile Development. This high adoption rate of JavaScript on the backend correlates with the increase in the usage rates for the Node.js runtime. In this year’s survey, 42% of survey takers reported that their organization uses the Node.js ecosystem. This is up from 35% in 2017, nearly mirroring the growth rate of server-side JavaScript over the past year.
Of those respondents who work with the Node.js ecosystem, 54% do so on full-stack development projects and 40% on backend development projects. When we correlate our data on respondents who work in the Node.js ecosystem with our data on databases used for web applications, non-relational (or NoSQL) databases have higher rates of adoption among Node.js developers. For respondents whose organizations use Node.js, 56% use MongoDB. For those who report using the Java ecosystem, 43% use MongoDB; among Python ecosystem users, 49% use MongoDB; and with C# ecosystem adopters, 37% choose MongoDB as their database. This higher rate of adoption for MongoDB among Node developers versus those who work in other backend environments such as Java, Python, and C# could well be due to the asynchronicity of both technologies. Additionally, many developers use Mongoose, an open-source data schema solution, with MongoDB (source). Mongoose utilizes the JavaScript language, thus allowing Node.js developers to write their database logic in the same language as their application logic. For a more detailed discussion on databases, see the 2018 DZone Guide to Databsaes: Relational and Beyond.
Server-Side Operations
The backend of an application is a complicated place, full of API and database calls, logic, and more. When we asked how respondents typically divide their work between client and server, 76% told us the server-side exposes APIs, 70% have the server-side perform business logic, and 66% use the server-side to integrate systems such as databases, message queues, and EIS. Despite the growth of Node.js noted above, Java remains the dominant language for performing such operations on the backend. Thus, for the rest of this section, we’ll use the statistics gathered from respondents who use Java to build web applications as our means of comparative analysis.
Despite the popularity of MongoDB among Node.js developers noted above, web developers working in Java seem to prefer traditional SQL databases. Among those respondents who told us they build web apps with Java, 61% use MySQL databases, 46% use Oracle DB, 45% use MongoDB, and 43% use PostgreSQL. Comparing these numbers to the adoption rates of these databases among the general survey population, Oracle DB proved more popular among Java-based web developers. Among the general survey population, 58% use MySQL, 42% use MongoDB, 41% use PostreSQL, and 37% use Oracle DB for their database needs. One potential explanation for Oracle DB’s higher than average popularity among Java-based web developers is that both the Java language and Oracle DB are developed by the same organization and would thus be made to work well together.
When it comes to pushing data to the server, 67% of the general survey population use the WebSocket API, 34% use HTTP streaming, 25% use webhooks, another 25% use polling, and 19% reported using server-sent events. When we compare these numbers to our Java-based web developers, these percentages all dramatically fall. Among Java web developers, 37% use the WebSocket API, 19% use HTTP streaming, 14% use polling, 12% use webhooks, and 11% use server-sent events.
The adoption rate of the three most popular web servers among respondents (Apache Tomcat, Apache Web Server, and NGINX), also differed between the general survey population and Java web developers, though not as dramatically as in the case of the means of pushing data to the server. Among the general population, 62% reported using Apache Tomcat as their web server, 50% said they use the Apache Web Server, and 55% reported using NGINX. Among those respondents who use Java to build web apps, 75% use Apache Tomcat, 52% Apache Web Server, and 44% NGINX.
Node.js and Java in the Wider Developer Community
To conclude this article, let's quickly measure the validity of these findings by comparing them to data from the larger developer community. First, Node.js. In the 2018 Stack Overflow Community Survey report, Node.js ranked as the most popular frameowrk, chosen by 50% of Stack Overflow's audience. Additionally, the 2017 State of JavaScript report (2018 report has not yet been released), Node.js ranked as the most used backend framework among respondents (though this data could be skewed given the sites audience is largely JavaScript developers).
To examine the larger Java community, let's turn to JetBrains's, 'The State of Developer Ecosystem Survey' from 2018. Much as in our findings, JetBrains reports Apache Tomcat as the most popular server to use with the Java language.
Thus it seems the trends delineated in this article hold true among the wider developer community.
This post is part of the Key Research Findings in the 2018 DZone Guide to Dynamic Web and Mobile Development.
Opinions expressed by DZone contributors are their own.
Comments