Comment

A User’s Opinion: Design Choices by Open Source Developers

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.

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Please read our FAQ before making a comment.

9 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Danny
Danny
1 year ago

In essence, use the right tools for the job. And learn some basic programming technique such as dividing code into smaller modules.

Luke Baker
Editor
1 year ago

James, interesting reading of your comments on my reviews. I agree with some of what you say.

Memory usage is one factor when I evaluate music players. But is it really as important as you seem to think? I’ve tried lots of music players which have very low memory footprints that are really bad.

I was hugely disappointed with the response of Festival’s developer to the memory issue though. When I wrote the review, I believed the crazy memory usage was something that would be fixed. As this now seems not to be the case, Festival is dead in the water in my eyes. It’s a real shame as that and the way it (badly) handles multi-artist albums were the only real issues. It also has a crazy storage issue which I didn’t mention in the review.

Tauon does have an unusual UI. And it occasionally hangs menus of other apps in GNOME (I rarely use KDE so it may not be an issue there). While the UI is different to other apps, it’s actually a joy to use. I still think it’s the best music player from a customer’s experience.

I agree with your sentiment about Amethyst that writing something to see how far you can push a language is risible.

Harad
Harad
1 year ago

Interesting views.

MoRo
MoRo
1 year ago

Why doesn’t James submit his own review of a program rather than lambasting?

Alice
Alice
1 year ago

Thanks for the contribution. I hate when developers think everyone has 32GB of RAM or more. I was attracted to Ubuntu because of the 4GB of RAM needed as the minimum recommended. That’s all I have and I don’t have any cash to upgrade at the moment.

But when some programs consume 1GB each, the whole thing just falls apart.

Trickster
Trickster
1 year ago

Too many open source developers I’ve spoken to don’t think of their users as customers. They think a customer is someone who pays money. That thinking is so wrong.

Trickster
Trickster
1 year ago

Festival’s GitHub repository has been deleted.

Luke Baker
Editor
1 year ago
Reply to  Trickster

It’s now back.