intertwingly

It’s just data

Pond Envy


Michal Wallace: The other main advantage is the huge number of developers. Thanks to Microsoft’s reach, .NET is a much bigger pond than python. I can hire .NET developers anywhere, or if i want, I can get a job as a .NET developer. (The Java pond is bigger still, but Java always felt clunky to me.)

My first recommendation aligns with Aristotle's: diversify.  I didn’t do any Perl in the past week, but I did do Python, PHP, Ruby, and JavaScript.  In pond size terms, PHP is huge and growing.  Ruby is nascent but exploding.

My second recommendation is to consider the whole picture.  For me, that includes source control and unit tests.

What I like about Ruby isn’t just the language, but that the community that surrounds this language tends to share these values.  Pick up a random PHP package, and try to find the test cases.  Where are the unit tests for netron?

Now, just try to submit a patch to Typo without a test case, I dare you.  In fact, before making any choices, I’d suggest that you try the following:  Check out Typo.  Copy config/database.yml.example to config/database.yml, and tailor it based on your needs.  Then create your databases.  For mysql (for example):

create database typo_dev;
create database typo_tests;

Load the schema for the tables:

mysql -p typo_dev < db/schema.mysql.sql
mysql -p typo_tests < db/schema.mysql.sql

Make sure that rake is at version 0.7.0 or later via rake -V, if not, execute sudo gem install rake.  Now type rake.  You should successfully execute hundreds of tests.

To get a feel for how all this fits together, look at this patch — test cases, test data, and code, each has a place.  The test cases can verify — at a very fine grained level — everything from the HTTP status codes, to the HTML that is returned, to the results of XPath queries.

Every part of this patch was developed solely using VIM.

The only downside to Rails is that you have to find a hosting provider that supports — at a minimum — FastCGI.

Got any recommendations?  ;-)