jump to navigation

Dying Democracy? April 10, 2008

Posted by xk0der in : In My Opinion, Random Musings , add a comment

I do not know what to make out of the ruling by Supreme Court (SC) of India with respect to the quota for Other Backward Classes (OBCs) in “IITs, IIMs and other Central educational institutions” the ruling adds that the SC “excluded the creamy layer from the benefit”. Here is the full coverage of the verdict at rediff.com:

http://www.rediff.com/news/2008/apr/10quota.htm

Who decides who belongs to the creamy layer of OBCs? How do they decide who belongs to the creamy layer? and why the hell do we need reservations based on castes/creed/religion/sects and the like?

Quoting from the article: “All judges favoured periodic revision on the implementation of the 27 percent quota.”, remember when the original constitution was drafted and the reservations were to last just for 10 years? What year is it now? 2008!

It is but clear, why after every five years the reservations policy is extended to yet another five year term. And every now and then new categories are added to the beneficiary list.

When will this vote politics end? Never!

What to do about it? Think beyond caste, think beyond they-me, think beyond their state-my region, Think beyond India, think Global, think Humanity!

Like this post?

Good Design or Smart Engineering? May 30, 2007

Posted by xk0der in : In My Opinion, Programming, Random Musings , add a comment

This is one question that haunts (new) software engineers day after day.

We learned from the days of BASIC to Java and .NET that goto is an incarnation of devil itself, but we find goto in code written by the so called ‘elite’ programmers. What does this mean? Was all that computer science we learned a crap, of no use?

Well the answer is a surprising “yes”! Well a complete yes will be a bit too overboard ;) , but nevertheless, it is true to a large extent. From the little experience I’ve had as an software engineer and from what I’ve learned from the experience of the so called ‘elite’ programmers, Good design may not always be smart engineering.

What does this mean? Simply put, when writing code that will be used outside of the lab, in the real world, you should use the best possible solution. The best possible here refers to the solution which is faster, uses least number of resources and possibly adheres to other criteria that make your final code perform slick and cool stuff efficiently.

The above does not imply that you start writing obfuscated code! No, not at all. Read the above para again, the essence of engineering is producing efficient solutions not which are hard for other to understand, though this may result due to the efficient solution derived, but that is not the goal here. Science, or more specifically (in our case) computer science proposes ideal designs and assumes ideal conditions for those designs. In reality there is no ideal computer, no ideal processor and no ideal language and rarely do you get ideal conditions :)

So for the real world, when designing a solution, we need to take many factors into consideration. So a smart engineer will not be swayed away into the idealistic world trying to deliver an ideal solution. In the real world there are no thumb rules that one should (or would) follow blindly! These so called “thumb rules” are suggestion which may or may not apply to your solution.

Time is one of the major factors affecting the design of a solution. For companies to succeeded in todays cut-throat competition, it is not just the delivery of product that is important but it is the timely delivery that takes precedence. You would not like to fall behind your competitors, would you? So a solution that can be implemented in least possible time is at times the best, no matter how many rules of good programming design it may be breaking.

Engineers are not there to prove any scientific law or theorem, they are there to get things done, the most effective way!

Like this post?

C# and .NET will die! June 8, 2006

Posted by xk0der in : In My Opinion, Random Musings , 4comments

Not yet, but slowly!

They may rise to a certain level before they die, but they will!

Clarification
Before I continue let me clarify that this post is not about whether C# or .NET is a good technology or not; .NET might be very good concept coming out of Microsoft’s closet, but again popularity and sustainability of a language is not governed by a language being the best in terms of syntax or it’s robust compiler or the object code it generates and the like.

Desktop
For the desktop we already have a plethora of languages available, so C# might eat into that share but wouldn’t be able to dominate that domain. VB6 is far better in terms of development time and ease of code writing that the new VB.NET and C# for creation of desktop applications. And now that Microsoft has announced that their new OS, Vista, will have support for legacy VB6 and COM objects, there is no point for these developers to switch to something entirely different from what they are used to.

Let’s face it, still the majority of desktop apps written in .NET use the interop mechanism to interface with COM objects. And that’s not going to change any soon. This means extra burden for the programmer, interop is more of a workaround than a feature. Most of my peers have this to say about interop wrappers “When I can write do_this( ); to do a thing, why write do_this( ); do_that( ); do_this_too( ); do_that_too( ); now_using_something_else_do_what_I_want( );” Not a pretty thing to look at too!

Web
After the prospects of desktop apps being bleak for C# and .NET, the other arena where C# might try to fight a losing battle is the web! The reason it will be a losing battle is that there are already many scripting languages available for server side scripting and development. The other fact that Unixes and Linux Boxes are now becoming the first choice for web servers makes it even more difficult for .NET to survive. At least I don’t see, that, in foreseeable future windows will release a .NET framework for *nix boxes. There have been some attempts by some people and groups to create a .NET framework for Linux, but they have all not been a hit to the extent required.

PHP, Python and even Perl are the choice of programmers for server-side development. C# does not provide any uniqueness that the programmers will love to adopt, at least not on the surface level.

The final words
All said, programmers do not want to learn a new language just for the sake of the language being new. The new language needs to have that something “special” in to attract the masses. C# and .NET family of languages lack this very basic essence. They are essentially camouflaged Java!

Like this post?

Ruby – *The* programming language June 4, 2006

Posted by xk0der in : In My Opinion, Random Musings , add a comment

I Happen to stumble upon Ruby lately, and this is one heck of a cool language!

You may say! Oh! no… I don’t need another language now! Probably most of us(the coder specie) have spent years on our favourite language(or not so favourite language?). And would certainly not like to plunge into yet another language. We’ve already got a bunch of them in our heads already!

But take my word! I too had the same apprehension, but after just spending ten minutes futzing with the Ruby interpreter … I had the same fun when I started learning QBasic during early 1990s. (Yeah!, you may try and guess my age from this fact!)

This language is simple, yet powerful. And as the creator intended it to be the language with “least-surprise”, it really has features that come intuitively to the programmer specie. I would surely recommend to all my programmer friends to give this cool new toy(or weapon!) a try!

Here are some links to get you started

Ruby Tutorial
http://www.math.umd.edu/~dcarrera/ruby/0.3/chp_01/first_steps.html

Download Ruby (Homepage)
http://www.ruby-lang.org/en/ (English version)

Ruby on rails
http://www.rubyonrails.org/ (a web development framework for ruby!)

Interview with the creator of Ruby (Yukihiro Matsumoto ~aka~ Matz)
http://www.artima.com/intv/ruby.html

Ruby on wikipedia
http://en.wikipedia.org/wiki/Ruby_programming_language

I Hope these links will get you started and most importantly interested in this serious yet fun (to code) language.

Obviously, I’m not getting converted (from *my* language to this new one) but I’m surely enjoying every bit of code I write in Ruby!

Regards
– xk0der

PS: I would love to receive comments about new members who join the force!

Like this post?