Tuesday, 28 December 2010

the snake ate the stone to the music...

Where I was

OK, so a new project is starting in the new year. And I need to select a platform and possibly learn a new language in the process. In the middle of December, I had two choices: Symfony 2 (in PHP) or Ruby on Rails. Both would require a learning curve, but as I'm quite familiar with PHP development, Ruby would require a steeper learning curve.

There were a bunch of factors that I started considering in this decision, not only for myself, but also for my client. I want to develop a sturdy, fast and expandable solution (that's a given). But also, I want to leave them with a solution that doesn't tie them into using me as a developer. Not that I have any plans to abandon them, but I know of people who tie their clients in and I think it's a shocking scenario. Clients should come back to me because of my solid solutions and good service, not because they kinda don't have any other options.

So, obviously, the PHP as a language would be the most popular choice if you're talking developer availability. I found out that we have a Ruby community in SA, but I don't think it's near as big as the PHP one (that's my impression, at any rate). HowEVER (and that's with a capital EVER), Symfony is it's own beast. A PHP developer is not necessarily a Symfony Developer, and many PHP developers settle for more CMSey solutions like Wordpress and Drupal, or other popular frameworks such as ZEND, CakePHP or a simpler framework such as CodeIgniter. This, in my opinion, levels the playing fields between RoR and Symfony as developer support in SA.

The plot thickens

Being on holiday in Cape Town is a great thing. Generally, it's just a good thing. More specifically, it's always a place where I start to think outside the box. Maybe it's the mountains, maybe it's the sea. Whatever it is, I value the way it makes me think differently. So, being in a bookshop in Somerset Mall, I stumble upon a Python book. Something I never considered as an option. My relatively simple decision had gotten more complicated. Now there were 3 contenders: Symfony 2, Ruby on Rails, or Django (python based). I thought to myself, if I'm considering an option where I'd be learning a new language (Ruby), who's to say that Python shouldn't be that language instead. So I buy the book.

Having done some research the last couple of days, it appears that the Rails popularity of 2008 is in a mild decline, and Django and Python is in an increase... Though, that's no reason to choose one from the other. I've decided that 2011 I want to do a project in each (RoR and Django) but, which to tackle first, if not Symfony, is the big question. My gut feel tells me that Python will be easier to get into, but I'll have more support with Rails. So that's where I stand.

I've also just found out that Python 3 (the book I bought) is not usable with Django currently. So the book might show me things that are still un-doable if I do choose the Python route.

At least I can not be accused of making a rash decision when it comes to the path forward. I will know which solution I'm going with on Jan 3, for now, I'm reading more, playing more and hopefully clearing more pro's and cons for each.

2 comments:

Saxy said...

I think you are taking this way too fast. My plants wanted me to warn you that they take much longer to make a decision and my new tree friends in the back only respond to one question a day...

Anonymous said...

Symfony 2 is only being release in early May. (Pre-release candidate and avaiable and being developed with as I speak). So until then you'll have to stick with the older version which aren't so exciting. As such Django has a look of nice things and ready to go. But come march Symfony 2 has pulled in a lot of ideas from Ruby on Rails, Django, Java and really headed into the OO space. Don't miss it.