Before I get to the nitty gritty, I want to thank LinuxLinks for giving me the opportunity to air my views. I first considered writing comments on the articles I’m going to talk about, but I wasn’t sure that was the right approach. Instead, I sent an email to LinuxLinks presenting my 2cents. The response was somewhat unexpected being invited to take center stage and write a guest post. So here goes.
Let me whisk you back to the 1997 Worldwide Developer Conference when the late Steve Jobs tackled a difficult and rudely phrased question about Java from an audience member. His response was profound and really drives at the heart of my angst. Steve Jobs was erudite in his response noting “… you gotta start with the customer experience and work backwards towards the technology. You can’t start with the technology and try to figure out where you’re gonna try to sell it”.
Obviously Mr Jobs was referring to selling proprietary software, but I think the same principle applies to open source software.
I have been reading some of Luke Baker’s recent reviews of open source music players. I’ll focus on three of his reviews.
Let’s start with Amethyst. The aim of the project is to see how far TypeScript can be stretched to provide an audio player with pro-level features.
I understand an open source developer has objectives. It may be a new language/framework for them and coding the project may lead to employment opportunities, it may just be they want something new to learn. The development of a programmer is important. But if they are going to share the code, the end-user (read customer) experience still needs to be the main driver.
Writing an audio player in TypeScript with the Electron framework just to see what’s possible is putting technology ahead of the customer experience. The outcome is predictably lamentable. A hugely bloated app which not only eats RAM but CPU/GPU too. I vehemently disagree with Luke when he said there’s a lot to like about Amethyst. The whole project is frankly an unmitigated disaster as it fell at the first hurdle.
Now you may take the view the developer’s time is their own affair. If Amethyst was a private project, I’d agree. But once it’s publicly shared, it’s just wasting the time of every poor sap who installs it.
The customer experience must be considered at all stages of development. Take Tauon Music Box. Luke falls over with praise about this music player. I don’t share his enthusiasm mainly because the UI is egregious. For example, it has a nasty habit of hanging not only its own UI but the entire desktop environment.
Some of the UI issues could be fixed with the help of other open source developers. I’m not an expert in Python, but one of my colleagues is far more knowledgeable with that language. He reviewed the code base and remarked that most of the program’s logic is contained within a single file. This design calamity not only slows down development, makes debugging much harder, but deters anyone from touching the codebase with a barge pole. The developer laments that it’s just too late to do anything meaningful now. Kinda defeats publishing the software under an open source license.
Luke’s review of Festival was somewhat baffling to me. On the one hand, Luke describes the music player as a breath of fresh air. But he also notes this music player uses 1.1GB of RAM. Unbelievable! A music player using that amount of RAM is just obscene. To be fair to Luke, he subsequently raised an issue on the project’s GitHub repository. The developer seems to hold the view the horrific memory usage is ok, noting that it’s caused by keeping album art (500×500 px versions) permanently in memory. I’m an advocate of caching, but this design approach is totally unnecessary for a music player.
The customer experience should always be the focus at all stages of development of an open source project. A developer makes many decisions when embarking on a project. What to write? What language? What framework/toolkits/libraries? What license? Lots of questions which all need careful consideration. From the end-user’s perspective.
Editor’s Note: This article reflects the personal views of James McCarthy and does not necessarily represent the views of LinuxLinks. It has not been edited in any way except for the inclusion of this message.