5 ms·
The Ruby Revolution is Over
- rick_2047 17y agoA revolution is indeed over, but it makes me wonder why was Ruby the initiator. There were other languages which could have done the same, well mostly. Python for example or SmallTalk to some extent. They had all the potential, then why Ruby?Was it just because it had the first real Killer app (namely rails) or was it some game of chance?
- wglb 17y agoSome of these were already revolutions. For example, i was in a large enterprise organization when Java came out. The programmers there were using Cobol, cics, Powerbuilder, maybe a little Eclipse, some Lotus Notes. The excitement of the programmers was palpable. They held impromptu meetings, made plans. Lots of excitement. Management wasn't so keen, however. Smalltalk was a revolution as well. It was the first visible OO push. It even made Business Week with some of the technologies. So some of these peak then fade.
- xtho 17y agoIMHO the ruby revolution boils down to "convention over configuration". This notion was pushed by ruby library before RoR and built on the idea (by the creator of ruby) that the programmer as human being should come first. So ruby hackers put much effort into designing libraries that are above all easy to use. It's a good thing the revolution is over.
- cturner 17y agoPython is my main language, but can understand the attraction of Ruby over Python to people stuck with Java or PHP and screaming out for something new. Python has stuff in it that's weird until you learn to ignore it. Example - joining several items in a list so they're comma-separated. In python you do this: print ', '.join( [1,2,3,4,5] ) The code doesn't work in the way someone new to the language thinks about the problem. I've trained two colleagues in the basics of python, and both of them gave me the "what hope did I have of working that out?" look when I showed them this. In ruby you do this: puts [1,2,3,4,5].join(", ") Ruby avoids the whitespace debate but still manages to produce reasonably pretty code. You have to type 'end' (slightly more verbose), but you save on the colon at the beginning of the scope, and it's probably easier to write non-functional one-liners in ruby as a result. (I wouldn't know, I love my lambda :) ) Python's self keyword has the sitting-at-the-plugboard feel to it. So does __init__ - the token is ugly. Then there is the unfortunate 'super' syntax. Experienced python programmers rarely need or use it, but transitioning Java developers think in a way that leans on frequent superclassing. The python __name__ == '__main__' pattern is cryptic. Packaging mechanisms are ugly (again - something Java developers will be itching to use). I suspect Ruby presents less culture clash if you come to it from Java, and is easier to get your head around if you come to it from PHP. Smalltalk isn't in the same domain as tools like perl, python, ruby. I think rails rode on the back of Ruby rather than the other way around - there was nothing revolutionary in rails, it was an enabler for Ruby.
- omouse 17y agoYou're focusing on the small surface details. Also, the words "begin" and "end" were used in ALGOL and PASCAL and no one had much of a problem with them. Concepts > languages/notations
- deleted 17y ago[deleted]
- deleted 17y ago[deleted]
- overgard 17y agoWhen someone is deciding what language to learn, though, surface details are the main thing they have to work with. It doesn't necessarily make it justified, but it's the reality of the situation.
- gr366 17y agoI think Rails had a lot to do with Ruby being the initiator. Rails introduced enough of a paradigm shift with its philosophy of making development fun, and it had a better level of visibility via 37signals than other options (say, Django for example). The fact that it was also the way to do web development in Ruby for quite a while (before Merb, Sinatra, et al) strengthened its position. Django already had to compete with existing web frameworks and so the market was inherently splintered when it came out. Ruby has also benefitted from folks like the Pragmatic Programmers quickly legitimizing it (and Rails) with a number of books, and you have to give the folks promoting Ruby and Rails a lot of credit for trying to tackle thorny problems (e.g. migrations, web services through ActiveResource, etc.) incrementally to build a platform that Enterprise is no longer afraid to adopt. In summary: good implementation, excellent promotion & responsiveness to the market.
- InclinedPlane 17y agoSorry no. At best it's the end of the beginning. If you look at any job board and look at web dev jobs you'll notice that nearly all of the listings are for plain old-fashioned non-mvc development, in php no less. Rails, ASP.NET MVC, Django, etc. have all grown into respectable, practical ways of building top-tier web sites but the MVC revolution is only just starting (as are the TDD revolution and the functional renaissance). Judging by the time it took the OOP revolution to play out (i.e. get to the state where it is the accepted norm rather than the exception), the MVC revolution probably has another decade or so before it gets to that stage.
- ardit33 17y ago(as are the TDD revolution and the functional renaissance). I hope not. TDD might work for some people, or for specific problems, but it seems a shitty way to develop to some other ones. It just it is not a panacea.
- InclinedPlane 17y agoI agree, but I think that TDD is probably under adopted at the moment. MVC has obvious, measurable, direct benefits to development. As does functional programming (for the right problems). The research supporting TDD is either anecdotal or murky at best. One of the biggest problems with TDD (and agile), in my opinion, is that it lacks an objective feedback mechanism that makes it obvious whether it's being applied correctly. I believe any methodology must have built-in feedback to ensure that it's applied correctly to be practical or successful. It takes a human TDD guru to subjectively determine if a team is doing TDD "right" or not. Whereas other development practices, such as producing daily builds, have obvious channels of direct feedback (do you produce a build every day, is it broken, does it use up-to-date sources, etc.). I believe that aspects of TDD will ultimately become part of a larger set of methodologies which together provide obvious, measurable benefits to development of many if not most software projects. But today the case for TDD as a one-size-fits-all methodology is far from conclusive.
- chromatic 17y ago
- z8000 17y agoWhile I quite enjoy ruby I truly cannot stand the attitudes of the "revolutionaries".
- coderdude 17y agoWhat the author does not mention in "How did it happen?" is how a few people with a lot of clout in the developer community made really pretty Websites describing Ruby on Rails and used words like "elegant" to convince other programmers that their code was dirty. Once they felt dirty, they wanted to be elegant too. ;)