Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×

What's the Secret Sauce in Ruby on Rails? 414

An anonymous reader writes "Ruby on Rails seems to be a lightning rod for controversy. At the heart of most of the controversy lies amazing productivity claims. Rails isn't a better hammer; it's a different kind of tool. This article explores the compromises and design decisions that went into making Rails so productive within its niche."
This discussion has been archived. No new comments can be posted.

What's the Secret Sauce in Ruby on Rails?

Comments Filter:
  • A question... (Score:2, Insightful)

    by $1uck ( 710826 ) on Sunday May 14, 2006 @11:33AM (#15329613)
    I've not seen a lot of RoR, but what I have seen reminded me a lot of ASP and JSP with lots of scriplets. Which I thought was bad form (code mixed with html). Have I just been looking at bad (or simple) examples? The article seems to hint that RoR does support MVC.
  • Re:A question... (Score:3, Insightful)

    by BorgCopyeditor ( 590345 ) on Sunday May 14, 2006 @11:36AM (#15329624)
    You've been looking only at the 'V' part of it all. Some people put things in V that belong in M or C. That's not Rails' fault.
  • It's Ruby (Score:3, Insightful)

    by LABob ( 870126 ) on Sunday May 14, 2006 @11:44AM (#15329646)
    I've only used Rails a bit, but I've used Ruby a lot. It's by far the most flexible language I've ever used. It allows programmers to modify the most fundmental aspects of the language. Some argue this is a bad thing, and it may be. However, having the freedom to do that is very empowering. Don't get me wrong, other OO scripting languages are great too... Python for example. And, they share many concepts with Ruby. The things that make Ruby stand out (to me) are the ease of modification and syntax flexibility. IMO, Ruby is a wonderul toolkit that will allow one to build most anything, even more specialized tools like Rails.
  • Liberal license (Score:1, Insightful)

    by Jopop ( 952828 ) on Sunday May 14, 2006 @11:44AM (#15329647)
    What about the fact that Rails is licenced under the "MIT License" while Java is (semi-)propietary?
  • by Anonymous Coward on Sunday May 14, 2006 @11:54AM (#15329677)
    Actually, it can be said that the MIT license is in fact a very conservative license. It truly harkens back to the days of the Founding Fathers, when freedom was the utmost concern.

    It places very minimal restrictions upon users, while promoting free use of the software. I must repeat, with the MIT license, the emphasis is placed on freedom and liberty. It avoids the corporate shenaniganery we have come to associate with corporate software (such as Java, or .NET), instead letting people focus on developing software.

    You don't need to be a lawyer to understand its terms. They're written so eloquently and comprehensibly that it is nearly impossible to not understand its terms.

    In short, the MIT license is all about essential freedom, the kind America was initially built upon.

  • Re:Nice Summary. (Score:2, Insightful)

    by Anonymous Coward on Sunday May 14, 2006 @12:07PM (#15329709)
    Nice summary. Too bad it's stolen verbatim from TFA.


    So what? A summary should summarize the article (duh!). If the article itself does a good job at that, why reinvent the wheel?

  • by cduffy ( 652 ) <charles+slashdot@dyfis.net> on Sunday May 14, 2006 @12:11PM (#15329721)

    (Django has been in use on high-volume production websites longer than Rails has existed, incidentally -- something which might be worthwhile when bringing it up in this kind of context).

    After evaluating Rails and Django, my company ended up going with TurboGears for some of our toolage (our main product is a Java Servlet-based application, and that's not changing). The reasons:

    • Rails and Django are very tightly integrated -- whereas with TurboGears the toolkit is loose enough that one can easily pull just one piece out for a project which doesn't need the framework as a whole. Our department does a lot of small and varied projects (many of which aren't webapps but which still could use an XML-based template engine or a simple OR mapper or a simple servlet-like API for handling requests independent of any content generation), so this was important to us.
    • We have more people in-house who know Python than Ruby.
    • TurboGears appears to be under more active development than Django.

    The opposing reasons:

    • Django and Rails have more high-volume production sites using them.
    • The OR mapper used by TurboGears, SQLObject, lacks some functionality and useful design attributes provided by others. This doesn't impact us for our little in-house projects, and is less relevant now that TurboGears 0.9 is adding support for using SQLAlchemy as an alternative to SQLObject.

    Anyhow -- Rails is nifty. Django is nifty. TurboGears is nifty. Quite likely all three of them have a place; I'd just like to urge people not to get so caught up in the hype over Rails that they forego evaluating other options.

  • by nead ( 258866 ) on Sunday May 14, 2006 @12:35PM (#15329788) Homepage
    It really is tiresome to see people constantly ask "what's the special sauce" when in many instances it is clearly "nothing".

    Sometimes good people use good methods to build well conceived applications that work precisely as their audience expects they should. Because these well-formed applications do not fail randomly, scale well and are easily supported marketing and business types presume that there absolutely must be something patentable in the mix.

    One of the reasons I loath the term "Web 2.0" is because people presume there is some new wave of innovation occuring in application development when every Slashdot reader know's this isn't true.

    Technologies mature, standards mature and hopefully people mature. The result is better software, not an abundance of new and novel special sauces.
  • by arevos ( 659374 ) on Sunday May 14, 2006 @12:59PM (#15329888) Homepage
    So you're not using Rails because it can pluralize "person" correctly? You'd prefer it to pluralize words incorrectly?

    For those unfamiliar with Rails, the it pluralizes the name of an activerecord class to get the name of the associated table. So if your class was named "Person", it would, by default, link it to the database table called "people". This is only default behaviour and, unsurprisingly, this can be overridden. It's a feature of the Rails framework, and nothing to do with Ruby.
  • by atokata ( 872432 ) on Sunday May 14, 2006 @01:47PM (#15330120)
    You know, I'm not sure that it's really so much the langauge, but the utter crap that people write in it. It's...disappointing....to download what you think might be a cool/useful/whatever program, only to find that it's a barely functional VB nightmare that crashes if your screen resolution is set wrong.

    Of course, it all depends on the programmer, in the same way that, say, carpenters can do both good work and bad. Good just takes so much longer, and is a lot more challenging.
  • Re:Nice Summary. (Score:3, Insightful)

    by rubycodez ( 864176 ) on Sunday May 14, 2006 @01:55PM (#15330157)
    So the source should be attributed and the text placed in quotes. Out in the real world, stealing someone's work and pretending it's your own can be illegal and also make people look down on you
  • by HornWumpus ( 783565 ) on Sunday May 14, 2006 @02:03PM (#15330187)
    I agree with the sib poster. It's the apps that make VB look so bad.

    Only Access has consistantly worse apps. All languages have some stinkers, but there is something to be said for learning curves keeping PHBs from blowing their own peckers off.

    That being said you can be very productive in VB if you're not a retard.

  • by baadger ( 764884 ) on Sunday May 14, 2006 @02:36PM (#15330330)
    It's not a particuarly useful feature when you have a complex class and still want normalised database schema, considering when I last looked, Rails didn't support Class Table Inheritance very well. Instant turn off.
  • Re:Nice Summary. (Score:1, Insightful)

    by Anonymous Coward on Sunday May 14, 2006 @02:47PM (#15330388)
    Just for correct referencing alone you should attribute material correctly to its source.

    There would not be anything wrong if you quoted the summary and cited it correctly.

  • Re:Posted on IBM (Score:3, Insightful)

    by misleb ( 129952 ) on Sunday May 14, 2006 @02:59PM (#15330437)
    Umm, TFA was actually making a good case for Ruby on Rails. So if they are being biased, it is in the opposite way that you would expect given IBM's interest in Java.

    -matthew
  • by misleb ( 129952 ) on Sunday May 14, 2006 @03:15PM (#15330500)
    You want a site that hooks/controls multiple DBs, or want to stray too far from the paradigm? Not so much.

    This is by design, obviously. And in a way it can actually encourage good modular design. Where someone doing Java or PHP might be tempted to write one monster application that controls two DBs, the Rails developer is encouraged to write separate applications that communicate with each other trough a well defined interface. And if the two databases don't represent two differnt modules/applications, maybe they shouldn't be different databases.

    That said, I agree, Rails is limited and there will always be a place for other frameworks or unstructured freeform coding such as one might do in PHP.

    -matthew
  • by arevos ( 659374 ) on Sunday May 14, 2006 @04:07PM (#15330647) Homepage
    This is what they do. They spam their marketing materials on one forum after another, glossing over finer points like the lack of Unicode and threading support, along with quite a number of tools professionals need in their development, and then use their meat or sock puppet accounts to downmod messages they don't want to reach their target marketing audience.

    What on earth are you talking about? Sure, Rails isn't appropriate for some projects, but it certainly is appropriate for others. Rails isn't missing any critical feature that makes it useless for web development in general, and it makes good on its promise of rapid development. Rails performs well in its (sizable) niche; take it outside that niche and of course you'll have problems, but that doesn't imply that it's useless for all applications.

  • Re:Liberal license (Score:3, Insightful)

    by penguin-collective ( 932038 ) on Sunday May 14, 2006 @04:18PM (#15330689)
    I think the vast majority of developers out there are far more interested in getting their damn job done, and couldn't care less if Sun GPL'd the Java sources.

    Yes, I'm sure many young real-world developers think that way. Now, they should think about what happens when Sun goes out of business, or when they sell Java to Microsoft, or when they just can't afford to pour money into Java anymore, or any of a number of other possibilities. Think it can't happen?

    Well, back in the day, we didn't think it would happen to companies like DEC or Symbolics, but it did. That's why real-world developers, after getting screwed by companies like Sun, decided to rely increasingly on open source software, because in the long run, it gets the job done more predictably and with less risk.

    Using and contributing to open source software for most people is just business: it primarily reduces risk by ensuring long-term availability and stability of a platform, in a way that no company has ever been able to.
  • Re:Liberal license (Score:3, Insightful)

    by VGPowerlord ( 621254 ) on Sunday May 14, 2006 @04:39PM (#15330755)
    IBM has made JVMs in the past. I wouldn't put it past them to make them again if Sun becomes Sue.
  • Ruby is slow (Score:4, Insightful)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Sunday May 14, 2006 @04:59PM (#15330816) Journal
    When it comes to Ruby, I have one wish:

    Compile it. For the love of God and all that is holy, Ruby is at least as slow as JavaScript, if not slower -- at least you can compile JavaScript into Java!

    Perl6 shows some promise in that area, but I have some serious doubts. Ruby, as a language, does far too many things that simply assume it's a "scripting" language. For instance, it's possible to modify any class at runtime -- thus many core libraries probably rely on that feature. Also, all names in Ruby are kept around at runtime. I'm pretty sure that it actually is doing a hash lookup every time. For instance:

    irb(main):026:0> class Fixnum
    irb(main):027:1> def method_missing (name, *args )
    irb(main):028:2> print 'Attempt to call '
    irb(main):029:2> puts name
    irb(main):030:2> end
    irb(main):031:1> end
    => nil
    irb(main):032:0> 5.foo
    Attempt to call foo
    => nil
    irb(main):033:0>

    I'm sure that someone will find a much simpler / more efficient way of doing the above, but the point is the same. Obviously, whenever Ruby executes code that attempts to call '5.foo', or even '5 + 5' (which becomes something like 5.+(5)), it actually stores the code for the call as a call to a given name, and then looks up that name at runtime.

    Now, good OO design generally involves making lots and lots of small classes, and even the bigger classes will have lots and lots of small methods. Good programming design in general tells us to refactor mercilessly, which will, in any language, tend to reduce the amount of code per method and increase the number of method calls. And even if you go the other way, and don't use any methods at all, the simplest line in Ruby (since it's a pure OO language) will break down into 5 or 10 method calls, at the very least.

    What all this means is, Ruby is back to that old argument of developer time vs. application run time, and I hate that. I really love it when we can break out of that mold -- when we find that, most of the time, a compiler will produce better code than handcoded assembly, or a language-based garbage collector can actually run as fast or faster than a hand-coded, application specific refcounting scheme. Or when we find that Java, despite being bytecode, will, once you JIT it, run as fast or faster than equivalent C++. Or when we find that mod_perl can be close enough to the speed of a C program that it's not even worth considering using C instead.

    But when it comes to choosing a language, they all have their performance wrinkles. C++ probably uses more memory than C, and always seems to take far longer to compile. Perl isn't anywhere near as fast as C, so whenever we find something where we need that extra speed, we rewrite chunks of a Perl module in C. Python is the same way, though Psyco looks promising, but Psyco is also x86 only, not even amd64. Java is as fast as anything, once a program starts, which takes far longer than anything else even if you've gcj'd it -- plus, the language sucks compared to Ruby. C# is as fast as Java, and so far seems to load much faster, but the language sucks (really a rehash of Java/C++), IronPython is nowhere near done, and even IronPython isn't as nice as Ruby -- plus, the platform is controlled by Microsoft.

    Ruby has absolutely awesome syntax, can be 10x faster to develop in than most other languages, but due to the language design itself, it will always be much, much slower than Perl, and that's saying something. And it's just depressing when you find you can make a chunk of your program run 10x faster by porting from Ruby to C, only it will take 50x more code.

    I guess what would make me happy is an insanely intelligent compiler for Ruby, that targeted the .net environment. Performance comparable to C#, developer time comparable to normal Ruby, bytecode obfuscated enough to use in commercial products.

    But that's depressing, too, because in the amount of time it would take me to learn enough about Ruby and .net to do that, not to mention the programming of that insane compiler, I could write hundreds of useful Ruby programs.
  • by killjoe ( 766577 ) on Sunday May 14, 2006 @05:31PM (#15330927)
    Why not provide a couple links to a couple of projects using DDs so we can check them out.

    In ROR the database IS your DD.
  • Re:What about PHP? (Score:3, Insightful)

    by misleb ( 129952 ) on Sunday May 14, 2006 @05:53PM (#15331035)
    I read TFA expecting to learn something about why people talk so much about Ruby today. Unfortunately, there was only a comparison between RoR and Java. So, if the only reason to use Ruby is that it allows an agile development method to be used, sorry, Ruby came too late for that. I have been using PHP with phpGroupWare/eGroupware, which has every one of the advantages cited in the article, plus some more.

    phpGroupware? You've got to be kidding! There is just no comparison.

    One reason why I have so much impedance against Ruby is the different syntax. PHP has a C-like syntax, which makes it very easy to catch for someone who knows C and Perl.

    Try Ruby for a week, seriously. I came from a mostly Perl/C/PHP syntax background and had little trouble picking up on Ruby. Once you start using code blocks, closures, true OO design, and all the Ruby nicities, you'll never want to fart around with PHP again. Here is an example of some really slick (in my opinion) ruby code. Lets say you have two arrays of objects that you want to add together, remove duplicates, and sort by an arbitrary attribute:

    combined = (array1 + array2).uniq.sort_by { |obj| obj.someattribute }

    What's wrong with Ruby's syntax? Well, the dangling "end", for instance. It's too FORTRAN-like for my taste. "end" what? With curly braces, there is never any doubt on the block structure if you use a modern editor, with Ruby's "end" you can never be sure of what ends where. I also prefer the curly braces instead of "begin"/"end" for the simple reason that it means less ink on paper, less clutter, easier to read listings. They say the Ruby syntax is "flexible", well so is Forth.

    Of all the trivial complaints, that has to top them all.

    Using Ruby instead of Java, OK, I can see why it's better. But I'm still waiting to see a good explanation why should someone use Ruby instead of PHP, or Perl, or Python, the three languages that have become so much associated with the "agile development" trend of software development.

    Of the 3 you mention, only Python really matches Ruby. Perl is still king for processing text, but it is somewhat specialized in that. PHP is more or less just the lowest common denomonator among modern web programming languages. As a language it is nothing special and in many ways it is sloppy on inconsistent. I haven't used PHP 5 much, but last tiem I checked, object oriented PHP was a complete joke. Its only advantages are that it is easy to learn and runs just about anywhere.

    -matthew
  • by I Like Pudding ( 323363 ) on Sunday May 14, 2006 @06:10PM (#15331131)
    AJAX is based on technologies with extremely poor design and implementation, such as browsers, JavaScript, and HTML (poorly designed for this application, perfectly ok for marking up documents)

    The only part of that I'll give you is the poor IE implementation of CSS. Browsers' main problem lies in their non-compliance with standards. Solution: test in multiple browsers. WOW, THAT WAS HARD. Next up: JavaScript. Poor design? I was shocked at how powerful the language is when I finally started digging into it after years of avoidance. Poor imlpementation? Not really - just many different implementations. Of course, this can and has already been worked around with libs that abstract the differences away for you. HTML? It still is used as a basic markup language, with all the heavy lifting being pushed into the CSS. Now, CSS is nowhere near perfect, but it does function admirably in the scope of AJAX (when not using IE's broken ass implementation).

    Rails takes lessons learned from a decade of server-side Web development, as well as the catastrophe that has become J2EE through over-engineering, and simplifies it to the essential mechanisms.

    I half-agree. You imply a minimalism that isn't present. The framework is quite complicated in places and does a lot of tricky things. You see, programming with just the essential mechanisms sucks; you've gone back to CGI.pm. What Rails does is provide a massive lever with which to move your problem. The Actual Work Done Per Line of Code metric exceeds any other framework I have used before. Code efficiency is the watchword, not simplicity.

    Built on top of Ruby, which is itself a pretty thin simplification wrapper over C++,

    No it isn't. Ruby's implementation is a big, slow VM that doesn't act much like C++ at all. Really, the poor performance is the only thing I dont like about the language.

    it combines the simplification of Web site development best practices (MVC, proper tiers, etc.) with the power of an high level development language overlaid directly on top of a low level near-assembly language, with the ability to perforate the abstraction layer (first through modifying Rails source in Ruby, then through C extensions) if needed for performance or other reasons.

    That sounds like marketroid speak, and is about 3/4ths BS. Perforate the abstraction layer? Jesus. And just who is running around writing C++ extensions for web apps? Almost nobody. Takes too damn long, and isn't as safe as running through the VM.

    Short, brutal version: AJAX built on crap by script kiddies, Rails on bedrock by software engineers.

    DHH is something closer to a hacker, not to mention the fact that rails utilizes AJAX and, more generally, javascript all over the place. Does that make AJAX apps built on top Rails rock? Or does all that terrible, awful AJAX stuff diminish Rails? Maybe they, I don't know, utilise the same foundation technologies and standards and complement each other quite nicely? Maybe you are an idiot?
  • Re:It's Ruby (Score:1, Insightful)

    by Anonymous Coward on Sunday May 14, 2006 @07:11PM (#15331343)
    Languages are not about giving us a generalized hodge podge of tools. Virtually all comercial languages do that. You might as well program in VB if you think that way.

    Languages are about helping us solve problems. Each embodies a certain programming philosophy to increase chances of success. For example, programming OO in Smalltalk (and probably Ruby as well) has certain real advantages for the OO programmer.. because Smalltalk is a more powerful abstraction language than Java or C++ are. That is because Smalltalk simplifies the general OO mechanisms and reduces unnecessary clutter that Java and C++ force you to carry.

    It's all about making you more productive and making the code more reusable and maintainable. Java and C++ are just not as good as Smalltalk (and probably Ruby) for this.

    It's not about whether you have good programmers or not. Language can influence productivity and bugs. For example, I worked with a highly experienced C++ team. They then switched to Java and productivity rose beyond levels we had achieved with C++, in spite of the lack of experience with the new language and the unchartered waters we were navigating. (In this case, Java's exception model, ease of use and huge library availability allowed us to: not waste time implementing what others had done, find and fix bugs quickly, have less weird side effects, use things like threading to make our app more advanced).

    It's not just the programmer.. the tool the programmer selects is very important. In fact, the good programmer chooses the right tool instead of slaving with the wrong one.
  • Re:Nice Summary. (Score:3, Insightful)

    by dorkygeek ( 898295 ) on Sunday May 14, 2006 @07:51PM (#15331480) Journal
    I definitely prefer a verbatim copy of a summary over the sensationalist, misleading or sometimes even plain wrong summaries we use to see here at/..

  • by Anonymous Coward on Sunday May 14, 2006 @08:06PM (#15331516)
    If you know java, I simply find that hard to believe. If you don't know it, maybe you've taken a class, read some books on JSP, you "can write it." It starts to be more reasonable. There might be some O(1) type operations like the initial setup that can be done in Rails in a hour vs. the full work day for Java or something like that but very little in terms of actual production.


    The crux of the problem with that argument was brought up by the author of webwork, if I'm not mistaken. If you're coding so much that you really can get a 10x improvment then you're clearly not doing enough design work to be making an app that's worth shit, regardless of the tool. Rails doesn't cut down on the thought time.


    DHH kind of tries to disown that comment when he's challenged on it. It's just rails marketing and hype, someone has whispered "10x faster" and they repeat it but they don't stand behind it. One thing that you can bank on, there is a lot of hype around rails, the people who make it are responsible for contributing to that hype and there is very little in the way of concrete information about these outlandish claims.


    It's okay at what it does. I personally don't care for the hype and I generally distrust when all you have is hype.


    Something else to consider, rails by design scales by pushing everything in to the database. They have some minimal caching at the web tier but none at the db tier. You need to render more pages, buy a bigger database, that's the quick answer and they suggest that it works because "yahoo does it that way" This is kind of an, um, interesting way to address scalability. I like how they make sure that they compare rails to what yahoo does too, it's just a quick and subtle comparison but it works and leads you to believe that you could do something yahoo like in rails, when it couldn't be further from the truth. Activerecord doesn't exactly conserve queries, some fairly simple joins seem to result in a lot of queries and it's kind of heavy. It's sales and marketing's way of saying they haven't really addressed the issue. To be pragmatic about this, why on earth are there all the elaborate caching schemes in EJB and J2EE and JDO? Surely people didn't just think it was something fun to build, I know the rails crowd seems to hate java but don't they think anyone with any real skill worked on it ever? I buy the j2ee is complex argument but I need to understand their argument for the complexity being unneeded. If you're planning to move on to a different project before it actually has to scale, that's not really an argument. From my own experience building clustered j2ee apps, scaling by just shoving everything into the db and hitting it for each page simply isn't a practical option if you have any real traffic.

  • by rossifer ( 581396 ) on Sunday May 14, 2006 @08:06PM (#15331519) Journal
    In fact, every time I look at Ruby, all I see is a pale reflection of Smalltalk. I've yet to see anything new it brings to the table.

    Deliverable packaging. Extracting a Smalltalk program from the development environment for distribution is, to be generous, annoying. Which is one of the reasons why Smalltalk works so well in an academic environment, but never caught on for commercial work. Ruby, on the other hand, is about as tough for someone else to deploy as Perl (it isn't).

    This is one of the places where Java really changed things and is IMHO, the big reason for why Java has become so popular. .jar files (and the variations on that theme: .war, .ear, etc.) can package up lots of different things, and as long as people know what VM version to run it on, they're good.

    Regards,
    Ross
  • by localman ( 111171 ) on Sunday May 14, 2006 @08:17PM (#15331557) Homepage
    I haven't used Ruby or Rails. I only read the ten minute tutorial that got posted here a while back. Actually reminds me a lot of a object wrapper I wrote for perl that built class heirarchies automatically from a DB schema. It was pretty cool if I do say so myself, and so is Ruby on Rails.

    However: I don't think it matters. In my experience it doesn't matter that much what programming language or model you use. Object oriented or procedural, strongly typed or loosely typed, monolithic or microscopic, chocolate or vanilla. Everything eventually bows to the reality of inherent complexity. I've seen each style done right and wrong, and if they're done right, the differences sort of wash out over time. My prediction is that Ruby on Rails is great for prototyping, but if you ever have a large buisness project that grows and develops for years it'll end up no more productive and maintainable than any other competently written code base, and probably no less productive either.

    I'm not saying none of these choices matter: they do. There are certain things I've written that are much more sensible OO than procedural and visa-versa. In the end you make decisions on how to go about a particular project, and if you've made the right ones five years later you can still carefully move at a crawl and bring new people into the codebase with only a few weeks of training. And I don't think any technology shift will notably beat that. I'm still a believer that there's no silver bullet that will make development (especially long term development) a breeze.

    But what do I know? Use what makes sense to you.

    Cheers.
  • Re:What about PHP? (Score:3, Insightful)

    by misleb ( 129952 ) on Sunday May 14, 2006 @11:46PM (#15332352)
    Ah, but array_unique() only works on arrays with integers or strings for values. I looked it up. Check out the documentation on php.net for the array_unique() function and see all the ugly hacks that people have come up with to do what you could do with 1 or 2 lines of Ruby. My Ruby oneliner would work with any arbitrary object type. The reason the Ruby version is so much more powerful is because strings and integers are just objects like everything else. As long has you implement the == method for an object, it can be uniq'd or sorted (and many other operations) just as easily as an integer. In PHP you have to have special functions to do even simple things.

    Sorry, I don't mean to sound like such a Ruby fanboy. I am really not. It is just that it frustrates me when people like the grand parent shut themselves out to learning something new. He says that he doesn't want to "waste a minute" on Ruby but he doesn't realize that he's probably already wasted countless hours writing PHP hacks that aren't even very reusable.

    -matthew

So you think that money is the root of all evil. Have you ever asked what is the root of money? -- Ayn Rand

Working...