Selecting a Platform
I’m using Ruby on Rails for the charting service. How to make this kind of technology decision?
- Maximize reuse — choose the technology that leaves you with the shortest distance to your solution
- Consider the cutting edge — take the opportunity to gain the competitive advantage of a next-gen technology
- Use what you know — temper the first two, knowing becoming a pro in a new technology is a huge investment
The last time I did any real web work was 1999 — building cosource.com on Linux, Apache, Mysql, and Perl (no PHP). Basically a big app running under mod_perl, which queries SQL and spits out HTML. So use what I know, or go cutting edge?
The decision was easy. The world has moved on in the last 7 years. Rails is an amazing platform — for getting something running quickly which minimizes batch size and encourages incremental development; for aligning with known design patterns so as not to reinvent the wheel; for integrated testing (TDD) and inline documentation which enables higher quality, lower-risk, pay-as-you-go development. Ruby is an amazing language — clean, dynamic. And the crowd creating and adopting these technologies are the best in the industry — from brilliant new stars to respected veterans. So these technologies continue to get better fast, to the benefit of anyone else adopting them.
So, over the last few months, I’ve bitten the bullet and tried to move through the knowledge curve from nuby towards ruby pro. And this charting web service is a good first project (in terms of size and technology risk) on which to learn.