views:

172

answers:

3

Let's say that Developer Alex has a strong background in Perl and is familiar with the Catalyst framework. Developer Bob, meanwhile, has a strong background in Ruby and is familiar with the Rails framework.

Alex and Bob get together on a start-up. Of course, each will have very good arguments for their own specialty. Each will have a good case for MVC skills being transferable across languages. And, each will be able to validly claim greater productivity in his own field.

How do you decide which framework to go with? What factors should enter into the decision? Is there a way to integrate both skill sets without hammering productivity? Is there a way to avoid this becoming a zero-sum game?

+4  A: 

I think what defines whether a program will be good or not does not rely so much on the technologies, as the programmers themselves. Bad code can be written in any language, and a good programmer can write an awesome program in any language as well.

The factors you consider should not involve the programmers and their familiarity with the frameworks. Consider the goal and which framework will achieve it best in the overall (deployment, hosting, initial setup)

The key is to decide one way or another now. The longer they debate this, the less work will get done. Make a choice between these two good frameworks, and commit to it.

Programmers are great at learning new languages, etc. And I'm not aware of significant drawbacks to either of those technologies.

Tilendor
+1  A: 

The framework should be the best suited for the task. Where is it running? is a big question.

If one developer is not familiar with the chosen framework, he should focus less on Language-/Framework-heavy work; instead he could work more on the front-end, on the architecture, on the database model, on the project tasks, etc.

Dimitry Z
+1  A: 

Another consideration to make is to consider the long-term maintainability of your application. On the one hand, it may be easier to find Perl programmers than Rubyists. This means that you will have a higher probability of finding an ace Perl monk. On the other hand, Ruby as a language can be more expressive and easier to understand than Perl (I used to be a Perl monk, and now Ruby is my favorite scripting language).

Whenever I've done a "greenfield" app, I've put some serious thought into writing up a project vision and requirements doc. Do this assuming that this needs to go into your business plan, and that you need to persuade smart business-saavy techies like Alex & Bob that you're on the right track. Once you've done a decent job of analyzing what your app is about, it will be much clearer what technological choices you need to address. I found Wieger's Software Requirements book to be helpful.

@Tilendor is absolutely right. At some point, you have to commit and move on.

Alan