Agile Web Development with Ruby on Rails
At just over 500 pages, Dave Thomas' new book manages to cover a lot of ground in a concise, readable manner. One problem at the outset -- the book is not finished. Knowing that the Ruby on Rails community has been chomping at the bit for morsels of information, Dave and David (DHH) have answered the call by releasing the forthcoming book early. "The book has not had a full technical edit, so it will contain errors. It has not been copy edited, so it will be full of typos. And there's been no effort spent doing layout, so you'll find bad page breaks, over-long lines, incorrect hyphenations, and all the other ugly things that you wouldn't expect to see in a finished book. We can't be held liable if you follow our instructions, expecting to create a Rails application, and you end up with a strange shaped farm implement instead. Despite all this, we think you'll enjoy it!"
And enjoy it I did. The "Getting Started" section of AWDRoR provides a whirlwind overview of the Ruby on Rails' architecture. I found Rails to be very intimidating at first. You can't just cut-and-paste a couple lines of code like you can in PHP. Rails generates all kinds of directories and files, making it feel like your first trip to Disneyland -- you know there's fun to be had, but it's a big place and you don't know your way around. The reason for all this is because, in programming, short simple scripts are easy and simple, full blown Web applications are not. Many LAMP projects developing in perl/Python/PHP and any number of templating engines have started simple, but grown into unruly messes that are difficult to maintain. While trying to grok Ruby on Rails, topics like Model-View-Control and Object-Relational Mapping really don't stick at first. Add to the confusion that many of us are also struggling to learn Ruby and a RDBMS (such as MySQL; Rails works with others databases as well). The overview of Rails is necessary, but I found it to be a lot more helpful rereading it after completing the tutorial section. So if you read through this first section and feel lost like I was, just know that the material will become familiar to you and press on, because it gets a whole lot easier from here on in.
I really enjoyed the Tutorial section, a narrative designing a shopping cart application for a customer. Dave says it best: "Does the world need another shopping cart application? Nope, but that hasn't stopped hundreds of developers from writing one. Why should we be different? More seriously, it turns out that our shopping cart will illustrate many of the features of Rails development. We'll see how to create simple maintenance pages, link database tables, handle sessions, and create forms. Over the next seven chapters, we'll also touch on peripheral topics such as unit testing, security, and making our pages look nice."
Dave begins not with lofty design plans, but with a tool most real programmers use: napkin drawings. Many of us sit down over coffee with a customer and talk about what they need, sketching out ideas with paper and pencil, not some complex software planning tool. Each chapter in the tutorial section allows a story to unfold, where the customer works alongside the developer. Real life situations like changing direction or refactoring code are covered as each programming session is done. You really see why Rails is becoming so popular. It wasn't written by a team of programmers trying to hammer out an arbitrary list of features, but rather Rails was built around a real application (Basecamp). Pragmatic considerations such as developer time, feature creep, and maintenance issues have all been skillfully addressed in Rails. The tutorial reflects this, and at the same time it also gently, almost unknowingly, teaches principles as outlined in the agile manifesto. Some of the goals include:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The third section, "Rails in Depth," dives into the inner workings of Rails. Components such as ActiveRecord, ActionController, ActiveView, and Web Services (Ajax) are all covered well. There are even chapters on securing and deploying your applications properly. These chapters, in conjunction with the API docs found on www.rubyonrails.org, give a full overview of Rails. Most helpful in this section are the notes and diagrams which help pull everything together. The appendices that cap off the book also provide the full tutorial source code, as well as a brief introduction to Ruby, the language that makes all the magic happen.
In short, Rails is a brilliant architecture, and Agile Web Development with Ruby on Rails is a great book. I'm reluctant to point out its shortcomings as it's still in beta, but it's really hard for me to find much to complain about. It took me some time for the light to come on with Rails, but once it does, you see that Rails could not exist without Ruby, the language it's inextricably woven into. As Dave Thomas is quoted on www.rubyonrails.com, Rails is probably "the framework to break Ruby into the mainstream." Whether you believe the hype or not of "super productivity," "Ten times faster development," and "Better than anything else," Ruby on Rails is a great tool to add to your belt. In fact, I find myself using it exclusively for Web apps, and I catch myself using python and PHP less and less and Ruby more and more for my day to day programs.
If you want to learn Ruby on Rails, Agile Web Development with Ruby on Rails is a great choice, and will probably be the definitive book on the subject.
Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
"Learning to develop web applications with Ruby on Rails has gained a huge amount of interest lately..."
Yeah, all 200 Ruby developers...
Nubile virgins.
I particularly enjoy their persistable domain model (where logic and data are bound in one wrapping). The one-method-per-action-controller-request-router is sweet. And there's nothing like sending out forgotten passwords and invoices from easy-to-test email service layers on top of sendmail. To dust off an old chestnut, I welcome our new buzzword-crazed overlords. It's too bad that I already have a good job as a clown.
I am putting together a CMS type web application, and I would like some recommendations on infrastructure to use. I have tried modifying existing PHP apps, and I have only had moderate success with that. I have experience in Python, PHP, Java, and am willing to try almost anything (Perl is almost). From looking at the Apache Java solutions, those look a little to heavy. I have looked at Zope, but I have never gotten comfortable with its administration or syntax. I have thought about using Cheetah and WebWare/Webkit. All of this hype about Ruby on Rails had made me want to take a look at it. I know this is sorta open ended, but does anyone have any good suggestions?
Come play Heroes of Might and Magic Mini online.
It's not so fantastic... it's just a simple application framework, offering little more than rolling your own with higher level languages.
I would think about ordering the book, if you got the Beta PDF, and then they sent you the book when it comes out.
But they want to charge for the book and charge for the Beta PDF? WTF?
No, the previous article was about how books are now being developed with "beta versions" coming out.. this book being an example of the process.
The same people who are using Lycrosis?
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
"But they want to charge for the book and charge for the Beta PDF? WTF?"
Just wait till the VHS PDF comes out. You'll get a longer reading time.
It doesn't look like you get a discount on the physical book when you purchase the Beta .pdf
Dedicated Linux servers (root access) $45 p.M.
I find it difficult to believe that if it is truely 'tens times simpler' that there would be any necessity for a book to explain it. Isn't the fact that there is a book contradictory to the statement?
It's $22.50 for the PDF by itself or $43.75 for the dead tree book and the PDF.
In other words, the printed book is $21.25 if you take out the cost of the PDF.
I purchased the combo the day after it was released and must say it's more than worth the price.
"I filter at +6, and have yet to miss out on an important comment." (#822545)
It's an amazing framework. I think that's one of the reasons it's getting so much interest.
Agile Artisans
In short, Rails is a brilliant architecture, and Agile Web Development with Ruby on Rails is a great book.
I believe that not grokking MVC detracts from the value of your review, particularly with respect to your opinion of the architecture of Rails. Without understanding MVC, you can have no understanding of the design decisions they made, and as such, no qualified understanding of the architecture itself.
This was my only concern. Thanks for the review!
Could this review be more fawning, please?
The appendices that cap off the book also provide the full tutorial source code, as well as a brief introduction to Ruby, the language that makes all the magic happen.
In short, Rails is a brilliant architecture
Agile Web Development with Ruby on Rails is a great choice, and will probably be the definitive book on the subject. The tutorial is probably the best I've ever read.
God. That last one sounds like Napoleon Dynamite.
A "beta" book, in PDF form, with typographical and technical errors, will probably be the "definitive book" about a brand-new framework? What a statement...
Don't get me wrong - I haven't had much time to play with Rails, and as a web developer, I probably should, in order to keep my skills fresh. I may even like it. But this fervent, sycophantic praise - spurred on by the blogerati (flamesuit enabled) - seems premature, especially when there are many capable web application frameworks out there. In the future, it might even seem silly. After all, anyone want to admit to owning a copy of Oreilly's book about Slash?
concrete5: a cms made for marketing, but strong enough for geeks.
http://homepage.mac.com/svc/ADayAtTheBeach/
And yet Seaside surfs under most people's radar.
---
"Slow Down Cowboy!
Slashdot requires you to wait between each successful posting of a comment to allow everyone a fair chance at posting a comment.
It's been 9 minutes since you last successfully posted a comment
Chances are, you wouldn't see the above if Taco had used Ruby on Rails instead of Perl."
As I understand it, Ruby/Rails has got a lot of attention lately as it seems to be an easy to learn yet powerful way of creating web applications, for people that normally use php. However, while php is great for quick hacks, it really caters most to those who have never had any proper programming education, and is not very well suited to anything more advanced than a shopping cart. (No, this is not flamebait, it's fact. Sorry for offending some of you, I don't know how to put it otherwise.)
So, my question is: is there anything in all that RoR buzz for those who actually have CS degrees and usually do web development with JSP/servlets? Is RoR in any way better than Java, or just easier?
Talk about an active guy! He helps Colonel Sanders start a chicken business, then founds his own restaurant chain, then dies, THEN writes a book about Ruby on Rails?
I'm clearly not doing enough with my life...
"Agile web development on rails" sounds like a bunch of acrobats in a boxcar and "Ruby on rails" just sounds dirty to me.
But in all seriousness, what exactly is this "on rails" business all about?
It wasn't a dupe. The book was only mentioned in another post about "beta programming books." This is actually a review of said book.
Some very interesting websites (Basecamp for one) have sprung up from using Rails. Many people designing web applications see Rails as a powerful framework for website development.
However, there's not a lot of good Rails documentation out there yet. This book is highly anticipated and the distribution model (Beta now, Final later) is also unusual.
Frankly, I think Rails is Ruby's 'killer app'. I actually think that Ruby could swap spaces with Python in popularity.
So some attention is deserved.
But like Napoleon said: "Never ascribe to malice, that which can be explained by incompetence." Sometimes, to paraphrase Gertrude Stein: "A Dup is a dup is a dup."
My father is a blogger.
... I find Ruby on Rails to be great!
I have been using it for a few months, and although ActiveRecord is lacks a little of the flexibility of Hibernate, it is good enough for lots of database backed web applications. I like how easy it is to replace automatically generated scaffolding code with your own code, but the scaffolding code gets you started quickly.
Also, Ruby is a fine programming language - it has just about totally replaced Python as my scripting language of choice. Using Ruby has also cut way down on my use of Common Lisp and Scheme - I miss the raw performance of compiled COmmon Lisp code, but Ruby is generally fast enough for me.
I bought the PDF version (and physical book when it is available) of Agile Web Development with Rails - nice book.
-Mark
If you're interested in cool web frameworks, but don't want to learn Ruby, you might be interested to know there is a similar framework available for Perl called Catalyst. It's very flexible but generally takes advantage of great database mappers like Class::DBI and template engines like Template Toolkit. Many cool things are ongoing in the Catalyst community, such as Class::DBI::Sweet, a new extension to Class::DBI providing very cool automatic joins (ala ActiveRecord) and object/resultset caching.
Catalyst can be found at catalyst.perl.org or on CPAN.
I predict there will be basically two categories of posts about Rails.
Either, one, that Rails is so amazing that after you use it sex seems laughably trivial by comparison, even and especially you count the production value -- one can, after all, only have one child (on average) using sex, but with Rails, dude, I HAD TEN.
Or, two, that Rails is no big deal, it's just another MVC re-think, heck I rolled one of those myself one afternoon a coupla years back, yeah it ruled but, you know, I'm really into that Java thing now. Besides, Rails is no good for BIG projects, for that you need Hibernate and a crane.
So I'll post one for the middle-of-the-road. Rails rules. I love it. I've reimplemented, in a week-and-a-half, a fairly large application that took me two months to do with Python. It's not a fair comparison because with Python I used Webware but did everything, like user management and logging, with no starting point, and also the first time around I wasn't as familiar with the problem domain.
With Rails I used the Salted Hash Login Generator which got the basics of my user login and management done in one fell swoop, an hour or two of work. I also re-used the view code from the Python app.
But the rest of it was fun. I enjoyed it. Things were done quickly and the API is awesome. ActiveRecord is not Hibernate -- yes, Javapeople, we know, we know -- but it's good. It's really good and super easy. And while there's some magic going on behind the scenes with Rails, it's not hard to understand at all.
That said, yes, if you're an online payroll system for IBM, Rails won't cut it. There are flaws, but for day-to-day stuff, not too many. It's updated very frequently, too.
My only complaint is the ubermensch of Rails, Dave Heinemeier, who, while smart, is also all too aware of it, and frequently shoots his blog off about topics which go beyond Web frameworks and into areas of either glib tech-prejudice or, at times, more subtle see-how-smart-I-am dorkposts -- the most insufferable species of Geek.
Otherwise, I strongly encourage anyone to check Rails out. It's great and a *lot* of other frameworks in other languages could stand to pay attention to the innovations in Rails. These innovations aren't so much technical epiphanies, as they are the meeting of many good ideas in one place, along with enthusiastic support and a lot of glue. Ruby's fun, too.
Check out, also, the frameworks from other languages which are shamelessly stealing from Rails:
Subway (Python)
Catalyst (Perl)
Chr0m0Dr0m!C
Rails was originally extrapolated from a Web application called BaseCamp, a project management system written in Ruby. From what I understand, this framework was considered to make Ruby a lot more efficient to develop Web applications.. thereby putting it "on rails", as it were.
You made me laff. ha ha.
My father is a blogger.
While trying to grok Ruby on Rails, topics like Model-View-Control and Object-Relational Mapping really don't stick at first.
The thing to keep in mind is, Rails makes it extremely easy to use these concepts in your programs.
If it takes one-two lines of code to do MVC, why not do it? If accessing your database requires two lines, why not do it? And get all the cool stuff "for free".
This is really the secret of Rails. It makes a clean design just as cheap as throwing something together in PHP.
Rails is a Web 2.0 AJAX-enabled test-driven RAD environment in the MVC paradigm! (Bingo!)
More seriously... Rails is a rapid web application development framework. It's written in the Ruby language, hence the "Ruby on Rails." It abstracts things quite well, leaving you to worry about actually implementing the program logic (and site design) rather than managing database connections, writing getter and setter methods, sanitizing user input, and all that oh-so-fun stuff.
If you've got QuickTime, the "Show, Don't Tell" video does a pretty good job demonstrating the very basics of what Rails can do. The video is fairly large and best viewed outside a browser window.
I went from zero knowledge of both Ruby and Rails to a full-featured application in less than a week, so I'm happy with it.
stuff like contexts in java where you can have a session context and store objects in it? Also is there something that sync's sessions from one server to another to support load balanced environments?
.. atleast not unless there is some kind of session sync capability available now. Storing session data in a database has just too much overhead.
those are really the only thing i like about java that I can't seem to find in other programming languages. Please don't say Apache::Session
I like the looks of ruby. I've been a perl developer for many years and really don't find the perl offerings to be enterprise quality. We've always resorted to reimplementing our own frameworks which obvious is very inefficient.
It is neat and all; I like the structure, and it looks fine for form-per-table sorts of toy apps, but I really don't see the advantage for anything more complicated.
I forget what 8 was for.
Why was this modded up?
"Rails is a flexible framework that allows you to keep your house in order when coding Web applications"
Ah. Good to know. Now, can you tell me what does that mean, really?
"encourages test driven development."
Test-write-test development cycles do this, regardless of the language or development 'style'. What you're saying is that RoR does not *prevent* this dev cycle form being employed. This is good to know, but hardly unique to RoR.
"Some people tried to replicate RoR with PHP, and the syntax was vile and full of syntactic salt."
Who, where, when and can we have some examples of syntactic salt?
"Using Rails to develop Web apps, as opposed to, say, PHP, is like using a language that has garbage collection over one that does not."
Yes, and love is like a red red rose.
This tells me very little about RoR and why I should use it. Nearly as much as the old saw tells me about the practicalities of love.
I understand that RoR is a mature programming language in that it offers layers of abstraction. Get in line behind half a dozen other solutions.
RUBY! AJAX! ORGASM! Hit it with a RAIL! ... I, OMFG!!!111!! I'm coming, I'm gonna, OMG ... say "I like your monkey!!!" SAY IT! - .... OOOOooooohhhh, Rubyajaxrails, yeaaaah!! ...and any Beta mindfart about it is like ten times ten Ajax orgasms!
R!
O!
R!
ROOOOOAAAAR!
RUBY ON RAILS! So fucking awsome I gotta,
I've got it! Yeah! I've got a vision, people, a vision!
We're gonna have Ajax and we're gonna put it on Rails and it's all gonna be like Lucy in the Sky with Rubys.
Oh my gosh am I seeing some shit....
This is so awesome...
(And now for the real thing watch this post being modded +10 Insightfull)
We suffer more in our imagination than in reality. - Seneca
Ruby sounds really interesting, but after all the language is just one aspect of development.
I use Java (and parts of J2EE).
Its too bad there's no truly free/open source runtime yet, but I'm sure that day will come soon.
Another problem with Java is really too much choice. Sun's higher level solutions tend to be over engineered, so everyone and their uncle have designed their own complex framework for object persistance and session management, along with the mixed bag of JSRs. Thus you have Java advocates like Javalobby saying Ruby on Rails is a great framework, and all the best free CMSs are PHP.
I am sure that Ruby on Rails makes it quick to put up a web site that supports database CRUD operations, but just like using Visual Basic to create forms, what do you have after that part is done?
The reason I like Java is its maturity and community, as well as the rigidity of the language.
Because of its multi vendor and open software support, you can find an open source or at worst free-as-in-beer library to do just about anything, and there's plenty of discussion about using all the components that exist.
If you don't like Java's rigidity and verbosity, there are some nice improvements in JDK 1.5.
From pre-1.5:
void cancelAll(Collection c) {
for (Iterator i = c.iterator(); i.hasNext(); ) {
TimerTask tt = (TimerTask) i.next();
tt.cancel();
}
}
in 1.5:
void cancelAll(Collection c) {
for (TimerTask task : c)
task.cancel();
}
Or you can execute Groovy, Jython, JRuby, etc in a JVM, or alongside PHP with JSR 223.
I don't think execution speed arguments against Java are accurate any more, especially when comparing it to languages such as Ruby, Python and PHP, and I find the memory requirements to be easily manageable in typical situations (Firefox, alas, takes much more memory on my workstation).
Creating a working application in any environment is fairly easy for anyone with sufficient training and experience, but unless you're a rare master, once you are at that plateau of a working app and you need to change it, the maturity and popularity of your environment become very important for support.
I think hands down Java is the winner here with great tools like Eclipse, with great refactoring support and where you know even in large projects what is broken as you're working on code, as well as the large community for support.
The portability of Java is also very good, you can become very OS agnostic (unless you need to get into a few aspects such as multimedia).
Anyway, sorry to wax on, and I'm always trying to find out what other environments offer, but I don't think Java is given enough credit.
What the fuck is Ruby on Rails?
blog & fiction: jd87
Test-write-test development cycles do this, regardless of the language or development 'style'. What you're saying is that RoR does not *prevent* this dev cycle form being employed. This is good to know, but hardly unique to RoR.
You have clearly never used Rails. Testing is very specifically implemented in Rails, it's actually part of the "way" of doing things.
I understand that RoR is a mature programming language in that it offers layers of abstraction. Get in line behind half a dozen other solutions.
RoR is not a "programming language", it's a framework around Ruby. Now you're just trolling with no knowledge of the subject at hand, so I'll stop.
I'm about to write some web-based software in Python -- including the need for "user" accounts, etc. etc.. I'd like to have a lot of flexibility, but also not to have some massive beast (I've already written a prototype in Perl.) Why should I learn all this RoR stuff instead? Isn't it just another way to do cgi? I mean, I'm no guru here. Help me out, guys.
Protect your liberties. Donate to the ACLU
Maybe I'm just retarded, but from your description Ruby on Rails sounds exactly like (parts of) .NET with C#.
"Testing is very specifically implemented in Rails, it's actually part of the "way" of doing things."
Again, hardly unique
"it's a framework around Ruby."
Which. Means. What. ?
" Now you're just trolling with no knowledge of the subject at hand, so I'll stop."
Interesting that you proceed almost immediately to flaming me instead of actually clarifying or saying something constructive.
If I had a dime for every fully buzzword compliant 'iFramework' I have seen bandied about in this business, I'd be out of the business on an island retreat. Ultimately, good software (app or webapp) begins and ends good implementation practices and good architecture and yes, good project management. Language, 'Framework' and the latest golden hammer thats sexier || lighter || better || sleeker than last years golden hammer is ultimately the refuge of bad hacks seeking easy answers in the hottest technology.
Right tool, for the right job, for the right (development) price. Thats the equation of import. Everything else is just BS.
Ah, but in your wisdom, this is just 'trolling'. So software will continue to, as an industry, suck and suffer under the weight of fools.
You said RoR was a "programming language".. demonstrating you haven't read the rest of the thread. Not an attack or a flame, but if you're not trolling, it's hard to tell.
"it's a framework around Ruby."
Which. Means. What. ?
If you don't know what "framework" means in relating to coding, this is not the article, book, or topic for you.
Right tool, for the right job, for the right (development) price.
We can agree on that. This is why I use other languages in ancillary systems around some of my Rails applications as Rails has a very specific domain.
There are currently 5 books in the works about Ruby on Rails (two by O'Reilly). :-)
Robby Russell
PLANET ARGON
Robby on Rails
Something about this really bothers me. It just feels like some excuse to be lazy. The software you write should be both well documented and working...as simple as that. Especially if you're building an open-source framework intended for widespread use.
Good documentation is incredibly important. Self-documenting code doesn't really work with anything in the real world.
And I'm sorry to say it, but if you don't understand MVC, then you shouldn't be writing reviews on OOP framework books.
Check out their Beta FAQ
What Ruby on Rails wants to be when it grows up.
We suffer more in our imagination than in reality. - Seneca
"If you don't know what "framework" means in relating to coding, this is not the article, book, or topic for you."
This is called 'appeal to ridicule' in rhetorical logic. It might make you look clever to the very not-clever (see also: political discourse), but it gets you nowhere with me or with anyone else with two brain cells to rub together.
Look, fellow. That puff of air was the point rocketing past your head at mach 3. I've employed more technologies referenced as 'frameworks' than I have fingers to code with. Its a meaningless buzzword and it clarifies the usefullness of RoR or how it helps you 'keep your house in order' like black spray-paint clarifies glass. Its a buzzword to hide behind, not a meaningful explication of the technology under proposal.
I gladly leave the sandbox to you, as I actually don't like sand-flicking contests. Enjoy it.
RoR is interesting but in a high state of flux. Give it 6 months to a year unless you like migrating your applications every other week.
"The area of penetration will no doubt be sensitive." ~ Spock
For all of those that want to knock this product, check it out first. Just head to http://www.rubyonrails.com/ and view the video on the front page to see how easy it is to build a basic web application.
I have been developing with the Rails framework for a little over a month and have been far more productive than I ever was in PHP or J2EE.
Rails will make you love Ruby, or at least respect it.
Oh my god that looks terrible. Its main features are apparently a UI with a WYSIWYG editor and drop-down menus. And the online demo? It looks like a version of Zope from 1999 minus all the good parts.
But, hey, it's got a WYSIWYG editor! Why would we care about anything else?
Nice use of the "multiple ad hominems and flee" tactic; I'll be quoting this in my next guide to winning pointless arguments.
Okay, I think you've added that sig so you can get modded up in this discussion...
Get your Unix fortune now!
An alpha framework? I'm not sure that an alpha framework is responsible for so many great apps IN OPERATION. Basecamp [www.basecamphq.com] services 10K+ customers, if I recall correctly. Don't be fooled by its 1.0 status. I've seen many 1.0 apps with less behind them than Rails.
The syntax was "vile and full of syntactic salt"? That would be 100% a matter of opinion. Some people don't like ruby's syntax, but like some of the ideas behind rails. So they make rails-like frameworks for languages they do like. There's nothing wrong with that, and rails isn't magically better than them simply because you prefer ruby's syntax.
Ruby on Rails is a giant load of crap. There's nothing rapid about it, the language is archaic, the support is minimal, and it's slow.
RoR is a step in the wrong direction and god only knows how it gained this small cult following.
"The need to build the internet comes from something inside us, something programmed... something we can't resist."
I've had to look at Ruby On Rails due to decisions made by some of my agile team members. There's a number of important things to be aware of if you or someone on your team is seriously thinking about using RoR to replace Java web apps. Be forewarned, while these are my own extremely biased opinions, they are in no way uninformed:
? l=RailsHibernate).
1.) Give up a decent IDE. The development tools are crap. Good luck trying to fire up a Ruby IDE, and set a breakpoint in WEBrick or Apache mod_ruby. You can't. Even if you hack around with the breakpoint command and include the debugger in the code you want to debug, the debugger is buggy and makes old skool commandline tools look sharp.
2.) Bet the farm that RoR only deals with you 80% problem, and your requirements won't break how it needs the ActiveRecord pattern. ActiveRecord looses it's luster once things get complex (see http://www.theserverside.com/articles/article.tss
3.) How do you like your OO style? If it's from the Jacobson camp, you're in for a treat! Objects are just dumb repeats of database tables 1st and foremost. Oh sure, you can add methods to do that OO thing if you must, but that's not the true essance. If you believe true object nature comes from behavior and not data, (ala Yordon & Coad) you won't be comfortable here.
4.) You're agile? You "get" test driven development? Give it up. RoR says you use a script. This hurts even more if you take issue with number 3 above. RoR rewards you for being database driven. Just define your scheme and all of your objects and a few controllers will get generated for you along with stub unit tests that pass by default. Just accept the required two line *Helper classes as well(yeah. TDD would have pushed me to create those).
5.) More on testing: hope you like having to rely on populating test data into your database. We kept hearing you can mock your persistance, but even some of the experts we talked to couldn't show us how (folks who are paid to work on a RoR product). Sure, folks said dependancy injection via Needle, but we couldn't find jack out about it.
6.)Speaking of database driven, that is a greenfield project you have with no legacy concerns and absolutely no complex O/R mapping requirements, you're starting RoR on right? No?!?! That's ok. just shoehorn RoR with updateable views or change your schema so that ID's are done the way ActiveRecords likes. That's no problem for your existing aps, is it?
7.)That had better be an OpenSource database you're using. It's not unheard of to "enjoy" a broken release for packages like ActiveRecord when the developers don't have access to Oracle or SQL Server. This happened to us and RoR was broken for about a week between releases in the 0.9 to 0.10 range. Yeah. That was a "release". Not CVS, not alpha or beta. Release. On the upside, we did patch ourselves, so "go OpenSource".
If the Rails fanboys want to mod me down, have at it. I stand by my overall opinion. Keep in mind, I have no issue with Ruby itself. In fact, it stands to give Java a real run for it's money. RoR on the other hand, is immature and over-hyped at best, and a rat's nest of garbage at worst.
*** Sigs are a stupid waste of bandwidth.
I really enjoyed this book.
I'm a WebObjects developer that is always looking for something new and RoR so far seems great.
While there are clearly still some things that could be improved (especially in the ActiveRecord ORM), for being less than a year old this thing is VERY far along.
The opposite of something like Struts, you can feel that RoR came from a real application instead of design-by-committe.
RateVegas.com - Vegas Reviews
are now available here.
Got time? Spend some of it coding or testing
...but most of them are only two self-evident pages of Ruby code anyway. (-:
Got time? Spend some of it coding or testing
I'm more familiar with Python than Ruby... anyone know how Ruby compares with mod_python in terms of performance and reliability?
...but making it work rafter-rattlingly well every time can indeed be complicated. Not to mention very, very satisfying.
Perhaps it would have been more accurate (if clumsier) to say that the context surrounding sex can be complicated.
Got time? Spend some of it coding or testing
Yay. Thanks to the people who answered my question.
(Same AC as before)
that mambo, postnuke, xaraya, etc. don't already do?
Not looking for flames, but explaining why you are writing a new app., noting what you are trying to do that current ones don't do, might be a good place to start in getting advice.
I gave RoR a shot, and never got past the head-scratching stage. It did, however, get me interested in Ruby. I never grokked Perl, thought Python was a neat idea, but have been using Ruby any time I get handed an "impossible" task at work.
Stating on Slashdot that I like cheese since 1997.
Knowing that the Ruby on Rails community has been chomping at the bit
Ya don't chomp at bits, u fuckr, u champ at them.
Seems these RoR guys are trying very hard to earn some money from their product before the initial "rush" of interest dwindles, which it is bound to do. Selling an unfinished PDF file is the lowest of the low.
"Many LAMP projects developing in perl/Python/PHP and any number of templating engines have started simple, but grown into unruly messes that are difficult to maintain."
uhh, yea, when it's developed and/or maintained by in-experienced developers, or from my experience... college students.
the only permanence in existence, is the impermanence of existence.
So is this the equivalent of the PEAR library for PHP?
"When the only tool you own is a hammer, every problem begins to resemble a nail." - Abraham Maslow (1908-1970)
You're half right. Actually, debuggers are for people who want to know what their code is doing instead of what they've intended it to do.
So, actually, you're just wrong.
Curt Hibbs has a very good step-by-step introduction to creating your first Ruby on Rails web app at onlamp.com:
l s.html/
l s.html/
Part I:
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rai
Part II:
http://www.onlamp.com/pub/a/onlamp/2005/03/03/rai
I'm not sure if anyone has mentioned this, but Ruby on Rails looks like a rehash of ASP using a VBScript knockoff. If this is the cutting edge, I feel like I'm in a time warp back to 1998.
Does anyone know the benefits of using RoR as opposed to say...PHP...or Chilisoft ASP?
I actually think that Ruby could swap spaces with Python in popularity.
Ruby doesn't really bring any significant advantages over python. Neither does Ruby-on-rails. It's just the new-kid-on-the-block enthusiasm that Ruby is enjoying ATM.
Really, look at the current situation: Python hasn't replaced Perl as the most popular scripting language yet, except perhaps in the open source community. Even if Python and Ruby both stand at the "400% better than perl" point. What chance do you think Ruby, which is 5% better or worse than python (depending on the person making the judgement), has of replacing Python?
The Ruby community has been making this prediction for, what, 5 years without any evidence of it actually happening. Python has the maturity and community aspects going for it, while Ruby has... anonymous code blocks and whitespace agnostic syntax. Stay tuned, Python 2.5 might have a syntactic structure that covers most of the uses of code blocks.
Save your wrists today - switch to Dvorak
I am coming from Java, and i really liked ROR. But ROR doesnt have any report generator, or graph generator. Such things are all that are holding me back at this moment. Ar they working on this ?
Is there a roadmap of features or add-ons they are coming out with shortly ?
-- rahul benegal : http://kalki.benegal.org
I thought chromatic's comment was funny. (Mainly because I own a copy of O'Reilly's Slash book) and I know what he's talking about.
Do you?
My father is a blogger.
Ok so show me a big app that uses ROR, not that I am going to bother learning Ruby since it offers nothing that I cannot do with python.
Got Code?
I agree with most of these assertions, although I actively use Ruby for more and more of my development code and have moved over several application to Ruby on Rails. There is a "not ready for primetime" feel to it, but it is because it's still an immature product. After all it still hasn't surpassed 1.0 revision status!
For IDE choices I personally use Eclipse with the Ruby plug-in now, although I have used FreeRIDE in the past and some other alternatives (like WideStudio, which is an IDE that is distributed alongside full installations of Ruby, Python, and Perl). If FreeRIDE isn't your cup of tea check out Eclipse. It works for me at least.
And as for the database driver issues there are likely some problems resident in the DBI version that's being used. I personally connect to MSDE and MSSQL instances without issue using RoR 0.9.1.
Let's check in with RoR a year later and see where things stand. I think people are excited but a little prematurely so...
I enjoy developing in Ruby, and Rails. I also have gripes about its Active Record model-layer package, but on one of my contracts we adapted an existing Ruby-to-SQL Server persistence layer to Rails in a very reasonable time, perhaps a little over a day, and this included the small amount of effort we needed to integrate Active Record's validations and other features, which really aren't very dependent on Active Record, it turns out. We were surprised, there was a very low amount of hacking involved.
Yes, Active Record shows its immaturity sometimes when it gets to the harder problems, and it isn't strong on many RDBMSs yet, but that's where the fact that Rails is in Ruby starts bearing some really nice fruit. You can add major features in concise, expressive (and 100% test-driven) code without breaking a sweat.
So feel free to write your own OO-y objects that use Active Record, or Madeleine (Prevayler-style object prevalence for Ruby), or whatever for persistence. Spend a few hours integrating Active Record's validations, observers, or whatever you like, and then dig on the elegance of the Action Pack view-and-controller package, Rails' strongest point IMO.
Rails is still pre-1.0. I do regret the hype that leads to this kind of misunderstanding. The developers are taking the 1.0 milestone very seriously and are working hard to address known deficiencies by then. In the meantime, make sure you're ready to roll back each upgrade...
Sure why not, there are probably more linux distros than linux users; so why not more CMS projects than those who use them?
I like the idea behind F/OSS. But sometimes it seems like, instead of using common code to work together on a project, F/OSS developers prefer to go in a thousand different directions all working on their own projects.
Does anyone know the benefits of using RoR as opposed to say...PHP...or Chilisoft ASP?
Yes. Rails does a huge amount of stuff for you that you would have to do on your own with ASP or PHP. You can do a hell of a lot of stuff without ever, ever writing the equivalent of rs.MoveNext().
Make me aerodynamic in the evening air
Thanks for posting the review.
While some people here on slashdot don't want to try something new unless someone else has already done something big with it, it's great to see that there are some in "the community" who are still interested in pushing the bounds on what is currently done.
While I personally may not be looking to move to another platform, it's great to know that there are resources out there for new stuff.
Personally, I only want books on stuff that's already well documented. And none of these new super-duper languages that one can learn quickly. If it isn't written in assembly, it isn't worth using. Why would you use anything else? It will only slow things down. In my day......
Seriously though, it's great to see that people are still able to take ideas and run with them, even if there is not a foreseable "big use" for it. When PHP was first introduced, it was met with a "why bother?" attitude. As long as there was PERL, why anything new?
I'm happy to see a book that is not a "for dummies" or "for idiots" or "for l33t hax0rs" but rather is by a programmer for programmers.
A single book that covers the topic from soup to nuts is a great idea. Maybe fairly ambitious, but if it covers the topic well, then kudos to the author(s).
-- www.WhereHaveIBeen.com
Yeah well, when you're an FEM-based car crash simulation software running on a Cray T3E, Rails looks like ASP to you, Ruby looks like VBScript, Photoshop looks like MS Paint, and Elisha Cuthbert looks like your mother in law.
You should try with a simpler question first.
I'm sure you've seen something about search engines once, try to remember.
...what Python wants to be when it finally grows up...
You have enough to find me now. Shove your dick where your mouth is (oh, my, um) and wi'll see how cool you are.
C'mon big boy. Post under your real username. Whip it out, show us whatcha got.
P.S. If you don't see the value of predicate logic in haskell, you've probably never done any real work in haskell, and maybe you should pay attention next class. Smooches, --me
I forget what 8 was for.
I do, in fact, know with absolute certainty that you've also used the software. Think about it. I'm sure you'll get it sooner or later.
I forget what 8 was for.
The framework is in a highly dynamic state. For toy applications, it's fine if you want to migrate your code every month or so. FYI, snow devil is down for redesign, my money is on a RoR update. 43things is interesting, but isn't remarkable. Basecamp is mildly useful, but very limited. Backpackit is neat, but again, not very difficult to implement.
These sites are more about ideas anyway. RoR may have helped implement them faster (good!), but my point was that you don't want to write a professional, maintainable application in a framework that isn't finished and is subject to change dramatically.
"The area of penetration will no doubt be sensitive." ~ Spock