I was listening to this long interview with DHH by The Changelog while walking around Berkeley, and I found a few points to ponder over:
The feeling of “flow” that you experience in programming is the only sustained method of happiness that I know. That’s why I like programming.
If programming is what I’m doing all day long, it better be fun and pleasant, and that’s why I switched to Ruby from doing PHP & Java before.
Point of view is important
BG often has mentioned this quote to me:
Perspective is worth 80 IQ points. – Alan Kay
And this was brought into the fore again by DHH. That is why Rails made a positive difference and gathered fans. And that is why Rails is still popular and in-use 10 years later. Compare that with many other frameworks in other languages such as PHP frameworks which have died and new ones are born every year. And that also explains why Django is still popular.
So if you have a certain point of view about how software should be created, then you should codify it. That is why
go fmt is such an integral positive contribution that GoLang introduced.
What is amazing about Rails is indeed that it has evolved over the years incorporating new technologies and ideas all along, and that was not without contention. The Rails-Merb merge was an amazing example of open source governance leadership because bringing a splinter group back into the fold is not easy and yet they managed to do it. Contrast that, with say, the Vim / Neovim splinter.
Another aspect is that evolution also means many decisions may be misunderstood for a long time but the person making the decision must have conviction about it. Or fail fast and revert it. But DHH has “good taste” in the sense that changes like using Bundler to declare dependencies was resisted early on but nobody debates that any more because now it is universally agreed as a good thing. DHH mentioned that people would confuse a buggy-then Bundler with declaring that the idea itself was fundamentally bad, which was a bad bias.
I personally still don’t agree with the introduction of CoffeeScript though. But DHH frequently mentioned in the podcast is that it is okay if you don’t like one dish out of the 21-course meal that Rails brings, you can swap it out or not use that one dish and still collaborate and build on top of the other 20 dishes. This, again, as an idea, was codified by the Rails-Merb merge.
DHH also mentioned about how he is working on improving Basecamp, and by extension, Rails with the notion of “hybrid apps” in the sense that web apps are no longer about the desktop websites, it is also about
providing APIs for mobile apps and native apps, and he is hoping to introduce it as probably a Rails 5 feature. Again, as a concept, it is nothing that you would be surprised about, but it is the conviction that DHH has on how to codify it that is worth noting.
great post! let me say that hybrid apps are not driven by APIs, they are 95% server-side HTML with some native details
@fxn Oh, interesting. After I read your tweet, I found this and understood it a little better – https://signalvnoise.com/posts/3743-hybrid-sweet-spot-native-navigation-web-content