Tonight, we organized our biweekly XKE (Xebia Knowledge Exchange), which is a forum where we update each other on interesting developments or have discussions on various topics.
One of the topics of tonight was: "what keeps us programming in Java"? The underlying thought about it was: what prevents us from programming in a different language, especially a dynamic language like Ruby on Groovy. Because I'm a little more into Groovy than I am into Ruby, I'll talk the rest of the blog about Groovy, but you can probably exchange it for any (dynamic) language.
One of the key factors (and this might sound like an open door) to stick to programming in Java is that we are all very familiar with the language. We have invested time learning it, we know the frameworks, and we have real experience that it works. Furthermore, people know how to manage a Java application, know how to deploy it on an application server, and as an added bonus, IDE's support Java really well.
Real life projects
For Groovy (or Ruby, see above), it's a different case. None of us (or none of the attendants of my session) have real project experience with Groovy. The only experience we have is based on (some quite extensive) non-work related projects. These projects don't really represent the business cases we usually work on, and therefor they don't provide enough basis to support Groovy in a solid way. Some of the fears which came up during the discussion were about:
* Tool support
* Knowledge about the language
* Customer support
However, as I stated before: none of us had any real project experience with Groovy, so we don't know if the above concerns really have any impact on our projects. For example: should (or to what degree should) our customer care how we help them solve their problems? And does language speed really impact our application, or do we have other performance problems to solve?
So, what we need is real Groovy projects to get our experience up to par so we can do some real Groovy projects. Hmm, this might sound like a chicken and egg problem. Unfortunately, it's currently quite hard to come up with some real data about projects done in, or with, Groovy. I've Googled around, and came up empty handed.
Therefor I have a question for you: what are your experiences with Groovy (or Ruby) ? What problems did you run into? How did you overcome them? What did you gain by using Groovy? Any insights in getting some real life data will help stimulate our discussion about the next thing after Java, so your feedback is highly appreciated!