Peter Norell
Posts: 5
Nickname: bithir
Registered: Dec, 2002
|
|
Re: All Source Code Should Be Open
|
Posted: Dec 5, 2002 5:23 AM
|
|
I do not agree that the accountability for code would increase quality of code. Most organisations already has this stipulated and controlled in the software process and many times, the organisation is the consumer of its own produced code. The narrow the view on only looking on code that is licensed to a consumer I do not agree with, as alot of code is actually developed in house, by professionals and with "decent" timelines. During my time as a developer I've been wading through code, but none of them has been packaged and sold to anyone outside the organisation without the source code following the packaged product. The quality is still not apar with what it should be, even though every developer, designer, code reviewer can check who did a certain piece of code. The responsibility model only works if people can relate to really good design and models.
In my opinion there is actually three vital steps in increasing the quality of code that has to be accomplished and I will try to explain my views, what I percive is the current state of obtaining these steps.
Step one, we need to make people learn from how other people solve their problems and how good programming structure actually looks like.
It would be a great step towards this by making more commercial softwares source code available as it would be beneficial to education. Normally, most work involving creativity/engineering/logic are able to build upon what other has accomplished before them. Architechts can see how and what other architects have created before, they can themself collect the information what is to be considered good design. It is also the fact for work that involves logic, a good mathematician gets a good feeling when a good proof is found and presented, and they also has a wast amount of material to draw conclusions from and for themself learn the valuable lessons of what composes a good proof. As Richard P. Gabriel & Ron Goldman writes in their essay "Mob Software: The Erotic Life of Code" ( http://www.dreamsongs.com/MobSoftware.html ):
Fast-lane capitalism has created a nightmare scenario in which it is literally impossible to teach and develop extraordinary software designers, architects, and builders. The effect of ownership imperatives has caused there to be no body of software as literature. It is as if all writers had their own private companies and only people in the Melville company could read ?Moby-Dick? and only those in Hemingway?s could read ?The Sun Also Rises.? Can you imagine developing a rich literature under these circumstances? Under such conditions, there could be neither a curriculum in literature nor a way of teaching writing. And we expect people to learn to program in this exact context?
And the simple answer is, we can't. If we are not able to learn from others mistakes and successes, we will repeat them. It has always been a part of the GNU manifesto ( http://www.fsf.org/gnu/manifesto.html ) that
Schools will be able to provide a much more educational environment by encouraging all students to study and improve the system code.
The complaint is usually the classical rebuttal of "How will we as programmers still make a living". We need to protect our turf to feed our family. Freeing the source does not, as the article explains correctly, in the instant we open it up, forfeit our work. The copyright has been with us all along. I can publish my code for others to read and admire or scorn, but it will still be mine.
Step two we need to make coders feel pride in their work, enough pride to leave their arrogance behind and see wisdom in other peoples solutions. I take great pride in my designs and coding, but I do not consider my code to be the ultimate answer, on the contrary, I always seek rebuttals from my peers to find what I could change to the better.
This brings us to step three, which is to have the ability to discuss great design or code with the same frames of reference. Without anyone argumenting that my design or code is flawed, how would I otherwise learn how to make it better. This is not fully here, but discussion forums (like http://www.artima.com/ , http://www.javasoft.com/ ) makes us it available altough they are not the ultimate solutions as the amount of irrelevant information is mixed with the rare tidbits of vital information. The response would to limit, but how to limit without creating an elitist club ( http://www.kernel.org/ ) is still up for debate.
All this rambling was brought to you by Peter Norell
|
|