COMMENTS
thanks for sharing, got this from HumDigg.
Paul Graham's quote on RoR: "During the Bubble, a lot of people predicted that startups would outsource their development to India. I think a better model for the future is David Heinemeier Hansson, who outsourced his development to a more powerful language instead. A lot of well-known applications are now, like Basecamp, written by just one programmer. And one guy is more than 10x cheaper than ten, because (a) he won’t waste any time in meetings, and (b) since he’s probably a founder, he can pay himself nothing."
I work for a company that uses Ruby in enterprise-class applications, and it's great. It's a very powerful and productive languge. We evaluated Rails though and found that it was too simple for our database model. Good framework for doing quick-n-dirty stuff but not really suitable (yet) for complex enterprise-class stuff... at least that was our opinion.
So I probably wouldn't use Rails for a startup that was doing anything terribly complex. But, I would certainly look at Ruby.
1. "Sure, you can do MVC with Java and C# but those languages give you way too many choices and you don’t want to have to trust your development team. "
The last bit of the sentence is not meant literally (I understand that) but is still problematic in my world. No blind trust, but trusting their professional instincts once they have been verified and tested upfront is the only way I could have time to focus on the business goals.
2. RoR is said to be much slower than Java 5 and CLR 2. I do not believe they have JIT or hotspot optimization as of yet.
Pick whatever technology is the most comfortable for your core development team. If they're comfortable with RoR, then so be it.
But don't let them cut their teeth on your deadline. An expererienced team in most any environment is productive. They're productive in not chasing down black holes or learning new or unproven technology. They're productive in that they know how to make A + B = C. The rest is basically labor, not the hard part of the unknown or creative areas of system development.
With web applications, it is almost never the fault of the tool choice that a product fails. It is typically something far far beyond the scope of the development tool. Successful sites are running everything from C, Perl, Lisp, RoR, Java, ASP, PHP, etc. on Oracle, MySQL, Postgers, SQL Server, Sybase, etc. They all work.
Also, you can always change out the back end later.
Simple example is eBay. Started off on Windows using a C++ DLL and are now today running Java on Sun hardware. Yet the site still works, the URLs still work, etc.
The language used is but one component to a very complex process, and typically it is not the most important one.
Just make sure that your team has someone who is fluent in the technology you're using, whatever it may be. You don't want to fund a research project. You want your site to just work.
It's clearly evident that you are ingorant of the subject matter. Perhaps you should actually learn Ruby and use Rails before spouting off. Each has strengths and weaknesses .... but one has to understand them first before one can adequately crtiicize them. Here's an example of just one of the very simple errors you've made.
Ruby, the language, had an intial interpreter working in 1993 and public release in 1995. It may seem new to many but agewise it's roughly a sibling to Java and PHP, and older than C#. A language which easily shows Ruby's limitiations is Lisp, which is older than any of the ones on this page. Shiny and new != better. But hey, don't let facts get in the way of your rant.
I think that "less is more." But, I don't think it applies to the overall functionality of a program, more to the complexity with which the program can be used to complete the task of the user. If the user could be provided with a big button that said "Work" and it did exactly what they wanted, then that would be an incredibly successful product, and clearly much more complex below the surface than a single button implies. So, it is not the complexity of the product we are minimalizing, it is the complexity of using it.
Also, having done some very trivial stuff in Ruby, it is cooler. It is much cooler than C# (my day job language). It's up there with Python, Lisp and Perl in terms of coolness. Is RoR cooler, I am not sure, but I am willing to give anything a try that is written in a more productive language, and isn't ASP.NET.
I'm sure RoR is as great to use as most people say but its still just a language and framework.... just like all the other options. Another 3G language. There are no truly fundamental differences. I'm a little worried when someone thinks that it will solve all of their previous problems. It reminds me a bit of when VB came out and it was easy to write a simple windows app... and everyone thought they were a windows developer for about a year or two.
Some linguistics research searchs for an optimal human language, which is cool, but the stuff more important than syntax and semantics is the creativity and expression in literature that an individual creates.
"Some linguistics research searchs for an optimal human language, which is cool, but the stuff more important than syntax and semantics is the creativity and expression in literature that an individual creates."
Wow. Nice one. Register (if you haven't) and join the discussion. It's very quiet, with the forum being less than a month old.
Thanks to everyone for their comments.
For those that want to continue the conversation, I encourage you to do so in the discussion forums as Marc suggested.
You say:
"When tempted to adopt the newest “silver bullet” technology that promises immense gains in programmer productivity (which RoR does), understand what the tradeoffs are."
It's not clear to me from your article what you think these tradeoffs are. Could you elaborate?
Thanks for saying a lot of nothing. I'd appreciate more if you can help the Rails zealot (+me) by showing what the trade-offs are.
I'd like an example of a "complicated database model" that rails can't handle. I bet you can't come up with one. It might require you to actually think a little bit to do something that goes beyond the normal Rails conventions believe it or not but most experienced programmers can handle that. If you don't want to be flamed, don't write ignorant and uninformed posts
Dallas,
I think you missed my point about the humor and the article not being an analysis of the technical merits of RoR.
Having said that, I do like to a little bit of thinking every now and then (amd am working through getting a deeper understanding of RoR as we speak).
The good news is that I'm more representative of the mainstream developer and not as smart as folks such as yourself, so I'll be a better gauge.
Will post back here based on what I learn (or don't learn).
Also, for those that were disappointed with the lack of substantitve material in the article, my apolgoies. In my defense, it was the long weekend and I did make it clear that the article was not a "thought piece" but a humor piece.
Very humorous. I guess I'm not sure whats considered mainstream. Java? PHP? C#? Does mainstream mean that you don't use a framework, or that you don't use Ruby/Python/Lisp? Seems like your more apt at poking fun at 37signals and some overdone "Web2.0" philosophies. When making a web app its kind of essential to use a framework to stay competitive. At least I would argue so. So you can write your own framework or use one already written for you by a bunch of very smart people. The beauty being that its open source and you can look at and modify how it was implemented. If you use alot of stored procedures for crud then go tweak the database layer if you have to. I think this applies to any good open source framework.
Evey language seems to be "cool" at one point or another. Even VBscript.
I don't agree with the RoR principle that everything should be simple and achievable by amatures. If you want a professional site, you need to use professionals. Like the current movement to replace graphic designers with easy to use software & templates, what does it achieve? Poor quality generic looking web sites. It also hampers diversity and limits innovation.
If you buy frozen ready meals all the time, don't expect to impress people with your cooking, enjoy the food you eat, or ever understand how to cook anything better based on your knowledge of cooking ready meals.
Get with it. RoR is SOOOO last year. Use Django (for about another 3 months anyway...). ;-)
Flavor of the year languages are the path to failure. Two years ago your code was PHP, last year it was Python, this year it's Ruby, next year it's what? Focus on applications, not religion.
A little behind the discussion here but whatever.
Rails is nice. I use it all the time. That said, you are right about the database model more or less; once you get beyond CRUD you are in deep space. That doesn't mean you can't do it, or that it's more work than some other language. It just means you have to do the whole thing yourself. No helps except the bare language.
Also what gets me is people who say, look, here is [application], it's in [some other language], but Rails is awesome, so I'll completely rewrite [application] in Rails! Why? Half of the philosophy of Rails is to avoid duplicating work, not "everything goes better with Rails". It doesn't, because Rails won't magically recreate someone else's years of effort.
And then they advertise on their site that it's written in Rails. How can this possibly be a selling point? There is no consumer in the world who cares what language their website is written in; not even programmers. Programmers are interested as programmers, but programmer interest doesn't generate revenue. When in consumer mode, programmers are no different than anyone else.
I want to make a ROR site just so I can put the shiny logo on it!!!
good article from 2006! that is true -
Ruby On Rails rules in every aspect.
You do not forgot something important like...
performance? Oh wait, now we have big bad ass computers, rigth?
Bad, bad article... bad developers can make mistakes on
any language, trading performance for "easy of use" is simply a really bad idea. But now whe have gigs of RAM, right? why make a small and fast program on a "old" language like C?