It's Not What You Know ...
It's what the community knows.
As Jamie alluded to in an earlier post, we've been discussing and working on a project that we will be making public later in the year. That project is a bit of a departure for both of us, as it's a web-based, CRUD (man, bad acronym) application. We had some discussions about how to do it. Ruby on Rails? Python with Django? Perl and Catalyst? All fine web frameworks that would have probably worked, but we elected to go with Rails. Not because it's the new fine toy, but because Toronto has a very large Ruby community. And when we get in trouble, we're going to be able to ask them for help. Or pay them to help, depending on how much trouble we get into.
And that evaluation becomes probably the biggest decision that we as a small company have to make. As three guys writing code, we have to leverage just about everything we can get our hands on. Web-based time-tracking and billing software. Cloud-based version control (aside: yes, I can do this myself. I did it for seven years. No, I don't want to do it.) Skype, IM, and all of those toys tools.
So for the web app, we went with Rails. Already we've used four great plugins (restful_authentication with acts_as_state_machine, role_requirement and the kick-ass HAML), along with the framework itself. This pattern of reuse is one I've seen going back a long time. Code libraries were the main reason that high-energy physics software was written in Fortran 77; CERN's physics and statistical packages (GEANT and CERNLib) were written in Fortran. It's also one of the reasons for Perl's continued popularity: there's a module on the CPAN to do just about anything, and better than you could write it.
Jamie will be leading the work on a new product that we are considering, and since it's going to be a desktop application, we discussed doing it in C# on the .NET framework. But then we realised that a significant portion of our potential market are Mac folks like us. And Mono wasn't going to give them the look'n'feel they (or we'd) want. In the end, we realised that we could use Python and wxWidgets to do what we want, and minimize the amount of code that we'd have to maintain. Plus Python's popularity in the scientific community would help that project greatly.
So, do your research and pick the tool for the job. Actually, pick the libraries for the job. The tool probably follows from that choice.


Post new comment