Thursday, June 14, 2007

Designers & N00bz: The Rails Advantage?

Been reading The Wisdom of Crowds.

There's very interesting research referenced in this book which indicates that adding new members to a group can actually make the group smarter even if the new members are less well-informed than the existing members:

Scott Page is a political scientist at the University of Michigan who has done a series of intriguing experiments using computer-simulated problem-solving agents to demonstrate the positive effects of diversity...what Page found was that a group made up of some smart agents and some not-so-smart agents almost always did better than a group made up just of smart agents. You could do as well or better by selecting a group randomly and letting it solve the problem as by spending a lot of time trying to find the smart agents and then putting them alone on the problem.

There are qualifiers to this, it's important to read the whole book, but it's pretty easy to generalize it out to real life. Rails makes it very easy for people to get started, so much so that it draws in people who've never done programming before. Even though this results in individual applications sucking a little extra, it makes the Rails ecosystem smarter as a whole.


  1. This might explain why the popular languages like C, C++, and Java are popular: They bring in smart people (designers) who structure the technology to fit an objective, some smart coders who actually know what they're doing in the language, and then a bunch of less skilled programmers who think the language is the greatest, but produce code that takes several tries to get right, or at best is inefficient.

    What I suspect is going on is that the less skilled programmers are there for what they consider to be the merits of the language and the technology (when the going is good you get a lot of 'em who are just there for the money), but the designers are just there to do business and structure the technology and think it's neat that technology is along for the ride. "It's just a box" to them. They don't care that much about the technology's merits. The skilled programmers probably know better about the technology's merits, but they're working in language X for the money (though in some cases the language's merits actually fit well with the technical objectives).

    I suspect the reason why RoR may ultimately rise in the Pantheon of successful languages/frameworks is that it has the VB quality of getting something up and running quickly (please note I am trying to pay it a compliment here). This is the part the less skilled coders can work on. At the same time it allows the skilled programmers to really take advantage of the language and Rails to produce tight code that does the meaty stuff well. Where the designers fit in, I don't know. I guess they can still put logic into modules and structures, and work with the templates to produce nice looking web pages (whichever designer you're talking about).

    As you were saying earlier, there's enough that's familiar in Rails so that programmers of any stripe can pick it up. They just have to get used to the "duck typing".

    I think this is where languages like Lisp didn't work out. It didn't work like Rails so that unskilled programmers could get into it. There's a high barrier to entry. Skilled developers can potentially get it, but there are fewer of them, and even among them there are only a few who bother to look at it and try to understand it.

    I think pretty much the same goes for Squeak, but I think it's more approachable than Lisp. It has some basis of familiarity for those who can handle OOP. It also has a barrier to entry, but I think that has more to do with accessibility of documentation and the fact that many feel limited by its facilities, but this is due to lack of familiarity.

    It goes back to the marketing problem you were talking about.

  2. You can read Scott Page's thoughts on the wisdom of crowds (he goes a lot deeper than the Surowiecki) in his book, "The Difference," which was just published this past spring.


Note: Only a member of this blog may post a comment.