Back few years after the turn of the century, I had the privilege of hearing Ted Waitt, returning CEO, President, and Founder of Gateway Computers, speak about the computer industry and his return to CEO of his company. He spoke of the need for change and the possible ramifications if the company didn't change. He told the audience about arriving into a meeting with his executives being carried in on a coffin. I don't know if this is true or not; however, it was used to illustrate the importance of such a change in that business then. Shortly there after, Gateway and other computer OEMs began branching out from computers with digital electronics such as MP3 players, DVD players, and plasma and LCD TVs.
Looking back, I'd have to say Ted was right on the need for change. If any person or company continues to offer the same items over a period of time without changing, then they may end up in that coffin (figuratively speaking). Change is constant in this industry as well as the world around us. I remember the rise of the Internet, XML, and even how Web Services was the ultimate buzz word. I remember interviewing for a developer's job a handful of years back where they talked to me about web services. They seemed to know that it was the "next big thing" but after a few questions of my own; I knew they had absolutely no idea what it was all about. At the time, I'd be lying if I told you that I know what promises it held.
Now-a-days, we can't go anywhere from, again, the "next big thing"; Web 2.0. Mashups and tags and personalization and social networking, and AJAX, and everything else. Roll backup the clock 10 years and I could say that while college programming taught someone the basics, there was still a lot that it didn't teach. You may have learned VB 5 or Java 1.1; however, I never heard of a college talking about DCOM, or JDBC, or anything of the likes. Looking at the playing field now, I'm seeing a lot of the same from future developers. They may know the basics and the version of the language may have changed, but the overall scope hasn't changed.
Developers have to constantly learn. This isn't a bad thing since in today's Internet age, finding answers and information is extremely useful and semi-easy. Ask a VB developer 10yrs ago what they used as a resource and many times it was MSDN. Ask any developer now and most will probably say Google as well as a handful of other sites. Information is out our fingertips and all we have to do is focus on what we want.
How can we use this large amount of information that we have though? It's great for a reference and some is decent to learn from our experiences; however, staying one, let alone two, steps ahead of the current technology isn't easy. Everyone's looking for the next big thing. Web 2.0 has already migrated from the Internet into the Enterprise and things are getting better. We've heard about SAAS and SOA for a few years and yet just now some people are coming around to what this means.
Today, I started to read an article over at ZDNet that talked about the Semantic Web and how some people are even beginning to coin it Web 3.0 (why not Web 3000!.....exclamation point is important there too :) ). Truth be told, I didn't read more than a few lines into the article because it was really just about 4-6 sentences that talked about a rather large excerpt from a web cast that it provided as a free download. Naturally, I listened to that instead of reading only part of it.
The web cast brought an interesting topic to light which I foresee as at least 1 step if not 2 steps ahead of where we are today. The Semantic Web is very much like the ultimate dream of SOA and SAAS. Being about to provide information facets that can be consumed by just about any endpoint. The ability to consume and offer such information and ability with in any type of program, webpage, or device is a nice dream. I have no doubt that it'll be a reality eventually, but after diving into it, there's a lot to chew there. The whole design philosophy is different then a lot which is shown in today's main markets. Throw into the mix that not everyone has fully got their heads around SOA let alone enough able developers to truly push it forward once they do and it seems like a far dream. Nonetheless, I think it's possible.
Take a good, long look around the web. There was a time I hated to surf because I couldn't find anything that interested me. Looking around now, a person can be barraged with input on possibilities and you don't have to stretch your imagination to see what the next thing for those entities are. Take a look at SalesForce.com, Drupal.org, or even attempt to take in the various assets, services, and developments that Google is doing. Look at some of those items and try to come up with what's next for each of them. Some basic OOP design principals would point towards abstraction. How will one be ready to consume pieces of what today's pioneers are creating? Will the Web be ready? What can each of us do?
I've recently taken up catching up on some of the recently released Microsoft technologies (Namely the .Net 3.0 framework of Workflow, Presentation, and Communication Foundations). Looking into these technologies and assessing what other things are going on inside of MS's roadmaps as well as the industry as well, it's pretty obvious some of the transitions taking place. It's only a matter of time before we'll need to learn it before we end of in the proverbial coffin.