Sunday, August 28, 2011

Technology Deja Vu

I feel like I am in the middle of that popular sci-fi film - "Back to the Future" !

Every new technology that hits the headlines, seems to remind me of something I have seen before. It brings back memories of the past, it raises the same old questions, the concept does not feel truly "novel".

Do you feel so too? If you have been around in the IT industry for more than a couple of decades and have earned your programming chops on the trusty old mainframes, I bet you do get that feeling, right?

Enough of talking in the abstract. Let us look some examples...

Let us start with that prime example of new technology - the cloud. Wow, you can now have your software and services run anywhere out there in the wild, and access them at will! You need not know where they are running, you need not worry about resource constraints (kind of, since you can set it up to be elastic), you need not worry about downtime. Heavenly, isn't is? Yes, it is, but is the concept new? Were things very different in the "multiprocessor" days of the mainframe? We never used to bother where our processes and programs were running, and resources were not usually a constraint either. And downtime? Well, in my days as a Tandem (later Compaq NonStop, and then HP NonStop) programmer, I remember the demos at the Cupertino (California) labs, where the customers were shown true redundancy - you could bring down a CPU, pull out a memory or network card, and voila! the system would continue as if nothing had happened! Was the concept of having your software programs, processes, and services running on a "processor farm" with true redundancy built-in very different from the concept of your services running on a "server farm" with cross-region redundancy? The scale is different, of course, but I believe the template is the same.

Hadoop is making waves with its capability to split large workloads into smaller chunks and then ship them to separate machines which can then chew on these bites in parallel. That must be a new concept, right? Well, I think not. In the mainframe world, we used to have the concept of DB queries being broken down into smaller chunks during the "compilation" of the queries. These chunks would then be intelligently shipped-off to the "disk processes" that the RDBMS would be running close to each physical disk. The idea was that each work-unit of data processing would be done by a disk process that was closest to the physical disk that the data was residing on - thereby guaranteeing the best performance. Again, the scale and infrastructure today are different, but the concept is tried and tested.

And what about all the excitement about responsive and interactive web pages? Aren't they making the web pages heavier and heavier? Aren't they moving more and more processing to the client? Aren't the heavy Javascript frameworks starting to look more like client-server technology of the old days, with AJAX calls to servers and listeners and call-backs? I leave it to you to decide...

So, what is really happening here? In my opinion, the new capabilities of the hardware and infrastructure are allowing us to use the old concepts in new ways. The massive scaling possibilities of connected processors are feeding the cloud and technologies like Hadoop. The increasing capabilities of mobile devices are fuelling heavier clients. Thus, it is more like old wine in new (and much larger) bottles! I would really love to see some truly new wine, though.

Friday, June 10, 2011

Technology Turns Social

Social: Adjective, [attributive] relating to society or its organization, … suited to living in communities, living together in groups … with complex communication. Origin: … from Latin socialis 'allied'…[Oxford Dictionary].

As technologists, we should not forget that the consumers of technology are primarily humans – “social” animals.

Therefore, changes in social behavior often influence the direction of technology. And, when technology enables the natural tendencies and aspirations of society, a “tipping point” is quickly reached, propelling massive adoption. This happened with Facebook when it made “social networking” truly social with photo tagging, and is seemingly happening with Groupon, as proved by its sky-high valuation in a takeover bid.

Hence, to predict the technologies that are bubbling-up to the top now and will shape this decade, let us look at trends in society and social behavior, and see where that leads us…

People today are “on the move”, but need to maintain their complex communications. Therefore, “mobility technologies” are definitely going to be a growth area in the coming years.

Society has come to expect “infrastructure as a service”. Though recently popularized by cloud and virtualization vendors, such services are not new. Telecom services have been available for some time now as prepaid packages that can be “topped-up” as needed, and wireless broadband has replaced the modem and router at home. Virtualization and cloud computing will become equally prevalent.

Realizing the importance of social behavior, technology is trying to understand and predict it, like a dog chasing its tail! As a result analytics, business intelligence and behavior/sentiment analysis are thriving. These will be areas to watch out for in the years ahead.

“Social” traits are now evident even in new computing paradigms. “Elastic computing”, seamlessly distributing large workloads across a community of allied resources is the theme for technologies like MapReduce, Hadoop/Hive, Terracota/BigMemory, Azul Systems’ Zing JVM, and similar projects. This trend will keep gaining momentum in 2011. Growing volumes of “relationship” data in the “social networks” has given rise to “graph databases” and the related concept - “NoSQL”. These are still very early-stage, but will rapidly mature in the next couple of years.

Am I the only one thinking "social"? Of course not. The Gartner 2011 top10 strategic technology list includes – Cloud computing, Mobile Applications and Tablets, Social Communication/Collaboration, Video, Next-Generation Analytics, Social Analytics, Context-aware Computing, Storage-Class Memory, Ubiquitous Computing and Fabric-based Infrastructures. As you can clearly see, most of these technologies follow the themes of social usage patterns, mobility, infrastructure as a service and “computing-infrastructure communities”.

So, if you are a Technologist, better start thinking like a Sociologist!