Saturday, March 11, 2006

The next big thing(s)!

Someone famous once said that all problems in computing can be solved by an extra level of indirection. Very true, and something we are silently witnessing as SOA (Services Oriented Architecture) vision is being cooked by several small and big companies. Most of the people often say X is the next big thing in computing, and the argument falls apart or at least, falls short of expectations, most of the times sometime later, since the context for this X is not specified or is too wide. Here is my 2 paisa on some Xs. ‘with’ some contexts.

Let’s get back to the basics – why do we need Information Technology industry – umm... - automation, computation, analysis etc. and futuristic reasons why it maybe helpful – business process optimization. All good stuff; very helpful to say the least, maybe even vital for the several industries, for example, medical, communication, transport, commerce etc.

Let’s assume a very simple breakdown for this Information Technology industry (incorporate several perspectives – technological, monetary, customer usage etc.) - (normal) computing and enterprise computing.

For example, from a technological perspective – a) there is a difference in hardware characteristics (big iron vs. commodity hardware, multi-chip multi-core, innovative caching models, high speed interconnect bandwidth and FSB, virtualization at multiple levels, higher impact of the memory wall problem, not only price/performance but price/performance/watt, scale-out scale-up scale-within, Mean-time-between-failure, on-demand resource availability etc.), b) there is a difference in software characteristics, and a profound one (multi-threaded programming vs. programming. The former is orders of magnitude more difficult (productivity, formal correctness etc.) than latter. The good news is that 99.99% programmers today, don’t know or don’t care about it. The bad news is that this number is going to change very rapidly with commodity multi-core systems; more and more programmers would need to understand this, and it is difficult. I don’t understand it completely. So, here lies an opportunity for some very clear headed smart people to develop abstractions that simplify this programming model for us, the masses).

So, linking back to what I really wanted to say – I think the next big thing in the context of enterprise computing is SOA. Why? Simply because unlike current computing infrastructure that natively automates technological functions, it natively enables automation of business processes. Obviously simplicity, standardization, reuse and interoperability are other benefits.

The next big thing in the context of client-side (normal) computing is more difficult to assess – I see it as browser based rich client platforms – that allow you do run your usual apps, for example, office productivity things - word-processors, spreadsheets; email, calendars and group calendars, team spaces etc. all within the browser, without any loss in richness of user-interface or functionality, when compared to ‘conventional’ office productivity things; in fact, also opening up a new domain of collaboration and sharing innovation. You can simply use single-sign-on on any system anywhere on the globe (password authenticated or Sun-ray-card-like authentication) and access all your usual apps and data. Another X here is a simpler programming model.

The next big thing in the context of fundamental CPU arithmetic is the Decimal Floating Point Unit (DFPUs), something we thought was too expensive 50 years ago, but is now back in fashion, and something that will hit all CPU designers very quickly.

And, the next big thing in the context of fundamental software engineering abstractions is Aspects (taking care of horizontal abstractions, Object-Orientation is the best thing we have today, but it only caters vertical abstractions.)

Finally, the next big thing in the context of wider adoption of computing technology – consumability and simplicity. All the people in IT need to learn from television set makers or car manufacturers – and see how these people beautifully hide the underlying complexity and give either a remote or set with few buttons or simple operating model of gears, clutch, and the accelerator (oh! and the brakes!).

The above also implicitly implies the change of focus towards 'business analysts' and away from 'code monkeys' in next few years. Code monkeys of the past are likely to be hot business analysts of future, only if they are willing to reinvent themselves.

More on SOA in the next entry.

Wednesday, March 8, 2006

Urdu poetry?

I wonder why the poets and philosophers in the western world haven’t yet gone crazy about Urdu poetry. It’s simply awesome, but mostly undiscovered by many. Yes, language and loss of meaning and/or context in translation is an issue, but really, there must be some really good bi-lingual poets who could help us? Honestly, I don't understand much of it, still it feels something good. An interesting couplet humming in my mind at the moment – “Mat pooch ke kya haal hai mera tere peeche Tu dekh ke kya rang hai tera mere aage.” by Mirza Ghalib
[Goooogle].