DEV Community

Cover image for Reinventing the Wheel: A Reflection on Software Development and Open Source
giuliopanda
giuliopanda

Posted on • Originally published at milkadmin.org

Reinventing the Wheel: A Reflection on Software Development and Open Source

Reinventing the Wheel: A Reflection on Software Development and Open Source

I'm working on an open-source project called Milk Admin: a PHP admin core designed to quickly build supporting administrative backends. The project isn't ready yet, but if you feel like taking a look, I'd be happy.
But that's not what I wanted to talk about.
A couple of months ago, I posted an article about it on an Italian forum. I was very surprised by the comments, and I decided to write this piece to reflect on how the open-source software landscape has changed.

The Time Before Certainties

When I started developing for the web, the world was split in two: those who used CMSs, and those who wrote everything from scratch. As strange as it may sound today, building from scratch was still a respected approach'also because it showed you knew how to program. The code was often questionable, sure, but there was tolerance: the important thing was that it worked.

A few years later, using Joomla, I developed an open-source component that found some success. I never knew exactly how many people downloaded or used it, but over time I received thanks, donations, and collaboration proposals.

The Rise of Standards (and the Shift in Mindset)

Then something changed in the PHP world. With WordPress in particular, a different model emerged: open source as a showcase for premium versions. A perfectly legitimate business strategy, but one that profoundly reshaped community dynamics. In my small personal experience, I had a terrible time developing WordPress plugins'I found its community truly unpleasant and surprisingly ignorant.

Even Richard Stallman had raised concerns about the open-source development model. But the world changes, and we have to adapt.

With the rise of frameworks like Laravel and Symfony came a new mantra: don't reinvent the wheel. Sensible in theory. But it evolved into something more rigid: the idea that there are 'right' and 'wrong' ways to do things, and that innovation means learning to use existing tools better'not creating new ones.

Companies embraced this approach enthusiastically: standards mean interchangeability, replaceable resources, fast onboarding. Economically, it makes sense. Culturally, something may have been lost.

The Trial by Fire

When I introduced the project I mentioned at the start, the reaction I received was almost hostile. It struck me, because in the end it's free code'you can like it or ignore it, but criticizing it feels like an attitude I struggle to understand.

And the objections weren't even about how it actually worked. Basically, they criticized the fact that more sophisticated tools like Filament already exist. Others complained that it didn't follow modern programming standards. Few seemed to have actually tried the code. The judgment was pre-emptive, based on abstract principles rather than concrete issues.

Why Keep Reinventing

I thought about abandoning the project. But then I stopped to reflect on what drives me to program. It's not just solving problems'that's my job. It's understanding how things work. It's exploring. It's learning by re-programming the obvious.

Just last week I was explaining why namespaces are supposed to follow folder structure. Logically, organizing them by concept would make more sense. But it's a standard, so it's not up for discussion. Except'sometimes we should question whether better ways of doing things might exist. Reflecting on that every now and then isn't a bad thing.

If everyone stopped building CMSs because 'there's WordPress,' if no one created new frameworks because 'there's Laravel,' how many opportunities would be lost?
If no one had ever reinvented the wheel, our cars today would still be rolling on stone wheels.

Top comments (4)

Collapse
 
xwero profile image
david duymelinck • Edited

I understand where you are coming from. I do think the situation is a bit more nuanced.

As far as the CMS solutions go Craft CMS and Statamic are the new kids on the block. For frameworks there is Tempest.
They are not having the mass adoption like WordPress or Laravel, but new solutions are still being created.

I think analyzing a new solution should be requirement. But it has to happen respectfully. I can give hard criticsm, but the goal is not to be hostile. It is to make someone aware of another perspective. I do this for my own code too, but then I have an inner dialog. It can be exhausting sometimes.

I'm glad you didn't stop thinking about code and carry on. Please go on. There are still a lot of problems that need fixing.

Collapse
 
giuliopanda profile image
giuliopanda

Thanks for the suggestions, I wasn't aware of these projects.

Collapse
 
simultsop profile image
Mentor Gashi • Edited

One of the reasons you face preemptive judgement might be because of negative experience some went through.

At some point, software is liability, the industry moves fast (even faster than we think). Security issues for a side project might seem: "meh" if one is smart enough to use my code should be smart enough to secure it. It might happen that the ones not able to secure become critics of new not-giant-established open source projects. (Not something to be liked happening).

If your motivation is not linked to stars, downloads, forks. In my opinion, anyone is free to code as they will, and ignore the audience.

Collapse
 
giuliopanda profile image
giuliopanda

If you work on an open source project, I think it's obvious that you do it because you love programming. But that doesn't mean you don't want to feel appreciated. You're right, though, that people may have become more critical of open source projects.