Editorial: The Challenges of Open Source Software

Linux will become ubiquitous in the year 3000. Okay, that was a horrible joke. Linux is just a kernel, the engine that runs an operating system. By itself, it is essentially useless. Kernels shouldn’t be discussed or noticed by normal users. And as such when providing these users with reviews, previews and “professional” opinions, computer consultants, computer reviewers and computer journalists should not spew headlines like “Linux is not ready for prime time”, “Linux on the desktop by XXX”, “Linux to takeover Windows”, “Linux is not ready for desktop” and so on.

Editorial Notice: All opinions are those of the author and not necessarily those of osnews.com

Linux, the Unix-like kernel, is as flexible, versatile and powerful as any other kernel on earth, proprietary or otherwise. The kernel is not only ready for prime time, it is prime time. It is not only used on desktops, it is used on wrist watches, cellular phones, mainframes, servers and other embedded appliances to mention a few. Perhaps what these computer consultants, reviewers and computer journalists mean to say is, “Are the software applications that run on Linux ready for prime time?”.

The response to the last question will vary from individual to individual. Given the already existing sophistication of operating systems, like Windows XP and OS X, operating systems running Linux are ready for the average normal users. “Really? Then why isn’t everybody switching over to operating systems running Linux if it is ready for the average normal user”, you ask. Well, I think the answer is simple.

Operating systems running on Linux do not provide any strong “user” incentives or reasons for people currently running OS X or Windows XP to switch, among other fears which is the subject of this essay. Computers in general are hard to use. It takes years of training and usage to become relatively proficient in using software applications. Many of us were trained to use Microsoft operating systems and applications right from primary or secondary school. We have learned to accept their shortcomings, and we have mastered ways to be most productive on them. Even if it means dealing with a multitude of inconveniences.

Some adventurous users have ventured into Apple’s operating systems. Their operating system has a reputation for being attractive, easy to use and coming with applications and services that make computing a joy for the average user. For many normal users, this is the holy grail of computing as it were today. It is the favorite among multimedia professionals and experts. But all of this come at a “price”. And a heavy price for that matter. Being expensive and scarce doesn’t help Apple’s operating system pervasiveness. And since the Apple management is devoted to quality above all else, we have come accept that the Apple operating system will continue to be targeted at niche few.

Linux is one of the most popular Open Source Software projects. Its popularity is heightened by the fact that it is philosophically free, and it runs a on a multitude of hardware platforms and many software applications have been designed to run on it. Most of the software applications that run on it are provided for free, philosophically, under several free licenses. But, though Linux is widely used on various hardware and for several task-intensive purposes, it has not really garnered much popularity in the desktop market or average home user market. And, unfortunately, it probably never will.

Let’s forget about Linux for now. Few users are concerned about Linux or cares about it per se. Linux, the Unix-like kernel, is doing just fine where it is today and it is advancing at an impressive pace. The home user doesn’t want to know what kernel he or she is running and if the code in the kernel is cleanly written or not. The home user doesn’t want to concern himself/herself with hacking drivers to make the Nvidia graphic card work. The home user just wants to turn on the computer and start using it without reading manual pages and online documentation.

Software applications running of Linux will probably never accrue a mass home user share, not because they are inferior, but because users will move to an unknown territory if, and only if, the new territory provides them with better, more convenient and easier ways of accomplishing their tasks. Software applications aren’t getting easier to use. They are getting more complex, increasingly dumb, and excessively patched with redundant features that many ordinary users will never use. Add to that horrible user interfaces designed from God knows where.

In the open source sphere, things don’t get any better for the ordinary user. Projects are hardly documented, and even when they are the quality is embarrassing or the documentation is written in an esoteric ramblings that only a Ph.d in Software Engineering and Computer Science, with a Master in Electrical Engineering and Computer forensics can understand.(Man pages anyone?)

Joeiamdumb, a young intelligent person with a genuine phobia for computers, panics when he reads the synopsis of the second line of a man page, and promptly orders the services of the help desk to format his hard disk and replace whatever is on it, operating system running Linux, with a program he is familiar with, Microsoft or Apple operating system usually.

Users are not resistant to change or use something new. But if using their new environment is more of an inconvenience than what they are used to, I really don’t blame them for abandoning the alternative. If open source software developers and contributors are even remotely going to steal 50% of the market, then they have 3 fundamental challenges ahead of them. Let my rant begin.

Design software for the lowest common denominator

If you want your average home user to use your software, it must be designed with simplicity, ease of use and the user in mind. When your average non-technically oriented user says, “Hey, that’s so easy. I could never do that on Windows or Mac without 27 clicks. And they said “Linux” was hard. What’s so hard about it?” Congratulations, you have fundamentally succeeded. You have spurred an interest. You have impressed a non-technical user. He’ll probably send you a check in the mail for your efforts. He will join your forum and mailing list. He will advertise you software, like a zealot, to his friends and family. Others will get to use software, they will find it amazing, they will do the same. You wouldn’t need to spend millions of dollars on marketing and promos. The word will spread.

Given the state of open source software at present, this is unlikely to happen. Instead, developers follow horrible design approaches used by proprietary software projects. The average user takes a look at software applications running on Linux and doesn’t find it any different or easier from what they already used. Add to that the fact that their proprietary 15-button mouse will not work, and their surround sound card isn’t yet supported. Their wireless network card module just won’t load. Then you tell them manually edit some configuration in /etc/X11/XF86config just to get their monitor resolution right. And then you wonder why your average user says “Linux” sucks.

If I had to go through all the above, forget about it. I’ll stick to windows’ insecurities and limitless viruses. And even if I got all the above to work, there still needs to be a reason to keep me glued to this new environment. How about the open software community begin to develop intelligent algorithms for our application software rather than copy the dumb, stupid approaches used by other operating systems. Let me illustrate with a hypothetical example.

Sending an email with a little intelligence from the computer


Averageuser: Errr…I want to write an email.
Computer: Who do you want to write to?
Average user: Jack
Computer: Scans address book (In less than a nano second)
Computer: “Provides user with all names and nick names contain Jack”
Averageuser: Oh, Jack Wane.
Computer: Seamlessly launches email program
To: [email protected]
Subject:
Hello Jack,

—————-
Sincerely,
Averageuser.

Computer: Proceed to enter subject and body of your email.
Averageuser: Types away happily.
Computer: Corrects spelling mistakes, suggest alternative sentence structure, etc. provides suggestions.
Averageuser: Makes necessary adjustments
Computer: Secures, via encryption, and other means and sends automagically.
Computer : Done, Have a nice day.
Averageuser: Proceeds to do something else.



Now if I can do all the above either through voice activation or by simply clicking an icon, which then launches a wizard that takes me through all the process, I’ll be impressed. Even someone who has never sent an email before can do so easily with little to no prior email using experience. The above illustration can be translated to so many other applications.

When users can use computers with no need to read a man page, or info pages, or documentation found at www.thisisosmuchstress.org, they wouldn’t care whether they are working on Windows, Mac or “Linux”. All they care and know is that they sent a secure email, and they did so effortlessly, painlessly, and easily. The user probably doesn’t even know the name of email program he used, or the language it is or was written in.

If open source software has to be ubiquitous, you need to provide applications that are easier to use, intelligent and make Mac and Windows computers look like the stone ages of computing. And believe me, only open source software has the resources, time and the power to make this dream come true.

I’d like to contribute but to this project but it doesn’t look professional. No Documentation

Developers please document your projects. And please write them in a simple language my 5 year old cousin can read and understand. If you want people to participate in your project, it has to be thoroughly documented and easy to decipher. I personally do not participate in and support projects that are designed for elitist. And I’m sure many people don’t.

Coding is an art. Your fans want to know your thought process, your challenges, how you solved problems, how to use your code, how to use your program, how they can participate, how you came about the project, what plans you have for the project, how you designed the project, the mistakes you made etc. All these an perhaps more need to be documented if you want individuals, other developers, business organizations, sponsors, or nations to take an interest or help with your project.

It’s not just about hacking codes that only makes sense to you. It’s about being considerate to your users, your potential developers, your sponsors, your supporters, generation of scholars and so on. If Einstein didn’t document his works, think about the valuable knowledge we would have lost today. Spend as much time coding as you would documenting, or get someone who is interesting in doing it for you.
Of course, most elitist developers will argue that they don’t have time for those who don’t understand their code and they are doing it out of their freewill and for fun. My response is, “well if the code was only intended for you to understand, then don’t publish it to the public. Make it proprietary and sell it to some dumb person or something. If you intend to make your code public, then you should be responsible to clearly document working innards of your project, for criticism, assistance or correction.” To cut the long story short, adequate documentation can and will attract a horde of supports, followers and users. And it’s sometimes even more important than coding.

The state of open source documentation is pathetic. You only need to take a look at some man pages to understand what I’m talking about. No, they couldn’t have been written for the average user. At least that’s not that bad. I know lots of projects that aren’t even documented. No, manuals, not developers resources, no comments in code, nothing. Just a broken program and it’s free source code, that doesn’t even make sense to me if I wanted to fix it. Given the fact that the average users tech support will be some form of documentations in the open source software realm, how do you expect him/her do more advancing tasks without a well documented manual or FAQ or paper?

The “Who cares, its free” Attitude

Don’t release half-baked attempts at hacking to the public. If your project isn’t complete fundamentally, if it still contains bugs you don’t know how to solve yet, if it is not properly documented, if you have no intentions to complete your project or support in the near future, just be responsible and don’t release it to the public until you are sure of what you are doing. I know several people who just got tired of packages breaking their system, and went back to safer Mac or Windows.

