Coding productivity among Java developers is still pretty dismal – that’s the key finding of The Java EE Productivity Report 2011 released recently by ZeroTurnaround.
The survey found that Java developers spend an average of 10.5 minutes of each 60-minute coding hour redeploying their app to see changes. And, the time wasted doesn’t include build time or the time it takes for developers to get back into the flow after spending X minutes waiting for the redeploy to finish.
ZeroTurnaround surveyed 1027 developers. It is worth noting that 28 percent were JRebel users (a Zero Turnaround product), so this might not be a perfect sampling. They did asked JRebel users to provide data based on it being before the purchase of JRebel.
Here are some of the results you might find interesting:
Which is more popular, Ant or Maven?
Most respondents said they use Maven (53 percent) and Ant (50 percent) – some use both, obviously. Tools such as Gradle, Ivy and SBT were mentioned, but none gained a significant number of votes to even rank.
Which Java IDE is the most popular?
The IDE results in the survey show a wide distribution of preferences; however, Eclipse emerged as the clear leader with 65%. IntelliJ IDEA gathered 22% of the votes followed by Netbeans being used by 12%. Further adrift were MyEclipse at 4 percent, and JDeveloper at 3 percent.
Which Java Containers / App Servers are used the most?
Tomcat came out on top with 33 percent, followed by JBoss, 26 percent, Weblogic, 10 percent, Jetty, 8 percent, Glassfish, 8 percent, and Websphere, 7 percent.
What Java EE standards are used the most?
Java Persistence API (JPA) and JavaServer Pages (JSP) finished joint top, with 37 percent each, followed by Enterprise JavaBean (EJB) 3, 26 percent, Java Server Faces (JSF), 24 percent, EJB, 12 percent, Contexts and Dependency Injection (CDI), 6 percent, and EJB 1, I percent.
Which Java Framework is most prevalent?
Spring (48 percent) and Hibernate (45 percent) are by far the most popular, and are still used more than standards. In third place was Google Web Toolkit, 12 percent, followed by Struts 1, with 10 percent.
How long does it take to restart your container and redeploy your app?
The average redeploy time is 3.1 minutes, but the standard deviation is 2.8, which means that the redeploy time varies greatly. However, 1 out of 10 developers responded that it takes them more than 10 minutes to redeploy each time.
In an hour of coding, how many times do you redeploy?
The average frequency is 4 times an hour with the standard deviation of 3.2.
How much time do you spend redeploying in an hour?
The average respondent spends about 10.5 minutes an hour redeploying with a standard deviation of 9.8. This is about 17.5 percent of total coding time.
Percent of coding time spent redeploying, per Java EE container
Weblogic came in worst at 24 percent, followed by Websphere, 23, Glassfish, 18, JBoss 18, Jetty 15, Tomcat 14.
The ZeroTurnaround Solution to Java Redeploys
This survey was done by Zero Turnaround who as a deployment tool. Thus the emphasis in the last questions on the time it takes to redeploy applications. Regardless, the following comment by their CEO, David Booth, helps highlight why redeployment is important:
“When Java developers want to see the effects of new code (or make changes to existing code), they have to redeploy their entire application - even to see the smallest changes. If you had to restart your computer every time you wanted to send or read an email, that’s a similar level of frustration.”
The survey seems to indicate where a few productivity improvements could occur and around what specific products.