×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

What is Ruby on Rails?

Zonk posted more than 8 years ago | from the still-looking-to-buy-a-ticket dept.

Programming 296

Robby Russell writes "ONLamp.com has published another article by Curt Hibbs titled, 'What is Ruby on Rails?.' In this article, Curt goes on to discuss all the major components of the popular Rails web framework and shows it does a lot of the heavy lifting for you. This article highlights all the major features, from Active Record to Web Services, which are going to be included in the upcoming 1.0 RC release of Ruby on Rails. With one book published already and four more on the way, do you think Rails will continue gaining as much popularity in the coming year?" An interesting follow-up to the two part tutorial from earlier this year.

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

296 comments

YASLFFFSC (1, Funny)

Anonymous Coward | more than 8 years ago | (#13790224)

Yet Another Scripting Language Framework For Spaghetti code

Re:YASLFFFSC (4, Insightful)

MemoryDragon (544441) | more than 8 years ago | (#13790253)

Actually no, Rails has heavily inspired many developments in many languages over the last year. Pretty much every framework currently at least is looking at the stuff the rails guys are doing and whether some of the concepts are viable. Stuff like Seam which also is excellent is heavily inspired by the ease of use metaphor of Rails, and the Prototype javascript libary used by rails currently sort of becomes a defacto standard for more advanced javascript stuff with many projects building on top of it. Rails definitely does not scale into the average J2EE project dimensions, but it has its merits and definitely made huge inroads in the web development domain over the last year.

Re:YASLFFFSC (3, Insightful)

endgame (23042) | more than 8 years ago | (#13790426)

> Rails definitely does not scale into the average J2EE project dimensions

From my experience the "average" J2EE does not have to scale very far at all. J2EE architectures are capable of scaling very well, but a great deal of the time the extra comlexity is unwarranted for the task at hand. Rails is a great for a the large percentage of applications that fall into this category.

Re:YASLFFFSC (1)

MemoryDragon (544441) | more than 8 years ago | (#13790500)

Depending on what you describe average, the average projects I personally have to live with (have to live because I can see the mistakes every day) probably would be better off with a clean JSF frontend, seam and ejb3 for the middle tier (I am talking about EJB3 which is close to excellent not the absymality 1 and 2 were). RoR would not be applicapble there, first of all, legacy data, secondly, the usualy project management problems of having some excellent people and some average, with db schema changes sometimes til often, and given RoRs nature having such a hen house in front of RoR would result in desaster. On the other hand once a team is really tight and good to average quality you can push out amazing stuff in RoR, I have seen it.

Re:YASLFFFSC (1)

endgame (23042) | more than 8 years ago | (#13790540)

Yeah, from what I've heard RoR doesn't handle legacy schemas particularly well. And there are plenty of reasons like the ones you mention why a team would choose Java or something else over RoR, I just don't think that scalability is a valid one most of the time.

Re:YASLFFFSC (2, Informative)

I Like Pudding (323363) | more than 8 years ago | (#13790802)

Sane legacy schemas (usually) only require a little more work. If your column naming doesnt follow the conventions, then you can just override the convention in the model definition. I had a problem before with the Oracle driver because you couldn't specify the primary key sequence name on a per-table level, but this was fixed recently.

Re:YASLFFFSC (0)

Anonymous Coward | more than 8 years ago | (#13790461)

No. Rails was itself inspired by several frameworks that existed long before it, but have not been hyped by fanbois and webwhores.

As for the spaghetti-code: morons write moronic code, no matter how good you claim the framework is.

Re:YASLFFFSC (2, Informative)

partenon (749418) | more than 8 years ago | (#13790492)

Who told you RoR doesn't scale? Take a look at http://basecamphq.com/ [basecamphq.com] and http://article.gmane.org/gmane.comp.lang.ruby.rail s/24863 [gmane.org] . Basecamp is being "used by tens of thousands of people in over 40 countries!" . And it doesn't scale? C'mon, java-boy. All we know that 90% of projects doesn't need to be done in Java. Actually, if you need a *really* huge web-application, java isn't your choice too. Examples? Amazon, eBay, Google...

Re:YASLFFFSC (0)

Anonymous Coward | more than 8 years ago | (#13790672)

I'm a fan of RoR, but I have to say ... tens of thousands of people is not a case study in scalability. That isn't to say RoR can't scale if properly designed, but pretty much any decent client-server app can scale if properly designed. Understand how the framework scales, the expected traffic metrics and implement an appropriate solution.

Re:YASLFFFSC (1, Insightful)

Anonymous Coward | more than 8 years ago | (#13790710)

Basecamp is being "used by tens of thousands of people in over 40 countries!"

Not simultaneous, which is what scalability implies.

I could write a puching-card operated server that would allow 5,743,743,798 from all over the universe have access to it, if they stand in a line and wait.

Re:YASLFFFSC (1, Funny)

Anonymous Coward | more than 8 years ago | (#13790621)

I'm just amused that two consecutive posts each labelled you a Ruby fanboy and a Java fanboy, respectively. I'd say their comments reveal more of their own biases than of yours.

Incidentally, I personally am proud to have been labelled, on thse boards, an MS shill (in spite of the fact I use Linux full-time!); an OSS-zealot (in spite of the fact that I've frequently praised Microsoft on the rare occasion they do something that warrants praise!); and an Apple fanboy (in spite of the fact that I'm not even gay!) ;)

essential memes for scripting languages (0)

hexsprite (835728) | more than 8 years ago | (#13790234)

of course we'll see it continue, even as an avid python user I understand that Ruby on Rails has managed to set forth a bunch of essential memes for scripting language development, ones that many scripting language communities are now trying to emulate.

Re:essential memes for scripting languages (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#13790294)

"as an avid python user"

Boggle.

Why?

we already know (-1, Troll)

Anonymous Coward | more than 8 years ago | (#13790257)

what ruby on rail is. because the people that support it post about ruby on rails on every java, python, perl .net forum, steal threads, begin flamewars, etc.

Re:we already know (4, Insightful)

MemoryDragon (544441) | more than 8 years ago | (#13790277)

Actually many web developers keep a constant eye on rails, I am heavy into J2EE and like it, especially the stuff which is coming along Seam, Spring, JSF and EJB3, but almost every one I know who works in the domain, keeps an eye on rails as a fallback option for quick small webapps. Besides that many concepts and libaries currently are heavily evaluated for inclusion into other frameworks.

Re:we already know (-1, Troll)

Anonymous Coward | more than 8 years ago | (#13790361)

most real developers simply refuse to work in "quick small webapps".

Re:we already know (1)

MemoryDragon (544441) | more than 8 years ago | (#13790513)

Most developer from time to time enjoy smaller applications, less responsibility testing ground, trying out new stuff and libs, and often you simply have to do it because you have this urge to eat sometimes!

Re:we already know (2, Insightful)

I Like Pudding (323363) | more than 8 years ago | (#13790597)

That and you might actually get a chance to architect it. I maintain a large web app, and hate the fact that I can't go in redesign anything (everything).

Re:we already know (0)

Anonymous Coward | more than 8 years ago | (#13790722)

most organizations right now have the problem of hundreds of small applications made with new stuff and libs (not so new by now). i refuse to work in small-quick webapps since it enforces mantainability/coherence issues.

Re:we already know (0)

Anonymous Coward | more than 8 years ago | (#13790832)

And just what *do* you deign to work on? Overpriced, byzantine SAP installations?

Re:we already know (0, Troll)

badmammajamma (171260) | more than 8 years ago | (#13790908)

True that. You can't bring up anything related to web apps without some rails drone coming out an spewing how wonderful rails is and that if jesus were a programmer, that's what he'd be using. /yawn

Summary of thread (5, Funny)

physicsphairy (720718) | more than 8 years ago | (#13790259)

"With one book published already and four more on the way, do you think Rails will continue gaining as much popularity in the coming year?"

"Yes." -- some slashdotters
"No." -- other slashdotters

Oh, and your horoscope for today is "Give generously to people you meet online who make you laugh."

MOD PARENT FUNNY (0)

Anonymous Coward | more than 8 years ago | (#13790370)

Could the skin get any thinner around here?

It is... (0)

Anonymous Coward | more than 8 years ago | (#13790739)

Marketing at its best.

Watch the demo... (4, Informative)

fak3r (917687) | more than 8 years ago | (#13790268)

Before any bashes it as being a flash in the pan, watch the demo [rubyonrails.com] and see the framework that it provides and how natural it is to build webapps on top of. Truly an interesting language for the web.

Speaking of, why don't you check out my Ruby on Rails/Typo based blog, fak3r.com [fak3r.com] ;) be sure to try out that 'live search' (try 'bsd') for a taste of RoR/AJAX fun!

Re:Watch the demo... (0)

Anonymous Coward | more than 8 years ago | (#13790434)

You misspelt "Invalid XHTML 1" in your sites footer, unless of course you meant valid, but then why would you link to a validation service that reports it to be invalid, surely not because its a pointless trend?

Re:Watch the demo... (1)

fak3r (917687) | more than 8 years ago | (#13790464)

Agreed, it is a pointless trend, and I always enjoy hitting those links only to find the site ARE NOT XHTML 1.0 valid. No, mine is not, and I took that out of the footer, but that was the cached page, so it got overwritten. Still learning Typo, but I will take that out, and yes, it's misspelt - that's the way it came from Typo! Hey, maybe I'll sub my 1st patch to the project, thanks for pointing it out.

Oh, and yeah, the site that demos the Ruby On Rails framework with Typo is fak3r.com [fak3r.com] - thanks for helping me load test Lighttpd!

Re:Watch the demo... (5, Funny)

fak3r (917687) | more than 8 years ago | (#13790438)

Wow - thanks to all that are hitting my site, I'm sitting here at work watching multitail try and keep up with all the requests on my home server! Typo uses Lighttpd (I have Apache2 running, but it's using mod_proxy to pass all requests to fak3r.com to Lighttpd) which is supposed to be 'lighter' and perform much better under load than Apache. I assume that's true because the logs are flying by, and the log from the Typo server is saying things like:
Completed in 0.01254 (79 reqs/sec) | Rendering: 0.00618 (49%) | DB: 0.00146 (11%) [http://fak3r.com/articles/search?q=bsd%5D [fak3r.com]
Am I reading this right? Most are coming up with 10-40 /reqs/second, but damn, this is on a homeserver (FreeBSD 6.0 - 1.2Gig - 512Megs) with a 384/1.5 DSL! I'm doing full refreshes here and not seeing any obvious lag - I've never had this much sustained traffic, but this looks very good for Lighttpd! (only been using it for this blog, which started ~ a week ago). Checking top I see 'ruby' but it's way down there, below multilog/tail and such... Hmm...need to check that migration from Apache to Lighty perhaps! ;)

For those late to the party, that's fak3r.com [fak3r.com]! (just try and bring it down hehe...)

Re:Watch the demo... (1)

jarich (733129) | more than 8 years ago | (#13790509)

For those late to the party, that's fak3r.com [fak3r.com]! (just try and bring it down hehe...)

heh heh... you had to ask, didn't you? :)

Re:Watch the demo... (0)

ceeam (39911) | more than 8 years ago | (#13790776)

Well, if every keystroke by every visitor in your "live search" box generates a server request.... You know, you asked for it!

Re:Watch the demo... (1)

DaveCar (189300) | more than 8 years ago | (#13790937)

Sorry dude, the front page took well over a minute to load for me.

Looks like somebody isn't going to be able to use their home DSL line tonight ;)

Re:Watch the demo... (1)

Mr. Underbridge (666784) | more than 8 years ago | (#13790729)

Before any bashes it as being a flash in the pan, watch the demo and see the framework that it provides and how natural it is to build webapps on top of. Truly an interesting language for the web.

I look at it the other way - because 90+% of all languages and especially extensions like RonR *are* fads, I'm looking for reasons to believe that it isn't. Unfortunately, the actual quality of said product is nearly irrelevant. The better question is who's adopting it, and for RonR, I'm not seeing any heavyweights taking on significantly. Ajax is another matter.

Heavyweights taking on Rails (3, Interesting)

Bruce Perens (3872) | more than 8 years ago | (#13790886)

I visit Fortune 100 companies in my work for Sourcelabs. The managers comment that their engineers are clamoring to use Rails and the managers are holding back until the product is more mature. They continue to watch the trend.

There are some interesting sites. Note Epson Developers [epsondevelopers.com]. You might find this note [gmane.org] about a large medical application interesting. I also noted a Rails project being developed in a department of the New York City government.

Bruce

New Security Framework for Ruby on Rails (4, Informative)

Bruce Perens (3872) | more than 8 years ago | (#13790766)

ModelSecurity helps Ruby on Rails developers implement a security defense in depth by implementing access control within the data model.

If you are like most developers, you think about security when you program controllers and views. But a bug in your controller or view can compromise the security of your application, unless your data model has also been secured.

The economical, flexible, and extremely readable means of specifying access controls provided by ModelSecurity makes it easier for the developer to think about security, and makes security assumptions that might otherwise live in one developers head concrete and communicable to others.

FRIST POST CHOOBS! (-1, Offtopic)

Anonymous Coward | more than 8 years ago | (#13790298)

OMFG FR1ST P0ST!!!! LOL!!!!111

Is Rails useful to aggregate web services? (2, Insightful)

shic (309152) | more than 8 years ago | (#13790300)

I am intrigued by Rails and have the book waiting for me to read at home. I am curious, however, is Rails only really useful to implement something which uses the MVC (Model View Controller) architecture - where the model is defined in the context of a SQL RDBMS... or would Rails also be useful, for example, to aggregate a number of, say, local web-services to implement a single combined web service or site?

Re:Is Rails useful to aggregate web services? (2, Insightful)

stevenprentice (202455) | more than 8 years ago | (#13790452)

Rails is useful in so many ways. Rails is a very cohesive collection of components that make up a complete web development platform, but it is easy to use the indivdual components standalone.

For example, I've used ActiveRecord by itself for database access. The application was a simple command-line utility that interacted with a local database. No web development, but ActiveRecord made it extremely easy to interact with the db.

Another example, I've used ActionView and ActionController without ActiveRecord to create a non-database driven website. I did this to take advantage of the controller/routing features of ActionController and the layout and templating features of ActionView.

Very useful stuff--either together or as separate components.

Re:Is Rails useful to aggregate web services? (2, Informative)

jazzyfox (97118) | more than 8 years ago | (#13790479)

The models in Rails are not required to be ActiveRecord (the SQL object layer) classes at all. You could have model classes that delegate calls out to another web-service like you describe, and even make use of some ActiveRecord facilities with a little more work to override the default functionality that hits up the database.

As the article says, there are really two components to the framework, ActiveRecord and ActionPack, which handle the model, then the controller/view sections respectively. Each of these can be used without the other, in fact I'm considering using ActiveRecord for a non-web project in the near future.

Re:Is Rails useful to aggregate web services? (1)

I Like Pudding (323363) | more than 8 years ago | (#13790515)

Rails has web service functionality built in, so it's probably good for that. The devil is always in the details, of course

Strange Vibe from the Article (4, Interesting)

WhoDey (629879) | more than 8 years ago | (#13790315)

TFA seems to be written by a used car salesman. Or maybe those guys on the infomercials late night for different "enhancement" drugs.

Re:Strange Vibe from the Article (0)

Anonymous Coward | more than 8 years ago | (#13790353)

It matches the slashdot users that scream about RoR at any oppourtunity like a crazy guy in a park with a sign and a megaphone.

Re:Strange Vibe from the Article (1)

Ranger (1783) | more than 8 years ago | (#13790742)

I read the first section of the article and I'm no closer to understanding Ruby on Rails than I was before. It promised a lot but delivered very little.

Finally, a breath of fresh air (4, Interesting)

some_canadian_hacker (855993) | more than 8 years ago | (#13790317)

It's good to see that a structured methodology is being introduced into the world of web development. I've seen some really shoddy implementations of *SQL APIs into a myriad of differing web platforms, and because this helps to tie together the actual implementation of database-driven web apps, the developers are freeer to work on other things... security issues? Maintaining database structure? Doing the groceries? It doesn't matter all that much when less time is spent making the framework for a web application.

Looks promising.

Question about RoR (2, Funny)

fatboy (6851) | more than 8 years ago | (#13790342)

Everything from templates to control flow to business logic is written in Ruby

Uh, doesn't business logic belong in the database where the datagnomes live?

Re:Question about RoR (1, Informative)

anpe (217106) | more than 8 years ago | (#13790393)

Uh, doesn't business logic belong in the database where the datagnomes live?
If you're using RoR, your code we'll be generated with a Controller, a Model and a View. Business rules code belongs to the Controller.
Google for MVC, you seem to miss the point completly (or was it a joke?).

Re:Question about RoR (1)

heinousjay (683506) | more than 8 years ago | (#13790532)

HAHAHAHAHA
HAHAHAHAHA
HAHA

Thanks, I needed that. Now I'm gonna go find some java guy who wants to write his db access code in a JSP.

The ultimate contrarian answer to this question (4, Insightful)

hey! (33014) | more than 8 years ago | (#13791006)

Is that there is no answer. At least no answer that is ten words or less and covers every possible case.

People who say that business logic never belongs in the database are people who tend to be application developers. They are committed to a client platform (say j2ee), and database platforms (oracle and postgres and the like) vary from client to client.

People who own data on the other hand tend to have the database platform constant, but need to get at it and manipulate it from multiple platforms (j2ee, perl, VB, Access etc.) A viable definition of "database" in my book is a collection of data that is organized to be reused across apps.

A choice algorithm I'd use is this: If it has to do with the logical consistency of the data, it belongs in the database tier. If it is only possible to meet the needs of the project you are doing in one way, choose that way. Otherwise decide what part of your system is least likely to change, try to put as much as you can there.

The closest I can get to my self imposed ten word limit is this:

Business logic belongs in the tier you're most committed to.

Seaside ? (3, Informative)

roard (661272) | more than 8 years ago | (#13790348)

While Ruby on Rails is nice, particularly for CRUD applications, I wonder why nobody speak of Seaside [seaside.st] ...

\begin{rant}
Ok, I know, it's probably because it's written in that extremely complex and arcane language, Smalltalk... not. Smalltalk is extremely simple to use -- literally a child's play ;-)
\end{rant}

Anyway, Seaside is an incredible framework to develop Web Applications -- not just CRUD apps. It has a wonderful component system, inspired by WebObjects (another wonderful framework !), and leverage Smalltalk: you have compilation on the fly, you can modify something at runtime (and I mean, even without quitting the current web session !), use the incredible debugging/refactoring possibilities, and reuse of the zillions of libraries and code available for Squeak [squeak.org].

More over, it has continuations. And that's really useful (as Paul Graham demonstrated..) for building neat webapps. Basically with Seaside you program applications nearly the same way you'd program a "normal" application. The whole HTTP process is completely abstracted (check the videos [seaside.st]).

Frankly, it's really a joy to develop with Seaside, and you should have a look :-)

forget Rails (2, Informative)

the_2nd_coming (444906) | more than 8 years ago | (#13790367)

I love TurboGears [turbogears.org]. It is easier to set up and SQLObject is nicer to work with than the database tools in Rails. but it is also a Python based framework, so if you are a rubynista, then rails is defiantly the way to go.

Re:forget Rails (1)

rsax (603351) | more than 8 years ago | (#13790689)

but it is also a Python based framework, so if you are a rubynista, then rails is defiantly the way to go.

When I read the word rubynista the first thought that came to mind was "I can totally picture someone saying that on a show like Queer Eye for the Straight Guy". I'm not sure that was the intended reaction.

Seaside Smalltalk (1, Informative)

Anonymous Coward | more than 8 years ago | (#13790384)

Another VERY good framework that allows for rapid web development is Seaside ( http://seaside.st/ [seaside.st] ). It's a framework for smalltalk, which is similar in some ways to Ruby. It's well worth checking out, once you get over the initial curve it's fantastic. Personally the ability to edit live code in your web-app while its running is wonderful and the "halos" feature just kicks a**.

WebServices not new to Rails (2, Informative)

Anonymous Coward | more than 8 years ago | (#13790410)

The article summary seems to imply that WebServices will be new to the 1.0rc of Rails. This is not the case. I've been writing WebServices with Rails for several months now using the built in WebServices support.

I've been using it... (4, Interesting)

Fished (574624) | more than 8 years ago | (#13790416)

I've been using RoR, and I'm convinced that it is not just a flash in the pan. Let me preface this by saying that I've programmed in just about everything out there... from perl/mod_perl/cgi development, to php, to Zope, to Java, to Struts, etc. I have never seen a framework that makes it so easy to quickly develop well-architected applications as rails. A lot of the credit for this goes to two things. First, Rails features, out of the box, excellent use of automation to setup the structure of your app for you. I can have basic CRUD functionality for a table with literally one command ('script/generate scaffold TableName'). Second, Rails has a built-in ORM layer (ActiveRecord) that greatly simplifies everything, in particular because it is very good ORM.

On one of the Rails pages they talk about a functional website in less times than other frameworks would have you spend on XML situps, and I have to agree. (Excursus: am I the only one who is underwhelmed with XML for application configuration? Apparently not!) Everything depends much less on configuration and much more on convention. This means less code to debug, which means more time to write the really distinctive stuff that was why you were custom-coding an app in the first place.

Ruby is also a dream come true. The speed of perl, the OO features of python, but without perl's crufty syntax and python's rigidity. Where in the past Ruby was often poorly documented, and sometimes slow and buggy, it has largely overcome these limitations.

Try rails. You'll like it.

Re:I've been using it... (0)

Anonymous Coward | more than 8 years ago | (#13790533)

Well it sounds fun, but "Python's rigidity?" Surely, you can't be serious (and stop call me Shirley ;-) Python is one of the most flexible and powerful languages of all time. The easy syntax of BASIC or Pascal, the power of LISP and PERL etc.

Perhaps your referring to the rigidity of Zope?

Have you tried CherryPy? With the Cheetah templating framework it's considered by many to be the equal or better of ROR.

Re:I've been using it... (1)

Fished (574624) | more than 8 years ago | (#13790915)

I think it's more a cultural thing. Rails has inherited a bit of perl's very flexible culture ("there's more than one way to do it") while still holding on to some decent OOL features. The Python community always seemed to me to be mostly populated by die-hard OOL purists, resulting in programming paradigms that weren't very flexible.

However, I'll be the first to admit that I'm not into the theoretical aspects of programming languages. I mostly just like to get programs written in as little time as possible.

Re:I've been using it... (4, Interesting)

phurley (65499) | more than 8 years ago | (#13790566)

I have also been using it -- and love it, but a quick note (not that I think it is that important generally speaking) -- ruby is not as fast as perl. It still uses an interpreted syntax tree, that is not as fast as perl's bytecode interpreter. YARV, should fix this, but it is still development level code.

Of course having said that, the heavy lifting in ruby (like most scripting languages) is implemented in C, and I rarely have application performance issues with my ruby programs (including but not limited to rails). When there is a performance problem, ruby has very nice benchmarking/profiling tools and a good extension system for writing code in C/C++, so for me this is a non issue.

Re:I've been using it... (3, Informative)

I Like Pudding (323363) | more than 8 years ago | (#13790716)

Rails' caching system gets around most performance problems. The templating system allows you to cache partials, which are sub-templates used for recurring page elements. Using slashdot's front page as an example, you could update the fortune at the bottom with every page view and still keep the other expensive-to-generate page elements in cache. This is the primary reason it was beating Java in certain benchmarks.

Re:I've been using it... (1)

Fished (574624) | more than 8 years ago | (#13790883)

I was actually thinking of "speed" more in terms of development time. With modern hardware, it is the rare application indeed where one needs to worry about speed in terms of execution time. (Not that it can't happen, especially if you use shoddy algorithms, but it's just not the issue it once was.) I've kind of gotten in the habit of worrying almost exclusively about development time, since that's what matters for the code I write.

I did find the sibling post, regarding Rails' catching, interesting. Just goes to show that the speed of the language itself is often the smallest factor.

Don't knock it before you try it... (3, Insightful)

SwedeGeek (545209) | more than 8 years ago | (#13790433)

To anyone who has yet to try Ruby on Rails but refuses to do so because they think it is for speghetti coders, script kiddies, etc., I just have this one comment to make...

Who do you think the people evangelising RoR are? Do you think they are actually people who have only learned Ruby, so they don't know any better in trying to get other to try it? For some reason, I doubt it... While I don't necessarily have any hard evidence on user profiles, I would suggest such promoters have likely tried more than one programming language and web framework, and are using their own experience to come to the conclusion that RoR is worth at least trying out. Ruby has now been publicly available for 10 years [wikipedia.org], but there certainly wasn't much widespread excitement about Ruby in general until RoR came along. There has to be some valid reason for that. If it was really just a mob of script kiddies trying to build the momentum, development firms such as 37signals [37signals.com] would not be as successful as they have been. Not to mention, the fact that the functionality of the RoR framework has or is being ported to many other languages of late.

I'm not trying to convince you it's the best thing since sliced bread, but I don't see the logic behind swearing Ruby on Rails off before even looking under the hood for yourself...

You know why I'm not trying it? (2, Insightful)

James A. Y. Joyce (877365) | more than 8 years ago | (#13790947)

Because every single fucking article I've read about Ruby on Rails is 95% hype and 5% substance. If the Ruby on Rails evangelists can't even be bothered to spend 15 minutes writing a decent article to actually explain what it is and how it works, why the fuck would I go to the trouble of installing Ruby and learning how to use it "On Rails"?

What I want - client side ruby (0)

Anonymous Coward | more than 8 years ago | (#13790435)

What's now needed is for something to bring the same improvments to the ugly Java-applet/Javascript/DHTML client side world.

If a Ruby-brower-plug-in can do for the client what Rails did to the server, the web would be a pleasure to work with.

From a development point of view... (0)

Anonymous Coward | more than 8 years ago | (#13790446)

A nice MVC framework written in a language that is really clean and enjoyable to work in. Technically, I don't have a problem with Rails, although there is some "interesting" code in the core libraries. But hey, it's still pre-1.0, and I think the project's goals are sound.

The core team is fairly isolated (they idle in the IRC channel but rarely speak there). Core development discussion occurs largely on locked mailing lists and in non-public IRC channels, so the direction trunk is taking on a day-to-day basis is hard to pin down. There are very few people with commit rights, and those people seem to be extraordinarily busy. Patches either get reviewed and merged really quickly, or sit and rot in the ticket system for weeks. In short, I guess it's a pretty typical open source project trying to make a release, although the lack of transparency (and at times, raw elitism) is unfortunate.

Where is all the bashing? (1)

AdityaG (842691) | more than 8 years ago | (#13790478)

It's amazing that people are not bashing this already. I was thinking maybe people wouldn't like how you can't be a "l33t haxx0r" and spend an hour writing a simple socket connection, because that's the general impression I get when there are reviews about C# or PHP.

Then again, I guess this is slashdot.

More than just Scaffold (3, Informative)

jazzyfox (97118) | more than 8 years ago | (#13790507)

One thing that I feel people should keep in mind is that Rails is more than just the scaffolding. After many of the breathless "zero to web in 15 minutes" articles it seems like Rails is no more than a simplistic CRUD framework. While you can go from nothing to a basic app in such a short time, it will be using the Scaffold, which is just that, something to get you started.

After the first few tutorials I read my impression was almost "that's it?" There demo/article Four Days With Rails [homelinux.org] gives a better view of going beyond the scaffolding, as does the Pragmatic Programmers' rails book.

Re:More than just Scaffold (2, Interesting)

Bazman (4849) | more than 8 years ago | (#13791003)

I've just read that Four Days thing and one thing is glaringly missing. You get to write a TODO management application, but there's no security. Anyone can edit, add, change, delete the TODO items.

So now you want to add security - for simplicity's sake lets suppose you just want you to be able to edit or change anything, and anyone else to be able to view the todo list. How do you add this sort of security framework into a Rails app? I've not seen this done anywhere. Can someone point me to docs that would do this?

In Zope, you get security built into the basic objects, with permissions and roles, so what can be done by users is built into the framework.

Baz

My experience (4, Informative)

spludge (99050) | more than 8 years ago | (#13790541)

I'm a somewhat experienced web developer and I have developed significant applications (1000s users) in Java, .NET and PHP (and a little Perl). I recently tried out Ruby on Rails and, so far, it is by far the best web development environment that I have seen.

It forces you to create a web application that is done-right(tm). The way it forces you is very insidious. If you create your application and database in a certain way then everything is very simple and easy to do. If you stray outside that way though, then suddenly you have to do so much more work. In this way you are led down the path of least resistance to a good design, and it actually works! Please try it for a week or two before you dismiss this, I was skeptical too :)

In Java to get the same functionality that I would get for free in rails I might have to use: Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, jMock, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts. The amount of configuration that all of those things take is very daunting, and can often have issues. Rails will give you all that functionality (well most of it) for free.

There *are* problems with with rails. The biggest in my mind is documentation. The wiki sucks. You really have to buy the Agile Web Development With Rails book to learn, but hopefully that will improve. This lack of documentation makes it hard when you want to stray outside of the framework. Rails really needs the equivalent of the PHP documentation with annotated comments.

Anyways, Rails is here to stay. I'm sure of that now having tried it myself. It feels painful to have to go back and develop in other languages for web development now!

Re:My experience (1)

GigsVT (208848) | more than 8 years ago | (#13790985)

If you create your application and database in a certain way then everything is very simple and easy to do. If you stray outside that way though, then suddenly you have to do so much more work.

Sounds like VB. No thanks.

XML? (1)

randommemoryaccess (922901) | more than 8 years ago | (#13790567)

Am I the only person who's not been able to find any XML/XSLT support in RoR? I'd like to simply create a valid XML object that I can manipulate, and transform it to the screen - in a similar way to PHP5's XML/XSL functions. Can I find any? Nope.

Re:XML? (2, Informative)

phurley (65499) | more than 8 years ago | (#13790640)

REXML is a very nice ruby XML processor, but does not do XSL transforms. There are some less polished libraries - ruby-xslt and xslt4r that wrap C XSLT libraries, they do not appear to be in active development, but (at least for me) ruby-xslt works fine.

Dear Slashdot (4, Insightful)

VAXGeek (3443) | more than 8 years ago | (#13790592)

Dear Slashdot:

                At this point, I am quite aware of Ruby on Rails. It is agile, the next big thing, etc. Could you possibly link a few more half brewed articles about AJAX, Ruby, and Rails? "Ruby's the next big thing!" "Ruby's hot!" Wow, really?! It certainly has more hype than anything else out there. I think if it was really that good, there would be less people hyped about it and more people actually using it. I've heard about 50000 people say it is the next perl. Of course, with perl6 highly late, who knows what will happen.

Re:Dear Slashdot (1, Interesting)

mccormick (40772) | more than 8 years ago | (#13790867)

Perl 6 never given a definitive delivery date, so surely it cannot be "late." Sure, they have been working on it for awhile now and adding all sort of strange magics to the brew (borrowing the best from Perl5/Python/Ruby, incorporating functional concepts from Haskell and others), but nobody said it was going to be finished soon. I guess they're going for longevity and that takes time to really work out. As the recent upsurge of interest in Ruby shows, despite having a whole range of other more common/popular languages and platforms, there's always room for something new when it is a genuine improvement. So I figure even if it takes awhile before it's ready for mass consumption, if Perl6 is solid then it will be worth the wait, and people will still start using it then even if they've settled into other languages in the meantime.

As well, thanks to Pugs over the past year, development on Perl 6 is really starting to pick up, with the language developments having an implemention to work them out on, and the overall effort having more to show than simply Parrot and some very much so work in progress ports of other languages.

RoR's AJAX abilities without RoR itself (1)

IGnatius T Foobar (4328) | more than 8 years ago | (#13790641)

There are some people out there who might have been led to believe that the fancy AJAX applications currently being built using Ruby on Rails actually require RoR for that degree of rich functionality. Fortunately, this is not true. The AJAX library is called script.aculo.us [aculo.us] and it is available as a standalone JavaScript library.

It can be used in any language, or even from static web pages. Heck, I practice the unorthodox style of developing web apps in C [citadel.org] and I'm using it too!

How does it deal with changes? (1)

mgkimsal2 (200677) | more than 8 years ago | (#13790675)

I've seen this referenced before:

script/generate scaffold TableName

and RoR will generate CRUD stuff for TableName. What happens when the structure of "TableName" changes? Does RoR handle regenerating without overwriting what you've customized?

BTW, I'm not into RoR, but was planning on doing an interview with someone on RoR for my podcast. The initial interviewee is AWOL, so if any RoR enthusiasts want to talk about this in more detail on a podcast, let me know.

Re:How does it deal with changes? (0)

Anonymous Coward | more than 8 years ago | (#13790839)

short answer, yes. long answer, mostly -- depends on how much customization you have done.

for example, the default scaffold for edit/new are pretty simple. they spit out edit fields for all the columns in the table. so, this would automatically reflect any changes you make to the table.

however, you don't really need people to be able to edit certain fields such as created_at or updated_at (as rails will update those fields automatically). so one might change the edit/new views to only show specific information. in this case, a new column in the database is accessible automatically to RoR but one would have to modify the edit/new views to include the new field.

Re:How does it deal with changes? (1)

Fished (574624) | more than 8 years ago | (#13790987)

It depends on how you do it. What I usually do is, when I edit the scaffold code, just tell it to "skip" the updated_at and created_at fields (i.e. next if field=created_at or smething like that.) That way, if I add new fields, they still appear in the forms unless I deliberately skip them. Of course, the default scaffolding code is mostly useful during development. Once you get done building the scaffold of your application, you will probably replace most of it with custom coded pages that look pretty. However, I often just leave the scaffold there and build new pages with a more integrated look for the forms I'm interested in, then make the scaffolds accessible only to administrators.

Whichever way is probably valid, but I try to avoid tying the view to the database whenever ? can.

Re:How does it deal with changes? (3, Informative)

vendull (4435) | more than 8 years ago | (#13791002)

Rails looks at the database (not XML files!) to figure out the table structure, so the changes are visible in RoR automatically. You do not have to change anything to make ActiveRecord (RoR's ORM) see the new table structure. It happens automatically.

Not so sure about this - I stil "don't get it" (0)

argoff (142580) | more than 8 years ago | (#13790695)

Ok, here's my understanding, please correct me (in simple non "high level" language for us pleons) if I am wrong. I'm am still happy to admit that I "don't get it"

My understanding is, you get these underlying languages that are complicated and messy, not intuitive, and have a bunch of unstandardized characteristics (or DOM's), and so much object orientation that the user has no clue as to how to grind down to the details. So to fix that, we add a layer on top of that called "ruby on rails" that hides the mess that you would otherwise be required to deal with. (or am I totally clueless here?)

Well anyhow, if so, wouldn't it just be better just to have the underlying language to be more imperitave and intuitive and standardized to begin with? No matter what kind of app you write, people always eventually half to start understanding the low levels to make things tick. It seems to me that much of the times these "innovations" allow people quickly and cleanly write things that have already been done, but for the real world - utility often requires imperitive and intuitive access to a low level to make new things work. It seems Ruby would just complicate that by adding another layer to go thru.

Re:Not so sure about this - I stil "don't get it" (1)

bunco (1432) | more than 8 years ago | (#13790740)

Pontification. Ruby is a joy to work with. Get your hands dirty before making worthless posts.

Re:Not so sure about this - I stil "don't get it" (0, Troll)

argoff (142580) | more than 8 years ago | (#13790849)

Pontification. Ruby is a joy to work with. Get your hands dirty before making worthless posts.

No. This is exactly what I mean ... how arrogant. There are a zillion languages out there. I don't want to sepnd all my time learning languages and frameworks, I already know dozens, I wnat to spend my time doing things. So far, it just looks like antoher layer, even after glossing over their "why use ruby", it still looks like another layer. In fact, the url likned to looked more like high level propaganda with sparse documentation with lots of quotes like "Rails is the most well thought-out web development framework I've ever used". Let me be the judge of that, please. If they're right, they have nothing to proove.

Re:Not so sure about this - I stil "don't get it" (1)

MrPink2U (633607) | more than 8 years ago | (#13790978)

How are you going to "judge it for yourself" if you don't want to learn it? I haven't done any programming with Rails (or Ruby for that matter) but I did go through some of the tutorials just to check it out. I can see definitely see how someone could really enjoy programming in this framework.

Re:Not so sure about this - I stil "don't get it" (1)

UOZaphod (31190) | more than 8 years ago | (#13790936)

I too have to admit that I just don't get it, but I'm willing to learn. However, I want a true explanation of the concept, not just a testimonial. Telling me, "It's the best thing out there", doesn't cut it.

From the beginning, I've been wanting a simple explanation of the structure of RoR. It is almost as if people are afraid that if you dig deeper into the design, you will discover something that will turn you away before trying it out. People shouldn't be afraid of the truth.

You cannot intuit your way to understanding (3, Informative)

guet (525509) | more than 8 years ago | (#13790999)

You're talking in generalities about complicated things you're not familiar with - it's not very productive.

Ruby - OOP language which is really quite elegant, tidy, and intuitive and has a bunch of standard APIs
Ruby on Rails - Additional structure and helpers for building a web application, written in Ruby

The only way you'll find out if you like it is to try doing something with it - if you seriously want to make a web application or something, you could get an idea of how to use it by watching the tutorial video.

http://www.rubyonrails.org/media/video/rails_take2 _with_sound.mov [rubyonrails.org]

My Experience (1)

MrByte420 (554317) | more than 8 years ago | (#13790962)

I became a Ruby developer at a financial firm about a month ago. My past expereince had been in PHP for this type of coding - let me say that I am impressed. Not only is it incredibly easy to pick up but you really can create full fledged applications in almost no time. ActiveRecord is what makes it so versitle, and I highly reccomend anyone who hasn't given it a try to actually try it...
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...