All of the growing pains listed in the article can be observed in pretty much any framework in any language. Certain patterns and designs might be more present in some environments than others but I’m yet to see a framework that still guides you at tens or hundreds of kLOC. I don’t see how Rails is an issue here. If anything, I’ve always liked how the Ruby/Rails community discusses how to get the best of their framework and object-orientation. Are there monstrous, hard to evolve Rails app? Yes but the same can be said about Spring, .NET, Django and many others.
Agreed. Rails created conventions around standard issues developers were running into when building web apps that solved real pain points. With those problems largely out of the way, the community set out to conquer business domain logic in the same manner, which I am convinced is not possible to the same degree because business logic is inherently rooted in the chaos of the real world.
Hard problems are where the money is made, as they say.
Exactly. Early in this century, I was excited to be working on a Java shipping web app deployed to Tomcat running on Windows because it felt like cutting-edge technology! As an aside, thermal printers were fun to print shipping labels on. At the time, I couldn't quite put my finger on it, but the many thousands of lines of code in the AirbillBean (to represent a shipping waybill) handled pretty much all persisted attributes and business logic in the application--well, almost everything of consequence, unless you count my address book importers. :) The app didn't need Struts or any other framework, and the JSPs were very convoluted, all working with that AirbillBean model. This was a high-traffic app in a booming business. Later, I realized that a lot of that AirbillBean should have been pieced apart into other classes. A younger me shook my head in disgust at the sorry state of that codebase after I left. But you know what? That code served them well for years and years after I left, and hardly changed.
Rails arrived around that time, and it influenced many other popular frameworks. From what I remember of how things were back then, a lot of developers' eyes were opened by seeing a cleanly organized Rails project. I'm sure Basecamp has had to do a lot of custom refactoring beyond whatever is covered in the Rails Way. Any app that has grown as much would have to start customizing outside of the initial framework.
Today, a lot of solutions I've worked on wouldn't have even seen the light of day if they hadn't been built with Rails. I often ship complete SaaS platforms on Rails at a fraction of the cost and time of the competition because Rails makes business experiments easier and cheaper to try. Are models sometimes heavy? Yes. As heavy as that old-school AirbillBean? Not usually. But the fact is, anyone who is tasked with maintaining that would be wise to start refactoring a lot of that into other classes once complexity is increasing. But you might never have gotten to the point where you were dealing with increased complexity if you didn't start out iterating quickly with the Rails Way or something comparable. :)