Friday, September 22, 2006

How should developers deal with the upcoming technologies?

Every day, we hear or read about new technologies, new models of the cell phones or PDAs, new tools, new versions of the existing tools and so on. This list is just going to get increase and with lot of information available at the tip of the button, it definitely hits us at some point of time. People say that ignorance is bliss. But fact is that one cannot ignore these things in this world. And if you do ignore then you are thrown out of the race. There can be lot of debates on this. In this blog, I would like to focus only on the developers and upcoming technology challenges they are facing.

For Microsoft Developers, the road map for last few years was something like this:
VB (Visual Studio)>OLE>COM/DCOM>COM+>ASP(Visual InterDev)>.BizTalk >NET Beta (C#,VB.NET etc)>ASP.NET>.NET 1.0(Visual Studio.NET 2003)> .NET 1.1>BizTalk Server 2002

And then we have .NET 2.0 and VS 2005 or VSTS. It also includes lot of changes to the framework classes, ASP.NET,C#, VB.NET and other languages. Very soon, MS will come out with .NET 3.0, Vista, WInFx etc.

If some one is working on .NET 1.1 for last 3-4 years, when he/she suddenly sees new version of .NET (2.0), first thing they see is the learning curve. Having been comfortable with the framework version 1.0, it is sometimes frustrating for them to use new version. There can be some syntax changes, new features, tuning of some classes etc. in the new version. But some developers will be reluctant to know it since they have become GURUs in old technology. Yes, based on the requirements project managers or project leaders can force their team members to undergo training and use it for the project. But still some people will think like they are using old version and implement the logic accordingly. This is really a dangerous sign. This can affect the performance of your application. This can lead to disasters literally. The key point here is not use new technology just for the sake of using it or just because it is new and your client wants it. Try to understand the potential, features and usage scenarios for the latest technology. If you are aware of its previous version, then try to compare the feature list and usages between the old version and new version. For example: .NET 2.0 recommends to use generic collection classes and not the collections like arraylist. One should really understand the reasoning behind this. I can use hash table and dictionary class as well. But using dictionary class, is going to give me some improvement in the performance. That is why it is newly added in the list of generic collection classes. Same thing is applicable to generics as well.

There are tones of changes between latest version of ASP.NET and old version i.e. ASP.NET 1.0/1.1. One has to understand the differences and importance of using new features. AJAX/ ASP.NET Atlas give us lot of power to do lot many things asynchronously and eventually making the end user happy and giving him rich user experience. To summarize this, every developers has to ask few questions to him/her as:
Okay, so you have new version of .NET. Tomorrow, you will have one more enhanced and new version of it. So, what do I do?:
Yes, true but if I don’t learn and understand the new versions/functionalities then I will be left much behind the others. There are lot of new developers who are starting their careers with the new versions of tools and technologies. They are going to be ahead all the time if I do not participate in this race. Sooner or later, I will have to learn it. Sooner is better.
Why should I use it just for the sake of using it?:
Yes, you should not use it just for the sake of using it. You must know the importance and its impact.
I am techie person and I want to keep on writing/designing/architecting applications:
Right, but if you are not in sync with the new things. Then, you might be missing something and it might cause flaws in the applications/designs.

This list can also go on increasing. Remember one thing, new technologies are here to help us make our lives better. More we understand it, lesser complexities we will have while writing applications.

Cheers,
Amol.

1 comment:

Ameet Kadam said...

A must read for the newer as well as older devlopers!!!