Google Groups
Subscribe to Software Outsourcing [ Hire Dedicated Group ]
Email:
Visit this group

Friday, July 11, 2008

Opinion: So many platforms, how does a developer choose?

Developers are faced with more choice in platforms today than ever before. There are social networks like Facebook, MySpace, LinkedIn and OpenSocial. There is the iPhone SDK, Google's Android and RIM's BlackBerry. There are communications tools like Twitter, Jaiku and Pownce.

There's the choice of development languages and associated tools. Do you choose Java? Ruby on Rails? Python? PHP? Flash? Django? .Net?

How about cloud computing infrastructures? Amazon? Google AppEngine? Do you risk some unknown start-up?

And the computing platform — Windows, Mac, Linux or some combination? Or Web-only?

So many choices. How does a developer decide?

The easiest way is to follow the money. That certainly drove development on the Windows platform 20 years ago. But what if there is no obvious money?

In a world of free products, you'll need to choose the path to the greatest reward. That usually means that the chosen route will get your product or service in front of the greatest number of people as quickly as possible.

A couple of years ago, I wrote a free offline blogging tool named Bleezer — just because I wanted to see if I could, and because I wanted to return the favor for all of the free software I've used over the years. For multiplatform support I chose Java, and I implemented the Blogger, Movable Type and Wordpress interfaces. That was my last real desktop application.

A year ago, when Facebook Platform was announced, I could see that Facebook was growing exponentially. I could see the potential for getting Web-based applications in front of groups quickly, and virally, so it was a simple decision to learn that platform. That decision in turn drove me to learn PHP and MySQL, since the platform provided a PHP API. My first app also required me to learn Flash, but I'm not happy with the exorbitant price of the development tools, so I've stopped working with it. I've also been doing some cross-social-network stuff, so I'm looking at OpenSocial.

Today I'm learning Ruby on Rails, because I've seen how quickly it can be used to build a Web application. However, I'm also keenly aware from the experience of Twitter that it may not be the most scalable choice. But I'm not building anything that big yet, and time-to-market is of greater concern.

And like many others, I have the iPhone SDK sitting on my laptop, though so far it is untouched. I'm in Canada, which doesn't have the iPhone currently, but I have an iPod Touch, and I can already see that this is going to be an important platform. So the iPhone is next.

Back before the days of the Windows platform, it was like the Wild West. Every application looked different, and acted differently as well. Windows standardized everything so you only had to create one product, and all of the products on the platform behaved similarly.

Today we have much greater choice of tools to use, but we're back on the frontier again: a different platform for every tool, and precious little standardization, except for efforts by Google such as Android and Open Social. And a new platform announced virtually every week.

Given a finite limit of development resources, maybe we should stop picking platforms and start pushing for some standardization. Is it really necessary to have so many different ways of working with so many products that, at their core, do much the same thing?


source:- computerworld.com/