Tuesday, 1 December 2009
Quite often, one gets the feeling that software development is changing from what you know it to be, to something completely different. This is especially when one considers opinions that are daily expressed on the web via blogs, forums, reviews e.t.c
The opinions that I consider strong in many quarters is that of everything moving to the web. Software will in the future live in the browser and the desktop concept will become obsolete. The proponents of that opinion have some good reasons to think in that direction. For example many technologies have turned the browser into a powerful platform and bandwidth is becoming more available and cheaper by the day.
Another school of thought is that of people who think hand-held devices will eventually replace the traditional computer be it a PC or a mac. This group also have some valid points considering the fact that the phone I use today has processor that is faster than that of my desktop 8 years ago.
I do not completely agree with both views, what I think is going to happen is sort of convergence. The line between the different platforms keeps blurring each day. We are now reaching a point that one doesn't care much about which platform one uses but the tasks one is able to accomplish.
Software development will continue to involve the code-compile-run cycles. This is not going away anytime soon. Great software are still being developed with C, C++ e.t.c. And some tasks can not be performed efficiently without going back to those languages.
My problem with the "moving to the web" idea is that I am yet to see any great innovation in the web space. All I can find are multitudes of social networks (facebook, twitter e.t.c) and resource sharing portals like picassa, flickr, youtube e.t.c. Agreed that HTML5 has brought in some new things to the HTML standard but those are not new things to web. It covers some things like video playback that were previously achieved by plug-ins.
Google which is arguably the most successful company on the web is developing more and more desktop applications like Google desktop search and Google earth. This is a clear indication that google has realized that we are not going to have a web only or a desktop only future but a mixture of both and more.
The mobile platform is really a force to reckon with but it can never replace the traditional computer because one needs a normal computer to fully use whatever powerful mobile device one is using. For example you need a PC or mac to synchronize your apple iphone. Moreover, you do not expect programmers to use those devices to develop software even if they are targeting the same devices. Businesses are also not going to replace that computer on the secretary's desk with an iPhone or a Nokia N900 simply because they think those devices are powerful.
So if you are a software developer that develops only desktop software, I say go and learn PHP or ASP.NET now and if you are a web only developer I say go and learn C# or Java now. In the near future only those that know the desktop, the mobile and the web terrain are going to make any considerable impact.
If E-mail is yet to replace snail mail and E-books are yet to replace paper books I do not think the web or mobile platform will replace the desktop in the foreseeable future.