Typesafe survey: Java 8 Adoption Strong, Users Anxious for Java 9
Typesafe recently released a report based on their survey findings of over 3000 Java developers, focusing on the adoption of Java 8 as well as upcoming developer technology trends. From the survey results, the Java 8 adoption rate overall looks strong, particularly since version 8 had been available for only six months when the survey was taken back in September 2014. This is significant as Oracle’s Java 7 support will potentially end as early as April 2015.
The report shows that 27% of those who filled out the survey have already upgraded to Java 8, with a further 36% planning to upgrade within the next 12 months (from the time of taking the survey). Only 23% of respondents were yet to evaluate Java 8.
21% of those who already upgraded to the latest Java version are using it in production, with a further 36% in staging or planning to upgrade their production environment shortly and 40% running pilots or testing with Java 8.
InfoQ spoke to Jonas Bonér, Typesafe’s co-founder and CTO, about the survey results.
InfoQ: How has the rate of Java 8 adoption compared to previous Java releases
Jonas Bonér: We unfortunately do not have survey data on previous Java release adoption as a baseline - but we think the percentages of those who jumped to using Java 8 in production (or intend to do so in the near future) is very aggressive adoption.
Really what's driving this change is a combination of the need for keeping complexity under control through simpler and more expressive code and design, together with the need for building modern, distributed and resilient systems.
Being able to take advantage of multicore and cloud platforms, with the scaling and performance benefits that come from it, without losing sight of the core business problem to solve and drowning in accidental complexity. Developers are hungry for better tools supporting this evolution, and Java 8 did a really nice job of extending Java's capabilities in handling some of these areas, making it less cumbersome and complicated to build systems that deliver on these challenges. I really think it is going to be where everybody ends up, Java 8 is the introduction of that to the mainstream.
One of the headline features included in Java 8 is of course Lambdas, bringing more functional programming and methodologies into Java development. Of those using Java 8, almost half (45%) are using Lambda features, with a further 51% who are exploring the Lambda capabilities in Java 8. Only 4% were unaware that the feature even exists in the new version.
68% of those using Lambdas in Java 8 stated they were more interested in exploring other functional languages with Lambdas as a result, with only 9% being less interested.
InfoQ: Do you think the additional features in Java 8, namely the functional programming advances with the inclusion of Lambdas, will make Scala adoption less attractive to developers?
JB: I think it is the other way around. First, Java 8 is validating some of the new and innovative features in Scala and helps with the task of educating the masses in functional programming (FP)—this is great for Scala. Second, when developers get the taste of FP, Scala is a lot more rewarding. It is a language built around FP (as well as OO) from the ground up, instead of retrofitting it on top, as in Java 8. This means a lot when it comes to simplicity, composability, expressiveness and power.
Of those who stated they are are not using Java 8, and have no plan to adopt it within the next 12 months (from the survey date), 69% are running with Java 7 and 26% are running with Java 6, a version which Oracle dropped official support for in February 2013. Their reason for not planning on adopting Java 8 within the next 12 months included legacy infrastructure (37%), scarcity of resources/time (31%) and organization obstacles (19%). Just 19% had concerns with Java 8, although the nature of those concerns were not outlined in the report.
The most popular upgrade away from Java 6, by those respondents still using it, would be to version 7 (41%), rather than version 8 (33%), with almost a quarter (23%) happy to remain on Java 6 for the foreseeable future, despite the lack of Oracle support.
Even though Java 8 was only recently released in March 2014, 28% of Java 8 adopters already have a "strong" interest in Java 9. 32% have average interest, 32% have mild interest and 8% have no interest. Of those who were interested, 48% of respondents were excited about value types and 43% are most interested in Project Jigsaw, the Java modularity project that was originally targeted for Java 8.
Other technologies mentioned in the report, included container technologies, application servers, cloud, big data and IoT. 13% of respondents use containers such as Docker in production, with a further 60% investigating them. Over half of respondents (57%) said IoT is not an area relevant to them, with 21% currently running with networked devices/IoT in production.
Scala is actually language bursting around FP
"It is a language built around FP (as well as OO) from the ground up, instead of retrofitting it on top, as in Java 8. This means a lot when it comes to simplicity, composability, expressiveness and power."
As we know, the writers of Scala's roadmap and next steps plans admit that a lot of "retrofitting" will be needed and done in the Scala's near future
1) Scala 2.12 will require Java 8 => more Java 8 fun for Scala developers
2) Cleaned-up syntax is needed
3) Removing puzzlers is needed
4) Simple foundations is desired
5) Better tooling is needed
6) Faster code is needed
7) Cleanups and simplification of the collections library is needed like: improve test coverage, performance, documentation (& modularize?)
After reading details about all those needs and desires , it is hard to see what that "built from ground up" means in this context ?
Re: Scala is actually language bursting around FP
I find newer JVM languages to be more palatable, my preference being Ceylon but with Kotlin as another good candidate. Gosu just doesn't feel like a serious language to me and XTend seems to be too thin a wrapper around Java proper.