Monday, January 3, 2011

At Crossroads, Part II - A New Beginning

I couldn't sleep well that night. I thought hard. About everything - current status, the support kit, the possible change in project, where it's leading me, where I want to go, the big picture, where will a new c++ project take me, what chances I have of working again on a project of the calibre of Calient which remains the best and my favourite-most till date, due to the kind of challenges it posed ... etc etc. It was a long night.

At the end, when I look back at it now, I thank god that this happened. It made me answer some hard questions that I used to dodge with my wishful thinking. I was so stubborn about c++, even though I had this dormant thought-process that c++ is not the bleeding edge of the industry any more. I had this inkling that c++ is more and more becoming niche. But I would tend to ignore it as c++ had commanded a huge part of my fascination since my pre-engineering days. I had tried very hard to get to work on c++ on linux since joining IT industry. And when those efforts culminated into getting projects like CP-redundancy implementation (Calient), it more or less fed into my ego that I am working on what I set out for, what I loved to the core.

This ego is good as long as it boosts your confidence in facing challenges successfully, and drives you to get better technically. But it gets murkier when it starts turning into a virtual inertia which blinds you from practically assessing your future direction. I was so enamoured by c++ that I virtually shunned myself from thinking about where it might lead me in near future. I did have some occasional eye-openers, like when I came to know about python. But slowly they would go into oblivion, thanks to my wishful thinking about getting another cool project on c++.

It had to be a jolt like this that would wake me up from the deep sleep. And boy-o-boy, did that wake me up! Suddenly I realised, I am far away from the cutting edge. It made me look around, and made me see that almost all of the c++ projects these days are maintenance project, and new development hardly happens in c++, if ever. All those design patterns were being implemented in new java projects; all those creative apps were happening on iPhones and androids; all those cool websites were being created using AJAX/python-ruby-php frameworks; all those emerging new OO languages, like Ruby, with support for functional language constructs like lambdas and closures (C++0x plans to have these) were aimed at web-development. Where was c++ in this picture? The C++0x standard which has been pending for so many years, is still not out. And now even if it comes out, it might turn out to be hopelessly late to the party.

So thinking on these lines for some time, and following my guts, I finally came to conclusion that it's about time that I let go; that it's about time to move over to web technologies and other happening areas rather than stubbornly sticking to one language which is fast becoming niche (work-wise of-course), especially for those who are not into game-development.

So there it stands as of now. After around 5yrs of c++, here I plan to rock my own boat, and move over to what I perceive as greener pastures. Let's see how it goes.

No comments: