Thursday, December 16, 2004

Performance is a goal, correctness is a constraint

While writing my last post about Solaris, I never imagined that just two days later I would be programming kernel modules for solaris. I have conciously kept away from Solaris over the last few years, as I did not wish to have divide time from Linux, and get confused over the similarities as a side effect.

They say 'The more things change, the more they remain the same' . On similar lines I think 'The more things appear the same, the more different they are' . Take C & C++ and Java as examples. I started my programming career with Java, then learnt C++ and finally learnt C ( Of course I am learning assembly now, isn't that natural ?). One would think that when you know C++ already, C would be easy . On the contrary, they are so similar that I had a tough time remembering the differences. Declaring variables as late as possible is one C++ best practices that would always result in my writing C programs that won't compile.

The point of all this is, all *nixes are so much alike (superficially of course), that if you want to go a bit deeper under the hood, you start having a hard time. That philosophy, coupled with the conviction that only Free Software is the technology of future and is worth working on (more ramblings on this later) , kept me away from Solaris. As I program on Solaris now, its heartening and more than reassuring to know that come Feb, and the Sun will shine on the Open Source world. There won't be a GPL style license in all probability, but forcing a Unix company to open even with a BSD style license is no small success.

[If you are still wondering how all this relates to the title, its past 11 now, and I have to get up early tomorrow, so that would come later.]