Open-source programs are my favorites, but they have two major drawbacks that can be corrected if you use the suggestions in this article. They can be very good, and being free is attractive to most of us who have paid a lot for commercial software, but they can be frustrating if they are not robust or user-friendly.
Another good thing about this free software is it doesn’t try to be everything to everybody. Often this software solves a specific need, this makes it more focused and easier to use than commercial software which has to try to reach a broad market.
There are some downsides to open-source software though, that can be frustrating. One problem is that sometimes it stops being maintained, and eventually becomes unusable. This is similar to commercial software that eventually becomes unsupported and requires replacement.
Free software has two unique major problems that have influenced my design decisions because often they are avoidable and can make software less robust, less usable, and harder to maintain.
These two unique major problems are dependency on other open-source code and poor interface designs that are not intuitive and do not provide adequate help resources. I am a major creator, user, and supporter of open source software but find these two things very frustrating as a user.
Let’s look at these problems.
- Dependency — Many free programs build applications using other open-source libraries. This allows rapid complex development which is good. The problem is that your program may break because you have no control over the other library’s support. If the library is not changed in a timely fashion after core language releases or is morphed into commercial software, this could render the dependent code unusable, or cause major modifications at best.
- Solution — Pure Python. I program using pure Python whenever possible. Creating an open-source code that is only dependent on the core language and its libraries, give me the most control over maintenance. By eliminating dependencies, my code is more robust.
- Poor Interface Design — Open source programs are powerful but can be difficult to use. Command-line interfaces, minimal documentation, and no built-in help can challenge users who are used to GUI interfaces and extensive help files in commercial software. Users want a familiar interface and quick access to answers for their questions.
- Solution — Keep It Simple and Help. Python programs using Tkinter GUI interfaces are easy to use and can be written with pop-up help windows. Even just explaining how to use each feature helps. Smaller applications should offer on-line tutorials and examples, which most large open-source programs already do.
Make it easy, attractive, and robust, and people will love it.