Last night was the Atlanta Web Entrepreneur’s group meeting - which was held down at the ATDC, thanks to Lance Weatherby. The main discussion was “Selecting a Technology for your website”.
I served on the panel as the representative for Ruby on Rails. The other panelists were:
Rusty Zarse was suppose to moderate but had a family conflict - so Alan Pinstein stepped in and did a fine job. I had met Alan the previous night at the Capital Connections event and his real estate web business is very interesting.
We spent most of the night debating the merits and weaknesses of each of the different languages and frameworks. Much of the discussion blurred between comparing features of the language with the framework itself. The audience seemed to have a varying degree of backgrounds - some technical, some non-technical, others in the middle. It was challenging to talk about the pros and cons of specific frameworks and not get too geeked out. I think the main consensus we all seemed to get across was that (a) a technology platform and toolset is really about the people that are building the product/service and (b) it depends on the requirements of the business. Several of us made the point at different points that what really mattered the most was getting quality technical folk. If you did that, they would figure out the right frameworks to use.
As in almost all technology discussions, I try and think about it from a total cost of ownership standpoint. And, that often conjures up thoughts of how much my hardware costs are and what the amortization of the upfront buy will be. And then, certainly, the cost of labor or contract services assistance. And training, etc. But, recently, I had a long conversation with a customer that had made a couple of bad technology selections - not because of the technology itself - but because they neither had any internal expertise (or just plain experience) with the selection nor did they have any access regionally to people on a contract basis that could be hired to bridge the gap. While both products they selected are open source, they’re both extremely complex and their codebases are impossible to learn on a whim - especially by an average programmer. In their case, they did the simple buy-vs-build equation and technology evaluation - but completely eliminated probably the most important part: who’s going to be able to “do this”. Several questions last night centered around a similar flaw in thinking: “Which framework should I as an entrepreneur make for my technical team?” Hello…. None. If you’re an entrepreneur with no deep technology background and you have a team — you shouldn’t be making any framework decision - they should. You need to provide the requirements, the financial working parameters and the support they need — and you should get out of the way and give them the ability to execute. If you’re an entrepreneur with a technology team, go fetch them pizza while they code their butts off. I promise you, it will go a long way — especially much longer than trying to make the decision for them.
So, I thought I’d try and address in written form some of the questions that were asked last night:
What kind of websites is your technology best suited for? Which is it not so well suited for?
Ruby on Rails is really making a lot of debuts in more recent Web2.0 websites. This is partly because it’s the latest new thing. But, also, because it has a large concentration of libraries that have been specifically created for the next generation of capabilities such as tagging and geocoding. That’s not to say that you couldn’t build a traditional enterprise website in RoR, it can. RoR lacks support for some of the more enterprise integration tasks that some enterprises need - but there are plenty of backed in options like Active Messaging that allows you to talk with a JMS service for messaging. Support for web services and REST is also backed into to RoR - so it’s easy to integrate into a enterprise service bus or other SOA architecture.
What famous web2.0 sites are using your technology?
37Signals has made RoR not only possible, but popular, based on its nice utility software-as-a-service applications such as Basecamp, Campfire and most recently, Highrise. But also, the more recent challenges at Twitter has also proven that RoR based applications have a way to go to get to massive scale.
What does it cost to use your technology (e.g. hardware, software and support)?
RoR is open source and free. Hardware is not. Support is based on the community model - and I’m sure you can find a number of people who will support your rails effort if you really need it. Like almost all technology decisions, the largest factor in cost is people cost. Not just their salaries, but how efficient and productive they are. Most frameworks are chosen to help solve this problem - and RoR really succeeds in making development not only pleasant and fun again, but also extremely productive and hassle-free.
How steep is the learning curve for newcomers?
I’ve found that RoR is a little harder to un-train developers that have a lot of Java experience - simply because RoR (and Ruby itself) is just plan straightforward. It supports traditional syntaxes like the for-loop.
Let me illustrate:
In most traditional languages, you can iterate over a loop such as:
for (x=0;x<len;x++)
{
// do something here
}
In ruby, you can do something much easier:
len.times do |x|
# do something here
end
OK, certainly that was a very trivial example. But let’s take another simple one. Let’s say you need to pass in a number of milliseconds to represent how long you should sleep before you wake up. Unless the unit of time is very simple, most people have built or used libraries to assist them in calculating the value. Not in RoR:
sleep (10.minutes)
Any integer value in RoR supports any number of time unit conversions automatically. Is that enough to choose RoR over .NET? No, of course not. But, it’s pretty easy to pickup and exteremely fast to get proficient in it. It’s also one of those rare frameworks that you have moments of fun finding new ways of doing things - and when you do, you say “yes, of course, that’s so obvious!”.
How easy have you found it to find skilled people? How about in Atlanta?
Finding skilled people in RoR has been a little challenging - but that’s simply a function of time. There are certainly way more Java and .NET shops in Atlanta and the greater world than there are Ruby shops.
How much support is there for your technology? Who have you found to be reliable?
Support is amazing on the web for RoR. If you think you have a need for something, it probably already exists as a Ruby Gem on RubyForge.
What issues (if any) did you encounter being an evangelist for your technology in your organization? How did you overcome them?
For us, it was simply a matter of two variables: (a) total cost considerations of RoR - which was fractions of the Java alternatives and (b) pleasure of working with it. For our customers, it’s not that easy. We have to adapt to what our customer environments and constraints are - and in all cases to date, that’s still Java. For our own projects, we’re now 100% RoR.
What add-ons, plug-ins, tools, etc. would you recommend using?
For RoR, I’d recommend the following:
What are some sites you’d recommend?
Some RoR sites I read often:
All in all, I think the biggest problem with RoR is the fact that it’s new and hasn’t been hardened to the point of Java, .NET and PHP. However, that will come in short time I believe. In my previous business, we were one of the first Java based products in the telecommunications software industry. We spent many years pleading with our customers and partners that Java would scale - and it did fine. Now, there are a large number of Java based telecom products.
RoR has a long way to go and a short-time to get there.
technorati tags: ror, rails, rubyonrails, ruby, atlanta, atlantaweb, web2.0, seamless