Wednesday, May 22, 2024

People shouldn't ask if Rails is dead! They should ask how long Rails has been dead!

I think the Rails community got retarded as a whole ever since Rails 6 decided to lazily adopt Webpack instead of further developing Sprockets (the Asset Pipeline) as its JavaScript build system and then adopting Ruby in the Browser as the default. Ruby on Rails developers used to be way smarter and more productive before then. I remember they used to get very excited about productivity boosts like Rails scaffolding or bold novel ideas like CoffeeScript. And, back then, they would have done anything to get Ruby in the Browser as a replacement for CoffeeScript. 

Unfortunately, ever since Rails decided to default to mediocre least-common-denominator technologies (like Webpack and JavaScript) instead of continuing to lead the Rails community with Ruby based innovations like Ruby in the Browser, the entire Rails community got retarded as a whole. Sure, there is Hotwire, but that technology does not address the Frontend sufficiently to avoid needing JavaScript, and that ends up splitting the Rails community among those who are scared of everything JavaScript, and those who prefer to go with JavaScript despite its many shortcomings (even in 2024). There is a better way that would unite all Rails Software Engineers! It's Ruby in the Browser! This is just one problem out of many. Other examples of not progressing forward are sticking to ERB when there are much more innovative ways for rendering Views with Ruby like Phlex and other projects leading innovations in the View side of Rails.

I know many people don't notice it and think everything is normal, but think of such people as zombies that have been assimilated into the unintelligent masses. Nowadays, you see this dead look in some Rails developers' eyes whenever you talk to them about anything that truly increases productivity and improves code maintainability in brand new and innovative ways outside the box of what is common in Rails development. It's like the intelligent part of their brains died long time ago and they don't really care about customers enough to always want to do their best for them. They're just programmed to follow what some "important people" at "important corporations" do without questioning (because the "important corporations" make a lot of $$$), and their sense of reward doesn't come from serving customers well, yet from following the "important people" satisfactorily. 

That's vastly different from the earlier Ruby community that cared about customers maximally and wanted to not follow "important people" yet follow what provides the best solutions possible to customers no matter how bold while always getting excited about brand new novel ways of accomplishing that. 

I showed some Rubyists I ran into recently Ruby code in the frontend that was 10x less code than React code inside components (i.e. 1/10 the code) while being much cleaner, more readable, and more maintainable given it was Ruby code, the same code we know and love from the backend of Rails applications. Also, I did a demo to show how it ran well and fast. Any real Rubyist who cares about their customers maximally would be jumping up and down in joy about seeing such code. And, fortunately, some of the people who saw the demo had that reaction, but some didn't. There was one person who seemed so dead inside he barely reacted. He even pushed back a bit feeling threatened about the possibility of not using React anymore in his job despite having to write 10x more code that is unreadable,  badly mixes concerns, hard to reason about, over-engineered, premature-optimization-obsessed, more expensive to maintain, and has slower time to software delivery. 

That shocked me beyond measure because it proved that developer was a mediocre developer that is not seeking to use the best solutions for his customers in his job, yet seeking only to protect any technology he is using even if it does not provide the best value to customers just because he "likes" it. This sort of attitude in the Rails community was unheard of more than 10 years ago. I am guessing that had something to do with code schools. People who learn programming there only learn one or few technologies, so they get attached to them, and without learning the Computer Science theoretical underpinnings, they end up applying those technologies in a Monkey-See-Monkey-Do fashion. In other words, they are not truly qualified to do real customer work, which presents an ethical problem as customers get cheated when their work gets done by unqualified employees. Computer Science university graduates and graduates of other computer related university degrees (e.g. Math and Engineering) end up with a good grasp on the theoretical underpinnings of Computer Programming, enabling them to learn any technologies much more quickly and thus leverage the best solution for every customer problem optimally. Granted, this is not the only problem here, but it definitely is a factor.

It is sad what the lack of DHH's leadership has done to the Rails community in the last 10 years. DHH being a pushover during the Rails 6 days is still hurting the Rails community today. I remember Rails Software Engineers being a lot smarter and more open-minded towards highly innovative solutions before Rails 6 was released. Nowadays, when I converse with some Rubyists I run into (not all fortunately), I feel like I am conversing with dead zombies that do what they do as if they are programmed to blindly follow what some "important people" say without thinking for themselves and without doing things to serve customers in the best way possible, yet only because someone said this is "good to do" and because it would get them "paid". 

Thankfully, the Software Engineers who have not lost their brain and ethics under peer pressure to go with the status-quo common flow will continue to do the best work possible for customers, and that will automatically correct the situation of the Rails community in the future, by gradually shifting jobs away from mediocre developers into proper Software Engineers. I already see this sort of renaissance happening today with many Software Engineers who were taken by the hype of other technologies like Rust, Elixir, and Node.js coming back to Rails. I have seen that happening for the last year or so. Also, many Rails developers who were the yes-man unintelligent types have been losing their jobs at small, mid-size, and large companies or quitting the Rails community altogether while smarter more qualified non-push-over Software Engineers have been taking over their jobs and replacing them in the Rails community.

No comments: