by January 6, 2012 0 comments

I still remember the first code I actually typed on a computer and executed. It was many years ago on a BBC Micro in BASIC. It went something like this:


20 GOTO 10

I was 7 or 8 years old and standing in line in school with my classmates to get my chance to type out my “application” on the single computer in the room. I asked the kid behind me in line to execute it. When the screen filled up with the line and the kid panicked and started crying, I knew then that this is the line I would want to get into. Let’s take a walk down memory lane to see what these changes were.

[image_library_tag 865/61865, border=”0″ align=”right” hspace=”4″ vspace=”4″ ,default]
The Mainframe Era

I was lucky to have skipped this era completely — imagine having to write code by punching holes in small cardboard stacks and then “feeding” them to a monster machine. I was also lucky enough to have jumped the COBOL stage (literally by the skin of my teeth) although I did kind of take a look at the programming model then.

The Pre-PC Era

This was the era of the Commodore-64, ZX Sinclair and Spectrum. If you were a kid lucky enough to own one of these or had a friend who did (like me) one could spend hours playing games and sometimes even writing some code in the early versions of BASIC that was available on it.

The PC Era

This is when things started to get exciting. MSDOS become the de-facto operating system and gave us many more options in writing code. I remember having the compiler and IDE for GWBASIC, Turbo Pascal and Turbo C all in a single 5¼” floppy with enough space left over for the code that I could write. Hard disks were not yet available and slightly longer, complex code would need us to swap floppies mid development (oh, the horror!). We learnt how to create TSRs (Terminate and Stay Resident programs) that we could call up by pressing a combination of keys even when running a different program (early multitasking, actually).

[image_library_tag 866/61866, alt=”” hspace=”4″ vspace=”4″ border=”0″ align=”right” ,default]

The Desktop Era—version 1.0

The advent of Windows on the desktop introduced us to the concept of an API. The Windows 3.1 SDK was humungous and Charles Petzold’s Programming Windows became the Bible we would swear by. The Windows SDK in C, MFC in MS C++, OWL in Borland C++ and Pascal in Borland Delphi become the new languages of communication in the development world.

The Internet Era—version 1.0

This era began very quietly — at least in India. I was extremely lucky to get on to the Internet years before it came to the general public through VSNL. As I was staying at a university which had access to an early educational network called ERNET, this got connected to the early Internet before public availability. The advent of HTML allowed me to have a website on a US server with my profile on it before people here had even heard of the concept.

It was at this same time that a new language called Java came up. It could do things that simple HTML couldn’t, using a concept of Applets that could show some simple animations and take some inputs from the user. While I did learn Java during the time, I never did like it too much.

The Internet Era—version 2.0

A huge evolution to the Internet era came with the introduction of the CGI concept — ability to “execute” code on a server rather than the server simply serving static content like HTML, images or Java applets. While early CGI was written mostly in C and PERL (yet another language that I learnt and started loving), it was the advent of Active Server Pages (ASP) that allowed server side development to actually take off in a major way. The combination of ASP on the server, HTML for content and JavaScript for client side interactions made the 2nd internet era really become huge. Many other technologies such as JSP & PHP grew from this initial concept as well.

The Desktop Era—version 2.0

When Linux started becoming a popular concept for a while on the desktop side, it brought its own set of disparate desktop programming platforms — such as Qt and GTK. Microsoft, on the other hand, was unifying their desktop platforms under a new API that would directly compete with Java, called .NET.

.NET brought in a unified juggernaut from the Microsoft stables. It allowed developers to use any language they were comfortable in to develop apps for the Desktop, Web or Mobile as long as the language had a .NET compiler. By using some of the learning they had when they created a Java VM for Windows, Microsoft was also able to make .NET run much faster than the equivalent Java applications.

The Internet Era—version 3.0

This has become of the era of the large sites that encourage developing to their “platform”. Rather than having a site that only they run, sites such as Twitter, Facebook and others publish an API that anyone can connect to and create an application for. This allows users to access the site not from the Web directly but through the intermediate application — which could be on any platform.

The Mobile/Tablet Era

With the introduction of the iPhone and then Android and now Windows Phone, the market for mobile applications has soared. Also tablets such as the iPad and other Android tablets have started pushing the envelope in terms of both creativity as well as functionality of what these apps can do. The development potential on these continue to increase on a daily basis.

The Many Screens & Cloud Era

This is what the world is heading towards in terms of the development potential. While there are concepts of this available on other platforms, Windows currently has the best and most tightly integrated set of the Many-Screens & Cloud concept. Given that the upcoming Windows 8 will run on everything from tiny netbooks, laptops, ultrabooks, desktops, servers, tablets, and other form factors and will integrate with Windows Phone, Surface & Xbox through the cloud, just makes it the most comprehensive one stop-platform that one can think of.

No Comments so far

Jump into a conversation

No Comments Yet!

You can be the one to start a conversation.