I was reading this article and its prequel that was posted on /. As the title of the story suggested, the author makes a point that all software source should be open. That is, programs should not be sold without bundling the source that was used to produce it. The point he is trying to make is that, just as buildings and bridges do not hide what they bring along with them, so should software not hide what it was built from. He does advocate crippled source to make sure that people dont recompile and all that, but that idea still being that only by making source open can one actually make sure that people dont write sloppy code.
I like that idea. As in the point that source should be open to make sure that programmers do their work properly, and dont hide behind the compiler for producing bad code. But the idea as he has presented is not, according to me, viable. The reasons are simple.
- The analogy between buildings and software is not correct and does not hold. Firstly since seeing a building or a bridge is not the same as seeing a source. The analogy is more like blueprint and building. Secondly, what one can do with source, one cannot do with a blueprint - like reusing a part of it, copying it ad-infinitum and so on.
- Even if we do make it open, who is going to check it? How qualified is he going to be to have to see source that does not compile and tell you if it is good code or bad? When was the last time you saw source code and judged it?
But coming to back to what I was saying. I do find myself agreeing with that fact that source should be made available. Only then can we get some sort of responsibility as far as building source is concerned. And this is a major flaw in the entire process of software building which i believe is fundamentally creating problems with the software (read IT) world. So this is what I suggest. What should rather be done is that we should have some sort of third party certification. Just like html is checked for adherence to standards, code should also be checked for adherence to standards. And companies should be able to proclaim that their software is "Source Perfect". I dont really know if we have such an idea lying around, but this sure is worth trying.
Of course, this has its drawbacks. The standards that need to be checked adherence to. That is the need of the hour. We need to define what good software is. Everyone knows the properties of good software. We should be able to standardise that and make it platform, implementation independant. Then we can be on the first step towards building a world having software that is "Source Perfect".
We had a recent meeting, for some work. There we were meeting these alumni, who were 25 years down the line. I was making a presentation to them, and said "And that is the reason I think I can safely say that we might be having one of the the best websites in the world". To which the answer was "That is precisely the problem with you new generation. Have faith. Say 'Ours _is_ the best website in the world'"
Amen to that