Programming is deeply disappointing. We continually fail to live up to our own expectations, more so than any other form of engineering or craft. And it’s not getting much better. The lack of any substantial progress is the most disappointing thing of all. Worst of all: it is our own fault.
Continue reading “For the good of software, software must die!”
What is Ruby&Rails’ secret of success?
The history of programming languages is depressing. Generally worse is better. Socio-economic factors dominate. But there seems to be one giant exception: Ruby & Rails. I haven’t studied them deeply, but they look like really good work that has succeeded on its merits. Ruby is a tastefully designed language with a coherent philosophy of making programming easy and fun. Rails righteously smites the bloated complexity of the Big Java web frameworks. Gotta love it. So how did it win? This undermines my entire cynical world view. Can anyone explain how it went down?
Update: note the obstacles. Ruby had dubious performance. It was developed in Japan, doc translation from Japanese was incomplete and laggy, the dev lists were largely in Japanese. Scripting languages were not considered suitable for large-scale applications. Ruby was not used for a lot of server-side programming. Rails took away many checklist features that people thought they needed. People had already built cool web frameworks in LISP and Smalltalk without anyone much caring. What fortuitous combination of factors allowed Ruby&Rails to succeed? How important was the DHH cult of personality? I’m guessing a lot.
Hello Twitterverse
As an experiment, I am announcing new blog posts on my twitter feed @jonathoda. I am also going to try tweeting pearls of programming wisdom that I find. Feedback welcome.
Why we shouldn’t number
The discussion on my previous post (Why numbering should start at one) suggests a new approach. Maybe these blogging tubes are good for something after all.
Continue reading “Why we shouldn’t number”
Why numbering should start at one
Should collection/sequence/array indices start with zero or one? Most current languages choose zero. ForĀ flux, I am choosing one. This choice is orthogonal, meaning that I can easily change it if it turns out to be wrong. The reason to discuss such a trivial issue is that it is an example of how choices that made sense in the early days of programming need to be reexamined. It also frames some principles of language design: Abstract Datatypes, and Conservatism.
Continue reading “Why numbering should start at one”
