Is Ruby Eating Your Lunch?

We have an internal discussion going on at my job about how Ruby is eating into the Java ecology. It seems that the Java community has become VERY interested in Ruby. The .NET crowd is too, but it seems the Java tribe picked it up quicker, and began running with it faster.

I made a half-intended remark in that discussion that it seemed Ruby was eating Java's lunch. Easier to use, developers like the tools and language better, and they feel more productive. Our Java team lead fired back that Ruby is eating .NET's lunch as well. And he may be be right. I hope it is.

But this post isn't really about whether Ruby will dominate in 12 months (my prediction is it won't, not in the classic sense.)

This post is about what does the effect of Ruby (and it's ilk like Python) have on our ecologies, both Java and .NET. By ecology, I mean the community strength and presence, thought leadership, toolsets, open source projects and modern development practices.

I think that the Ruby tribe will help Java/.NET. When you learn about other platforms and languages, you learn more about your own platform. You don't need to abandon your toolset for the next shiny thing just because it's new. But you should pause, learn from it, and apply some of that thinking to your own ecology. Steal their ideas, copy their tools, port their code. A different ecology has different constraints and assumptions. Leverage what their different assumptions have allowed them to create. Just like they will borrow/steal from ours since our assumptions are also different from theirs. Evidence? nHibernate; OS X; SLED; and many others.

This platform competition can only make everyone better. First, the competition will drive the platform owners (Microsoft, Sun, IBM, etc.) to drive more value into their platform. Usually through better tools that increase the levels of abstraction (WPF,WCF,WF....) to make developers more productive (stop being a plumber!!!). The competition will also drive the ISVs/Open Source crowd to refine and improve and create. Cause them to push the boundaries. And third, and biggest, it helps developers and architects think different about their platform. Instead of just Control+C/Control+V the system architecture from the last project, injecting some improvements and concepts into that to make it better. Dependency injection and Aspect Oriented Programming are great examples of this as well as the new drive for software factories. This is the digital reflection of the European explorers finding crazy stuff in the world, and bringing it back to impact their culture. Another analogy would be cross pollination in the plant world.

This idea is a big factor in my team's prime directive of 'Better, Faster, Cheaper.' In order to do that you have to constantly improve, and learn. A great way to do that is to see not only what your field does, but what other, maybe not so related, fields do things as well.

To follow this idea, some of the local user group leaders (not just .NET, but across the communities) are trying to put together a cross platform technology conference. Hopefully it will come together. There is a ton of planning to do, and it has been like herding cats.

Comments

Jim Holmes said…
>>There is a ton of planning to do, and it has been like herding cats.<<

Meow!

Popular posts from this blog

Farewell

How does an Architect pack?

Job security is a myth, and how IT Pros are Thriving