Sometimes, developers are a bunch of wimps.
We get so comfortable with our programming language that many of us are afraid to try something else.
Many of us learn one programming language (Java, C# or something else) and we stick to it no matter what. We do use libraries and frameworks and we’re often eager to try a new one in our project. But talks about learning a new programming language are usually met with quick rejection. We want to stay in our comfort zone.
I think something is wrong with this picture. Is learning Ruby on Rails really more difficult than learning Spring? Is Hibernate really simpler than activerecord?
Why are developers afraid of trying something new? Some problems can be solved easily in Clojure or Erlang. Are you sure Java/C# is the solution to your problem? It might be part of the solution, but probably not the entire solution.
Discovering ruby (and rails), I see flaws in Java that I didn’t see before. I learn a different way of doing things that expands my knowledge. When I come back to Java, I see problems from another point of view and sometimes use a different solution than I would before learning ruby.
Why are you still afraid?
Thoughtworks published another version of their technology radar. I think it gives good insight on the state of the computer industry. I recommend reading it but to tease you, I’ll give you a few highlights:
- Ruby (and JRuby) are ready for adoption.
- You might consider to start fading out Java (as a language) to use some of the alternatives on the JVM.
- Languages on the JVM (Scala, Clojure, Groovy and of course JRuby) are growing and well-positioned to be more widely used in the future
- Although they love Distributed Version Control tools (Git, Mercurial), they require more knowledge to get the most out of them so using good-old Subversion might be better for your team. Although I would never want to go back to Subversion now that I switched to Git, I have to agree: before adopting Git, make sure you have someone who can handle it in your team.
- Amazon’s EC2 is the most mature solution if you want to deploy on the Cloud.
Read their analysis to know more. It talks about NoSql, Restfulie, C#, Internet Explorer, HTML5… There’s something for everyone and you might learn about a few technologies that will be big in the near future.