The latest expert opinions, articles, and guides for the Java professional.
Introduction to the geek love fest
Have you ever heard the question: “How do you know if you’re in love?”
Well, forget that. We’d rather know “How do you know when a technology is going to change your life?”
So we asked ourselves, is it possible to identify which technologies are loved and chosen specifically by geeks…and to understand why they are chosen?
In part, yes. We have statistical evidence from three years of developer surveys about dozens of technologies, but this is about more than just market share or t-shirt coolness that influences our judgement in these matters. It’s never only based on one element, so here are some we thought about, in order of importance (or gravity):
- Market data (raw % of market, relative size of market, level of fragmentation)
- Developer feedback (i.e. explicit responses from surveys)
- Amount of buzz about it (press coverage, social media share, community presence)
- Anecdotal evidence (personal conversations, stories, gut feeling)
Obviously, the prerequisite here is that the technology needs to visibly provide value on some level, solving problems or inefficiencies that exist in software development or reimagining something better altogether.
Each of these technologies has a story behind it, usually a good one, and supported by a culture and a reason for existing not born out of dreaming about riches. We believe this is what geeks are drawn too. Something personal, with a pulse.
So we went out in search of the heart behind that pulse and contacted as many leaders as we could from among the target technologies. With a couple exceptions, we got direct quotes from the right people, giving us greater insight into what the future holds for the technology itself and the space in which it lives.
So, in alphabetical order, here are 10 top technologies the modern developer loves:
- IntelliJ IDEA
- Tomcat + TomEE
Honorable mention: JRebel*
*At first we debated whether it was too biased to include a tool made by the same organization that sponsors RebelLabs, but with clear statistical evidence of love for JRebel by developers, it deserves an honorable mention :)
First Release: 2005
Latest Release: 2.0.1
Interesting Facts: Git was first designed and developed by Linus Torvalds himself, for Linux kernel development.
Git is a distributed revision control and source code management system made by Linux creator Linus Torvalds in between fits of rage directed towards certain less-awesome contributors to the Linux kernel.
In 2012, Git was gaining traction in a market dominated by Subversion (SVN), but still had far to go. Fast-forward to 2014 and we see a different scenario–whereas DVCS competitor Mercurial stayed with more or less the same as two years prior (about 1 in 10 devs), Git has gained more fans quickly, over-taking Subversion for the first time and propelled by the community activities of GitHub, Atlassian and others. GitHub is so synonymous with Git these days that some developers accidentally refer to GitHub as their DVCS technology of choice, whereas it’s more accurately a value-adding provider of tools and services on top of Git. No matter.
Git has taken over where Linux left off separating the geeks into know-nothings and know-it-alls. I didn’t really expect anyone to use it because it’s so hard to use, but that turns out to be its big appeal. No technology can ever be too arcane or complicated for the black t-shirt crowd1.
– LINUS TORVALDS, Creator of Git (and Linux)
Over the last few years, Git and Subversion seem to be trading market share with each other, while Mercurial maintains the stable #3 position (much like NetBeans in the IDE segment). CVS, without a new release since 2008, is understandably not gaining market share.
First Release: 2012
Latest Release: 2.0
Interesting Facts: Unlike Ant and Maven, Gradle decided to go a different route with a Groovy DSL for configuration and scripts. It took 3 years and 11 milestones to go from v0.7 in 2009 to v1.0 in 2012.
Gradle is a build tool that automates build test, deployment and more. Unlike other build tools, it is powered by DSL configuration. Rumors are emerging that Gradle can even be configured to build you.
In a space that has seen relatively little movement or large innovations since Maven 2 back in 2005, Gradle has certainly captured the attention of Java devs that are tired of market dominator Maven’s XML footprint and Ant + Ivy’s long list of issues. Doubling in market share since 2012, Gradle is Groovy DSL based, configurable in a billion ways and even let’s you launch an empty build script.
With only 11% of the share of the build tool market, Gradle was nonetheless the most interesting technology for the majority of 2164 developers when asked about this segment.
Nearly 6 in 10 developers want to learn about using it, even though it required some Groovy knowledge–that, plus Google has officially selected it to be the future official build tool for Android. Which, isn’t much until it’s actually in use, but a strong indication that Gradle is a tool chosen by geeks.
– HANS DOCKTER, Creator of Gradle
First Release: Jan 2007
Latest Release: 2.3
Interesting Facts: Did you know that a third of the downstream traffic in the US is coming from Netflix? And that that huge traffic goes through various layers of Groovy? That makes Netflix the biggest deployment at scale of Groovy!
Groovy is an OO programming language that runs on the JVM. It also retains full interop with the Java language. Despite popular belief, Groovy was not first invented by flower children in the 1970s.
Groovy was not the first JVM alternative of choice for developers, but the general vibe is that Groovy is also something to look into–at least for for nearly 1/3 of developers. For many developers used to coding in Java, the first hint of Groovy comes by trying Gradle, which is a Groovy DSL build tool getting a lot of attention these days.
Groovy, and related tools like Grails, Gradle and Griffon, have propelled into the minds of nearly 1 in 3 developers, according to a recent survey, and gearing up to either co-exist or challenge Scala in the enterprise development world.
Groovy often goes head-to-head with Scala for the position of supremacy in the alternative JVM language segment–in 2012, Groovy was first in use on alternative projects, with Scala in 2nd place. We predict eventually that one or more major entities (probably in something like media, transportation or banking) will provide either language the boost towards dominance by fully adopting something other than Java for mission critical applications.
Groovy success is mainly due to its familiarity with Java. Developers want to get things done, they want to master the language quickly, they want power features. Groovy’s a more productive language than Java, but still with a similar Java syntax that is already well known. And on top of that, Groovy simplifies mundane tasks that used to be complex to develop. Personally, I’d like to see full pattern matching coming to Groovy. We already have some forms of destructuring with multiple assignments, of matching with our enhanced switch / case, etc. But we could go beyond and offer some more advanced pattern matching capabilities, that would help working with complex object hierarchies (like our AST transformations do). In the future, we’ll see more convergence and similarity between languages — at least in terms of features, if not necessarily in terms of syntax. Today, a modern language has to have a functional flavor, for example, but syntax varies.
– GUILLAUME LAFORGE, Groovy Project Lead
First Release: 2001
Latest Release: 13.1
Interesting Facts: IntelliJ is actually an Open Source project hosted on GitHub, with over 130,000 commits to date!
IntelliJ IDEA is an IDE developed in Java with advanced code navigation and code refactoring capabilities, supporting development in many languages including Java, Scala, Groovy and Android. IntelliJ also boasts the most outspoken community of crazed developers in love with it.
We’ve all run into an IntelliJ IDEA fanatic at one time or another, and the main takeaway from many of these encounters is something like “you’re an idiot for not using IntelliJ.”
Regardless, since we last looked in 2012, the IntelliJ “fanboy-ism” in the IDE segment has led to a change in the landscape dominated by Eclipse, whose market share is slowly eroding. IntelliJ, now used by 1 in 3 developers, is also the most interesting IDE for almost half of the developers we asked (49%), leading us to finally ditch all the anecdotal evidence that IntelliJ rocks and finally proclaim it “chosen by geeks” officially.
Even though IntelliJ IDEA focuses sales of its commercial version, it is nonetheless used by 33% of developers overall. As the only non-free IDE with any sizable market share, it is also very popular and interesting to developers–nearly 50% of those surveyed would rather use IntelliJ IDEA than any other IDE.
If you ask why I think IntelliJ is successful, I’d say that it’s due to us listening to the community and being ourselves part of our own target audience. We’d love to see more development of plugins with educational focus, as well as first class pure functional languages support. These days, there’s a lot requests for better Git support, namely support for Git submodules. Over the next decade, I think we’ll see most currently existing functionality inside of paid development tools become free, although I’m no oracle :)
– MAXIM MOSSIENKO, Development Department Lead at JetBrains
First Release: Jan 2011 (2005 as Hudson)
Latest Release: 18.104.22.168
Interesting Facts: Jenkins was born when the Hudson project, created by Sun Microsystems, was forked when questions grew over control or stewardship of the project. Since then, Jenkins popularity has soared, while Hudson tends to be used more for legacy projects.
Jenkins is a Continuous Integration tool, that provides automatic build triggering from VCS commits and much more. Jenkins can probably be customized via the Internet of Things to make your drinks, but won’t physically serve them to you.
Things are finally looking better for application development these days–over 80% of developers are finally using Continuous Integration to make sure they don’t keep breaking their app before it even gets launched. Bravo! Joking aside, Jenkins has an almost laughably dominant position in the CI server segment; with founder Kohsuke Kawaguchi leading the way, a strong community of active plugin developers and a group of geeks even using it to trigger their office coffee machines, Jenkins is definitely a geek’s choice.
With 70% of the CI market on lockdown and showing an increasing rate of plugin development, Jenkins is undoubtably the most popular way to go with CI servers.
When asked about future development of Jenkins, it’s usage is so diverse it’s hard to say what users want most—but generally users demand everything and expect it be done yesterday! What made Jenkins successful is the increasing need for more automation, and it just so happened that Jenkins is extensible and pluggable enough to let people do what they wanted. I’d love to see more participation in the community, such as more development, more knowledge sharing, etc.
– KOHSUKE KAWAGUCHI, Creator of Jenkins
JIRA and Confluence
First Release: 2002
Latest Release: 6.2
Interesting Facts: JIRA is used for issue tracking and project management by over 25,000 customers in 122 countries around the globe. That’s a lot of issues!
First Release: 2004
Latest Release: 5.5
Interesting Facts: Confluence dropped wiki markup support in version 4, but geek pressure brought it back as a plugin which provides XHTML-based source markup.
JIRA is an issue tracker that provides issue management, workflows, task assignment, and much more. Confluence is a collaboration tool used to create content and share across a team, with support for tracking requirements, retrospectives and more. JIRA and Confluence are not the only products Atlassian makes, but we put them together here because they are both Atlassian products are designed to work in conjunction.
With JIRA and Confluence, Atlassian has become one of the first coder-centric companies to branch into the mainstream, giving non-technical folks in technical environments a chance to understand WTF is going on. With the exception of Skype, developers are using Confluence even before other tools *actually intended* for communication.
JIRA is far and away the most used issue tracking tool used by modern developers, with an adoption of 57% in our Developer Productivity Report 2013. Runner up GitHub landed in second place place at 21.7% with others being spread below 10% each. It also has an positive effect on the predictability of software delivery, as the same report shows, JIRA users having an increase of 2% in predictability of software delivery. Confluence on the other hand, a content and collaboration tool, is used by 29.7% of respondents as a communication tool if you can believe it, with Skype the only tool to beat it. But with a 3% increase in predictability of software releases, it made the cool list.
In the next 5-10 years, I see companies embracing tools that people actually want to use. It’s totally backwards that people use better software at home than they do at work. Historically, we’ve seen strong JIRA and Confluence adoption among software development teams and internal IT teams, but more and more we’re seeing non-technical teams using our tools to accomplish their most important work. Regarding JIRA’s success, it’s always been driven by its breadth of functionality and accessible price point. As we’ve worked over the years to improve JIRA’s user experience, design, and integrations with other Atlassian products, it has become more ever more popular among teams of all types and sizes. Confluence owes a lot of its success to the success of JIRA. Software development and IT teams typically seek JIRA to manage their projects first, and then seek Confluence to collaborate around technical documentation and other valuable content. In cases where teams are using both tools it is important to them that relevant information is is always up-to-date, easy to find, and at their fingertips without context switching.
– RYAN ANDERSON, Product Marketing Manager for Confluence
First Release: 2007
Latest Release: 2.6.3
Interesting Facts: MongoDB is both the product name and the company name. Previously, the company was called 10gen, but nobody knew who they were until you said “You know, the MongoDB people”, so they bit the bullet and changed their name to MongoDB!
MongoDB is a document database that supports programming languages to map data types directly to documents in the database. MongoDB is not the technology from the film Blazing Saddles.
MongoDB is the dominant force in this maturing NoSQL market, where other interesting players like Neo4j and Hazelcast are also gathering supporters.
The world of NoSQL databases is still certainly maturing: compared to many of the big SQL players from the 90s like MySQL, Oracle DB and PostgreSQL, the NoSQL group of cool newcomers is dominated by MongoDB (56%) released in 2009. To be fair, only 39% of developers surveyed use NoSQL at all, compared to 92% for usage of SQL, but we see a much more evenly-spaced market share layout for SQL technologies. MongoDB has become a dominating force in it’s market, fueled by massive growth and community action, making MongoDB a choice worthy of a geek.
I do believe for database tools that “one size fits all” is over, but I don’t think you want a dozen different tools that you have to be an expert on. You want three of four and some of those are your existing tools: an RDBMS and maybe some data warehousing technology. You’re going to add a NoSQL database to that toolbox. We are seeing a lot of usage by big Global 2000 companies now. NoSQL in general and MongoDB is getting to be something that’s used by companies of all sizes if they write any apps at all2.
– DWIGHT MERRIMAN, Founder of MongoDB
First Release: 2003
Latest Release: 2.11.1
Interesting Facts: Scala was voted the most popular JVM scripting language at the 2012 JavaOne conference. In January 2014, the Redmonk Programming Language Rankings report placed Scala 13th, one place above Haskell!
Scala is a JVM language that provides support for OO and functional programming. It is a statically-typed language with full interop with Java, even though a lot of Java devs are still scratching their heads in WTF mode with it most of the time.
With interest in learning Scala shown by nearly half of the developers surveyed, Typesafe’s surrounding ecosystem of tools like Play, Akka, Slick and sbt might be readying for battle with Groovy in turning Scala a real enterprise alternative to Java.
Scala has come a long way since its 1.0 release back in 2004 and has grown to be one of the most interesting languages running on the JVM. When we recently asked developers “which alternative JVM language they would be most interested in learning”, 47% listed Scala as their next choice. When nearly half of Java developers out there go for Scala, it’s got to be for a good reason. In the build tools segment, disproportionate interest in Scala’s SBT compared to real-life usage leads credence to the idea that Typesafe’s focus and the community backing of the Scala ecosystem of tools, including Akka, Play and so on, is culminating in a general trend.
Scala has evolved a lot since its inception in 2004. Its user base has grown to a size I could have never imagined back then, and has been picked up in industries ranging from major enterprises, financial institutions, to startups. Being recognized by RebelLabs is a huge honor and validates the work we’re doing to create an elegant and powerful programming language.
– MARTIN ODERSKY, Creator of Scala
Tomcat and TomEE
First Release: 1999
Latest Release: 8.0.9
Interesting Facts: Tomcat was originally a merger of Sun Java Web Server code and ASF RI if Servlet 2.2 and JSP 1.1, hence starting at v 3.0.x
First Release: April 2012
Latest Release: 22.214.171.124
Interesting Facts: TomEE is certified for Java EE 6 web profile and aimed at Java EE 7 full profile.
Tomcat is the leading free, open-source Java Application server people turn to when writing Java Web Applications requiring JSP and Servlet support. TomEE provides Java EE support to the existing Tomcat base, retaining the Tomcat look and feel. Neither Tomcat nor TomEE require a litter box.
With Tomcat in use by an even 50% of developers surveyed, there is no doubt as to which application server is the first one people think of when it comes to Java development. TomEE, an extended profile for enterprise developers that even partially supports Java EE7, is now professionally supported by creator David Blevins’ company Tomitribe. Both Tomcat and TomEE are geeks’ choices because their popularity and high usage by development-only teams, where production servers are not considered.
Tomcat, long the indie developer’s hero, is now used extensively in enterprises, namely when development teams get to choose their own app servers. This is where TomEE comes in: as the natural extension of Tomcat into Java EE, TomEE combines the huge community of Tomcat with the attention to enterprise needs.
I think one factor for our success is our religious adherence to all things Tomcat. TomEE is the Java EE version of Tomcat, the most popular Java app server out there, and it’s supported by all tools that support Tomcat, whether those tools know it or not. While TomEE works out-of-the-box with Tomcat tools, many have added support that takes advantage of the extra features TomEE brings. JRebel was actually the first back in 2012, and Intellij, Jelastic and most recently NetBeans are proud supporters.These days what our users want most for TomEE is Java EE 7 support, and many of the Apache projects we need for Java EE 7 are nearing completion. Although the core of TomEE is very good and always getting tighter, I’d like to see improvement is in the professional dressing around the project. Many people have praised the documentation, but I still see room for improvement, and more frequent releases is also quite high on my list. We’ve also done two security releases in the last quarter, each timed right behind the respective Tomcat security releases. We need to keep that up.
– DAVID BLEVINS, Creator of TomEE
JRebel (Honorable Mention)
First Release: 2007
Latest Release: 5.6.0
Interesting Facts: The cumulative time that JRebel technology has saved developers is over 1 developer’s full lifetime! That’s some serious redeploy time!
JRebel is a productivity tool for Java, Groovy and Scala developer’s. The tool eliminates build, compile, redeploy and restart time from a development cycle. If you are a slow or unnecessary part of the Java EE development cycle, watch out.
To avoid additional survey bias in our 2013 report, JRebel customer records were matched with the email addresses of survey respondents. When the analysis was over, we found that JRebel users are able to predictably launch software 8% more than the median of 61%.
You only need to speak to a JRebel user to hear how grateful they are the project exists and how thankful they are that they’re using it! In a development world with containers, large applications and very few ways to hot reload your code, JRebel is the most popular way to do this with Java Resources, Classes and Framework code. Its user base is ever increasing with an extremely high renewal rate. JRebel are easily the market leaders for this type of tooling, and is an essential for large enterprise environments.
Our 2013 Developer Productivity report shows that a statistically significant increase of 8% in predictability of software delivery is seen by JRebel users.
The biggest reason for JRebel’s success is actually the ignorance of the technical challenge—when developers finally see how coding in Java can be without any delays then it’s like a lightning bolt! We constantly hear from users about more and more integrations with 3rd-party frameworks and commercial platforms, but what I’d really like to see in the future with JRebel is support for test-driven development (TDD) workflows. For the long-term, I hope that we’ll see the appearance of novel development platforms with interactive support and first-class verification/introspection built-in.
– ANTON ARHIPOV, JRebel Product Manager at ZeroTurnaround
Conclusion: Recognizing Geeky Excellence
As we said in the beginning, there is no single factor that indicates developers love for any particular technology, nor is there a single reason why developers love these technologies in the first place. These technologies cover many different aspects of the software development market, and this awesome brew of JVM languages, IDEs, app servers, build & productivity tools are all celebrated choices of geeks…
And on that note, RebelLabs is happy to announce its own annual Geek Choice Awards to recognize technologies like these!
Some technology awards are based on submissions, which means the outcome is greatly determined by the number of incidental supporters that cast votes during a specific time period. We think it’s better to already be awesome and then receive the recognition of an award for no reason other than to say “Thank you for making the software game brighter!”
So to kick off the very first Geek Choice Awards, we’ve decided to give an award to each of the technologies covered in this report. We’ll be announcing it more loudly in conjunction with the folks we talked to in this report later on, so stay tuned for more from us on that. Got a technology you think rocks and should be considered for an award next year? Let us know in the comments section below, or by tweeting us @ZeroTurnaround.
Sorry, the comment form is closed at this time.