What is Ruby on Rails?
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.
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.
"Yes." -- some slashdotters
"No." -- other slashdotters
Oh, and your horoscope for today is "Give generously to people you meet online who make you laugh."
When things get complex, multiply by the complex conjugate.
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.
;) be sure to try out that 'live search' (try 'bsd') for a taste of RoR/AJAX fun!
Speaking of, why don't you check out my Ruby on Rails/Typo based blog, fak3r.com
fak3r.com
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.
TFA seems to be written by a used car salesman. Or maybe those guys on the infomercials late night for different "enhancement" drugs.
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.
Your eyes are full of hate. That's good. Hate keeps a man alive. It gives him strength.
\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.
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).
Frankly, it's really a joy to develop with Seaside, and you should have a look :-)
You have been drinking too much Oracle Koolaid....
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.
"He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
> 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.
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, 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 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...
I came across this awesome (actually funny) online book teaching Ruby: why's (poignant) guide to ruby
"God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
Marcel Molina (one of the Core Ruby on Rails Team members) is teaching a five-day Ruby/Ruby on Rails bootcamp at Big Nerd Ranch, December 5 - 9.. I work for Big Nerd Ranch, so I'm biased, but I think it is going to be an incredible class. - Aaron Hillegass
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 gives a better view of going beyond the scaffolding, as does the Pragmatic Programmers' rails book.
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!
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.
this sig limit is too small to put anything good h
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.
Bruce Perens.
There are some interesting sites. Note Epson Developers. You might find this note about a large medical application interesting. I also noted a Rails project being developed in a department of the New York City government.
Bruce
Bruce Perens.
You're talking in generalities about complicated things you're not familiar with - it's not very productive.
2 _with_sound.mov
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_take
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.
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:
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Quite a few people have dismissed Ruby on Rails because they think that it enforces a set of rules about how to structure your database. I am currently writing, Programming Rails for O'Reilly and have posted numerous articles on my blog on the topic of Rails and Legacy database systems. Rails can be molded to fit your existing infrastructure with very little effort. It's all I have been using for new projects since last spring... and that was when I started learning Ruby as well.
PostgreSQL + Ruby + Rails = the next (lamp)
PRR, RPR, RRP... we need a cool acronym
Robby Russell
PLANET ARGON
Robby on Rails
Don't let your Java get run out on a Rail just yet
My opinion hasn't changed much since.
*** Sigs are a stupid waste of bandwidth.
Curt Hibbs (author of that Rails article) has just released Instant Rails.
Instant Rails is a one-stop Rails runtime solution containing Ruby, Rails, Apache, and MySQL, all preconfigured and ready to run. No installer, you simply drop it into the directory of your choice and run it. It does not modify your system environment.
http://instantrails.rubyforge.org/
Robby Russell
PLANET ARGON
Robby on Rails
Which, as we all know, is an outright lie. If jesus were a programmer he would write a lisp routine so advanced that A) only god could actually understand it, and B) he would just have to think about a website for it to be written.
After all, if I were jesus, that is what I would do.
Slashdot: Where anecdotes and generalizations can be freely substituted for facts, logic, or intelligence
Google on "ruby on rails is":
Ruby on Rails is awesome.
Ruby on Rails is a relatively new Web application framework built on the Ruby language.
Ruby on Rails is the first startling example of this trend.
Ruby on Rails is way over hyped.
Ruby on Rails is finally a bullet point!
Ruby on Rails is NOT a new programming language.
And, definitively, from Joel on Software:
If you don't know whether or not Ruby on Rails is a good tool, give it a try yourself. Most smart people I know love Rails.
Don't you want to be a smart person?
[Disclosure: Yes, I actually do like Ruby on Rails from what I've seen. It's fun to bitch about the hype, but most of the bitching is much less well-informed than the hype being bitched about. "If you can't convince me in five minutes that I need to drop everything and learn this, obviously there's no value to it!" Yeah, uh-huh. Some people compensate with fast sportscars, some with Java frameworks, I guess.]
Trails was a train wreck of immaturity last time I checked, and the dependencies were ridiculous.
There is also Grails which is Groovy based, that is probably immature as hell.
Ruby's main problem is its immaturity, so going with a more immature solution doesn't help. Java for the sake of Java isn't going to help things, but I wish the Grails/Trails people great success. The Java API is extremely valuable, and Ruby's main problems with converting people is the host of apps/APIs (web server, database, etc) above and beyond the language that an enterprise developer will need to learn in order to effectively use it.
Hey, I'm just your average shit and piss factory.