on Jul 31st, 2008Open source sucks and why ??
I got your attention didn’t I ? Now read on.
The problem with open source software is its lack of quality. And how is this lack of quality downgraded even more ? its due to the lack of proper documentation and support. Its pitiable looking at the so called open source enthusiasts who advocate open source like they live and breathe it, but when it comes time to get the basics of software engineering in place, you see them stepping back from the limelight. The problem can be attributed to the fact that institutes teach programming but doesn’t teach quality standards. Its gives you a very good idea why there are probably 300 projects that do the exact same thing on sourceforge and its so because the people who actually want to use one software don’t get enough help, documentation on it.
Have you ever tried looking at code that you wrote a year ago ? I have code that I wrote sometime in 2003 and trust me , I cannot understand a line in it. Why ? you cannot remember ever function that you wrote in life. Is it so hard to understand? Im sure most of you guys have taken classes in software engineering, its impossible to have a good software system without support and documentation. I shall take the example of a project that I am planning release soon.
Thanks to about a dozen people who contributed to the code, there is a lot of redundant code and almost half of the code, is not being used. What do we do now ? do we release it in the shape that it is ? Im sure the download size will probably double. Also, a lot of segments of code are not documented. How will it look when people see their names flashing at the top of a code file next to the @Author with lines and lines of spaghetti code with no documentation or explanation of their intent.
Even with the valiant attempts by a professor, our testing strategy has largely been designed not to test, but to con people into thinking its a testing strategy. Is it that hard to test ? No , it isn’t ; its just uncool work. Our project also contains a multitude of technologies like jsp’s , java, javascript and there is absolutely no architecture diagram or a data / control flow diagram. Most of the JSP’s and Javascript is still undocumented let alone being tested.
The last bit is that usage. Its not as simple as gcc project -> ./a.out . There are a lot of things that need to be configured and specific data formats, size restrictions and tons of other configuration information that needs to go into the system. But there isn’t a single document or a written account of how to go about setting up this project and executing it. Im sure even Donald Knuth wont be able to properly configure and run our project (No offense to Knuth, just used him as a figurehead) . Who will do the job of documenting it so that people who will actually want to use the project, get the documentation that they require ?
Its strange, the same people that commend Apache projects for their wonderful documentation and support forums do not put in a similar effort for their projects. I am not even talking about the technically inept people, I am talking about people who can do technology well. If the future patriarch’s of technology do not follow the basics of getting a project right then how can the next generation of programmers survive with such unkempt software. If you cannot contribute to making open source better, then please stop advocating it. Its better naive people pay for software which gives them support and service.
In our effort to program the cool, we have forgotten the basics of engineering. Its a shame they call us engineers !!
Tags: Opensource, software engineering, documentation, testing
Thats why more and more programs are being written in 4th generation languages. The code itself offers some kind of documentation. Python for instance is frequently called “executable pseudo code”. The code itself offers fairly good documentation in the case of these newer languages.