Even if it takes 5years to get your code and algorithm right, and your project well documented, then we can wait. Nobody is chasing you. You are not under any deadlines from publishers, board of directors or whatever. You are free to do as you wish, so do as you wish and do it right. Most of us tend to think that because open source projects are open and free, it gives us and excuse to submit bug ridden, poorly hacked, irresponsible code for public consumption. That’s probably the meanest thing any developer can do. If your code isn’t reasonably stable or is not properly documented, just don’t publish it to the public it is a considerate responsibility. I know a lot of developers who guilty of this. In the name of popularity, fame and exposure they submit code that can be potentially harmful and say, “Hey, I’m not getting paid to do it. The users can deal with it or not use it” Well, it would have been better it you didn’t submit it to them to use in the first place.

When the open source software community has scaled all the above mentioned challenges, then perhaps by the year 2030 we will be purchasing Apple softwares for $10 and a copy of Microsoft Operating System will be going for around $5. But that will never happen if the open source software developers and community continue in the fashion they are at present. Unfortunately, I don’t share the optimism many open source software/Linux enthusiast share about bringing Linux to the Desktop in the {1-5}years, even though I am an enthusiast myself. At least not until it is better, it is easier, it is more valuable than Mac or Windows. And not until there is popular semblance of management, control, documentation, creativity and testing in most/all open source software projects. Open source software should solve problems and not copy the failed solutions of others. (I”ll probably get flamed for that.)

I’d love to see an adoption of a variety of operating systems by users all over the world. But most importantly, I’d love to see computers and software application becoming intelligent and easier to use for just about anybody. And something inside me keeps telling me only open source software can make this happen. Our fellow proprietary cousins are more concerned about locking their customers to their products, patenting innovations for eternity and keeping the register ringing. Personally, I still thin we are yet to rip the benefits of open source software, and scaling the challenges I’ve mentioned is a good starting point.

About author:
Mystilleef is a computer enthusiast who believes computers are hard to use and software is diminishing in quality. He will be graduating from university this year. His field of specialization is Accounting and Finance with a minor in Computer Science and Economics. Among other things, Mystilleef enjoys arguing, reading, playing video games and outdoor sports.

73 Comments

  1. 2003-09-29 12:43 am
  2. 2003-09-29 12:46 am
  3. 2003-09-29 12:53 am
  4. 2003-09-29 1:11 am
  5. 2003-09-29 1:12 am
  6. 2003-09-29 1:20 am
  7. 2003-09-29 1:22 am
  8. 2003-09-29 1:49 am
  9. 2003-09-29 1:56 am
  10. 2003-09-29 1:57 am
  11. 2003-09-29 1:58 am
  12. 2003-09-29 2:18 am
  13. 2003-09-29 2:27 am
  14. 2003-09-29 2:50 am
  15. 2003-09-29 2:51 am
  16. 2003-09-29 2:58 am
  17. 2003-09-29 2:58 am
  18. 2003-09-29 3:06 am
  19. 2003-09-29 3:32 am
  20. 2003-09-29 3:33 am
  21. 2003-09-29 3:50 am
  22. 2003-09-29 3:52 am
  23. 2003-09-29 3:53 am
  24. 2003-09-29 4:07 am
  25. 2003-09-29 4:43 am
  26. 2003-09-29 4:52 am
  27. 2003-09-29 4:56 am
  28. 2003-09-29 4:59 am
  29. 2003-09-29 5:50 am
  30. 2003-09-29 5:56 am
  31. 2003-09-29 5:57 am
  32. 2003-09-29 6:09 am
  33. 2003-09-29 6:35 am
  34. 2003-09-29 7:03 am
  35. 2003-09-29 7:06 am
  36. 2003-09-29 7:33 am
  37. 2003-09-29 8:08 am
  38. 2003-09-29 8:15 am
  39. 2003-09-29 9:01 am
  40. 2003-09-29 9:24 am
  41. 2003-09-29 9:52 am
  42. 2003-09-29 9:55 am
  43. 2003-09-29 10:00 am
  44. 2003-09-29 10:27 am
  45. 2003-09-29 11:35 am
  46. 2003-09-29 12:17 pm
  47. 2003-09-29 12:29 pm
  48. 2003-09-29 12:37 pm
  49. 2003-09-29 1:22 pm
  50. 2003-09-29 3:31 pm
  51. 2003-09-29 4:00 pm
  52. 2003-09-29 4:24 pm
  53. 2003-09-29 4:30 pm
  54. 2003-09-29 4:43 pm
  55. 2003-09-29 5:25 pm
  56. 2003-09-29 6:04 pm
  57. 2003-09-29 6:09 pm
  58. 2003-09-29 6:19 pm
  59. 2003-09-29 7:39 pm
  60. 2003-09-29 8:25 pm
  61. 2003-09-29 8:42 pm
  62. 2003-09-29 8:58 pm
  63. 2003-09-29 9:17 pm
  64. 2003-09-29 11:13 pm
  65. 2003-09-29 11:56 pm
  66. 2003-09-29 11:59 pm
  67. 2003-09-30 12:07 am
  68. 2003-09-30 4:26 am
  69. 2003-09-30 8:58 am
  70. 2003-09-30 10:51 am
  71. 2003-09-30 11:36 am
  72. 2003-09-30 6:33 pm
  73. 2003-09-30 8:54 pm