Monday, September 14, 2026

Support Award-Winning Open-Source Projects for the Benefit of the Ruby Community!

I got a weird message from a dev on LinkedIn sharing with me a Frontend UI he built in Opal Ruby, supposedly as inspiration by my library Glimmer DSL for Web (award-winning Opal Frontend Framework for Rails). Except, he said at the end that he didn't use Glimmer DSL for Web, yet used Opal Ruby directly. The guy claimed he wanted to "experiment" with not relying on the MVC pattern. Except, every Software Engineer worth his salt should already know the difference between View code that mixes Model and Controller concerns by not relying on MVC (like Views from the early PHP era) and View code that separates them following MVC, which is what makes MVC so vital to ensuring correct separation of concerns, maintainability, readability, and simplicity. Such an experiment does not provide any new information that wasn't known 20 years ago. I took a look at his codebase. The code was very horrid and horrible. It was over-complicated. It was exactly what I built Glimmer DSL for Web to simplify and avoid. 

This is a big problem in the Ruby community today. Not building on top of good ideas already implemented and available in some open-source projects, yet re-inventing the wheel unnecessarily with inferior solutions. Like, I ran into someone who rewrote ERB to supposedly "improve" (inside-the-box-thinking) it instead of ascending higher to better solutions (outside-the-box-thinking) like using an HTML DSL like Glimmer's or Phlex's, objectively superior for so many reasons. At RailsConf 2014, one of the keynote speakers, Yahuda Katz, alluded to how Rails provides a framework that elevates people by having basic building blocks ready to go so they could start constructing a building with the first 10 or 40 floors done already (not the exact words, but that was the general idea). That's exactly what Glimmer DSL for Web aims to provide for the Frontend of Rails web apps! It offers all the building blocks needed to build any Frontend Web UI with the simplest code syntax possible in any programming language. So, when people ignore it, they just go back to starting at the first floor. Extremely unintelligent.

I told that guy that he wasn't really inspired by me if he didn't use Glimmer DSL for Web. I asked him why he was seeking a non-MVC solution. He didn't respond. I messaged him again on LinkedIn a number of weeks later reminding him he didn't respond. He never got back to me. So weird! This came across as the guy intentionally trolling me with this whole exercise, just to intentionally create an example of not using my library where the library is most perfect to use. I would literally delete and simplify a lot of his code if his web UI Frontend was built in Glimmer DSL for Web. He didn't seem sincere in his message given his lack of follow through. Needless to say, after I did some research on the guy, I found out he's an uneducated person with no university degrees in any computing related fields (like Computer Science, Software Engineering, Computer Engineering or even computing heavy fields like Math, Physics, Mechanical Engineering, or Biology), meaning basic Software Engineering concepts that are expected as foundational knowledge in professional Software Engineers are not available in his repertoire, which would explain why he was trying to do something as senseless as avoiding MVC.

Avoid being like this guy and help open-source projects that have already solved interesting problems with very good innovative solutions that won awards! Especially a Ruby project that won an award by the creator of the programming language it uses. Such projects have already been proven. They just need your support to go further for the benefit of the Software Engineering community as a whole. Use them and provide feedback. Any time you spend not using such projects is wasted on inferior solutions. Build 3rd party libraries on top of them. Contribute features and bug fixes to them. Contribute documentation. Don't just branch off on your own and re-invent the wheel if it isn't necessary or useful. That's very unintelligent and counterproductive for the Ruby community.

No comments: