I consider myself a fairly well rounded developer. So when it comes time to choose a technology to accomplish a task I will happily choose the one that is the best fit whether it requires Ruby, Python, Java, Objective-C, PHP, CSS, or Bash or anything else.
Recently I was given a project to take on. At first it looked like it would be adding some PHP code to an inherited code base. Upon starting it became apparent that the code was a disaster and too far gone to be recoverable… a full re-write would probably be best however it was way out of the budget for now. Rather than continue patching in the new features we needed, we decided to create a new side project that tied into the existing database to accomplish what we needed. It gave me a chance to evaluate how I wanted to build this application.
Generally we do Ruby on Rails work with my team. However given that the existing database schema was not even close to normalized or conventional Rails would have been a difficult way to go. There would need to be a lot of boilerplate code to map things to new field names. It just wasn’t a good fit.
Turns out, it didn’t go over well with some people on the team.
“We use Rails as a technology stack”
Passion can run high in technology circles over tools. Apple vs. Windows. VIM vs Emacs there are religious fights about which is better.
I like to be good at a breadth of technologies, that means staying sharp on a fistful of languages and tools, while always looking to learn new things. Others like to focus on being world-class with one technology stack.
Which is the better approach?