IDEs vs. Build Tools: How Eclipse, IntelliJ IDEA & NetBeans users work with Maven, Ant, SBT & Gradle
In our recent Java Tools & Technologies Landscape for 2014, over 2000 developers told us a bit about what JVM technologies they use and which tools are interesting to them. From that, we produced a gorgeous, professionally-designed, 60-page report (which you can download) on 14 technology segments. We recently dug deeper into users of Spring MVC, JSF, Vaadin and GWT and the post ended up being really popular.
So we wanted to do the same with IDEs—and got so much awesome data that we needed to continue to break it down into tool segment from there!
Sometimes there are moments when nothing is right. Usually it happens when you majorly refactor of your project and have a great amount of unit-tests covering your old system design, and you know what they do and don’t want to just delete them because they still going to be useful later.
The usual solution is to slap an @Ignore annotation onto the test and create a task to reenable them later, which is clearly not optimal.
In this post we’ll try to devise a better solution. It won’t make everything right, but it might be a step in the right direction.
If a non-developer asked you “What is Java?”, how would you respond? could you answer questions from a muggle about how new features get added, who decides what features do or don’t make it to future versions, and how does a team of dedicated Java platform engineers and random developers around the world influence the language? Have you ever wondered what the whole “Java” thing is really about, and why, for Pete’s sake, did it take so long to get lambdas into Java…
A few months ago, I wrote a RebelLabs blog called The 5 people in your organization that grow legacy code. In that article, I described five different profiles of contributors to your legacy code and after much discussion around the topic, I realized that the original post only identified the people and didn’t provide proper techniques to deal with them. So in this post, I offer some suggestions for dealing with these people. Especially since I am guilty of falling into at least one of these categories myself at some point, and probably so do you!
For me, mid-2000 was the big bang of a new generation of languages that run on the JVM. Among the first languages interested in enjoying the benefits of the brilliant engineering behind the JVM were Scala, Groovy and Clojure. Both of them are still going strong and flourishing. But after them new languages have been created such as Golo, Ceylon, Kotlin and others.
Not that you asked me, but I believe that software engineering is mostly about solving problems. All those blog posts saying “every child should learn to code” and “pff, math? I’m a programmer and I’m doing so much more than math, have you seen my HTML5 debugger thingy” agree that software engineering is more than writing pieces of prose in specific languages that computers know to understand. Problems our software solves defines us as programmers.
You’ve probably heard of Jython before–a 13-year-old, mature, JVM-based, object-oriented scripting language, Jython is the ‘Java’nised version of Python, if you will. In the past, it went by the name JPython, a far cooler name, if you ask me!
Considering the time and effort that has been put into it in the recent years (the language development had a hiatus period during 2005- 2008/ 09); it has still not received the amount of attention from the programming community that it should have. This is one language that is laden with features and is the best of both worlds: Java and Python.