Because we need more than chunky bacon...
March 27, 2006 10:50 PM   Subscribe

Ruby on Rails 1.1 is out and you can pretend you know what Ruby on Rails is after reading the overview on the homepage or checking out the screencasts if you have some time. Some might recognize this from prior posts (perhaps, undeservedly) or from some of the web applications that were developed with it.
posted by jmhodges (36 comments total)
I love chunky bacon!

And I love the new RJS in Rails 1.1 almost as much.
posted by jperkins at 11:17 PM on March 27, 2006

I've read a lot about Ruby on Rails being comparatively friendly to programming n00bs. Is that a bunch of hype, or would I really not get imposed and run off and hide somewhere?
posted by brundlefly at 11:26 PM on March 27, 2006

chunky bacon indeed.
I don't work with ruby or even forsee ever doing so, but why's poignant guide is a great read in spite of that.

That guide in particular, brundlefly, is very noob friendly.
posted by juv3nal at 11:32 PM on March 27, 2006

brundlefly: I suck at programming but I managed to cobble together a useful, clean and mildly popular application (it satisfies a very specific niche) within a week. And most of that time was actually spent learning the ins and outs of the Ruby language and the APIs of some extra libraries I needed. Rails made it very easy to divide my problem into smaller parts, ignore unimportant distinctions (that in many most frameworks can break a program) and tackle each part individually. YMMV, of course, since it depends on your mindset and the problem you want to take on.
posted by jmhodges at 11:47 PM on March 27, 2006

I have to guess that the "poignant guide" is written mostly for people who already know Ruby and can enjoy the sidebars, cartoons and random asides, because using it to actually learn Ruby is a hassle; I stopped reading when they started talking about Ambrose and elves and hams and other things distinctly Not Having To Do With Getting To The Fucking Point Already.

Then again, I'm used to learning languages by reading the API reference and whatever language syntax guides might be available. For people like me, Programming Ruby might be a better choice.
posted by chrominance at 12:05 AM on March 28, 2006

As a fairly skilled php programmer who learned Ruby and Rails at the same time (as I imagine most people do), I found the transition to RoR to be quite a bit more difficult than the hype would lead you to believe. Getting past the informed noob stage (aka where the "setup a blog in five minutes!" tutorials end) took a lot more effort than I expected, and I still find it difficult to find answers to specific problems that I run across - because it's new, I suppose, the documentation is dispersed and generally fairly shallow (except for an extremely high traffic mailing list, and a horrible frameset).

Overall though, the framework is suprisngly well thought-out and put together considering its age, and definitely worth the investment/commitment. And Ruby is a very simple and elegant language and a joy to program.
posted by peptide at 12:21 AM on March 28, 2006

gah... and ActiveRecord *still* only supports single table inheritance...
posted by russm at 12:44 AM on March 28, 2006

Meh. That sucks. I had been hoping.
posted by cytherea at 1:12 AM on March 28, 2006

Highly overrated. The near-constant hype alone makes me want to hurl.
posted by nightchrome at 1:56 AM on March 28, 2006

RoR sounds great, but after a brief exploration of it, I noticed a lot of webhosts (mine included, naturally) don't seem to allow it, due to some security issue.... Is this version going to be secure enough for hosts to actually install?
posted by BishopsLoveScifi at 2:37 AM on March 28, 2006

What security issue? I haven't heard of such a thing. Perhaps I'm ill-informed about but Textdrive, Site5, and PlanetArgon all support it without any mention of a security issue.
posted by jmhodges at 2:45 AM on March 28, 2006

I think they may be referring to this problem, which does affect Textdrive.
posted by cillit bang at 2:57 AM on March 28, 2006

so what exactly is this "security problem" meant to be? looks to me like it's just the hosting providers reserving their right to kick you if you hog the boxes... it's the price you pay for going to shared hosting... but I don't see any Rails security problem there...
posted by russm at 3:35 AM on March 28, 2006

metafilter: your favorite web application platform sucks
posted by n9 at 4:32 AM on March 28, 2006

[fixed broken link in fpp]
posted by jessamyn (staff) at 4:49 AM on March 28, 2006

I've been using the Django framework for my senior project for college. It makes me feel really warm and fuzzy inside, because it's all in python, and it has an automatically generated admin interface which ROCKS. It's got some weirdness, but only because its not 1.0 yet. If you do try out django, go with the magic-removal branch.
posted by Mach5 at 5:45 AM on March 28, 2006

Last I checked, Rails used normal hyperlinks (HTTP GET) by default for destructive operations like deleting records, rather than using a form button (HTTP POST.) This is in clear contradiction to the HTTP protocol spec. I remember a few months back seeing a report that the Google bot had come indexing people’s Basecamp projects, following these “delete” links, and destroying quite a bit of important data, all due to 37signals’ incompetence.

Ruby, the language, however, is worth every bit of hype.
posted by ijoshua at 6:35 AM on March 28, 2006

Peptide: I'm not sure why you're hating on Rails' docs. I found them to be much more helpful than the docs of other systems I've worked with.

Compare the "horrible frameset" to Python's ridiculous Library Reference or Twisted's insane undocumented warren of an API.

I used to not like Rails' docs either, but they're really not that bad. I guess every API can't be Java's API

Maybe it's just a personal style thing, but I feel like there are much worse examples of API docs than Railsdoc out there.
posted by heresiarch at 6:44 AM on March 28, 2006

That sounds pretty awful, ijoshua. I've been learning Ruby and Rails lately and I'm surprised to hear that happened. The developers certainly seem conscientious about of that sort of problem in their Rails book. I am an experienced Java developer and have used many other languages, and I'm thoroughly enjoying both Ruby and Rails so far.
posted by Songdog at 6:46 AM on March 28, 2006

I was at barcamp in NYC a month or so ago, and there was a RoR demo, where they dared anyone to come up with a webapp they couldnt build in the time span of the demo. After discarding three or four suggestions, they went with a craigslist scraper that displays the average price of a rental property in a geographic area. After an hour they had something that worked fairly well, but just as they were wrapping up the last few bugs, a couple of younger kids with a laptop piped up: 'Well, team javascript is just about done' and proceeded to swivel the laptop around to reveal the same app, built all in javascript, and technically in less time than the RoR guys.

I loled.
posted by crunchywelch at 6:52 AM on March 28, 2006

I think it's a bit underdocumented. The tutorials only cover the basic stuff, and then beyond that there's just the API docs and the wiki. I almost bought a book, for God's sake. What I really hate is that I randomly find new stuff via reading weblogs that I would have found very useful earlier.

Like here's an example... you can put a '-' at the end of your logical code blocks in the view, to get them to collapse in the HTML. So your HTML doesn't have 19 lines of whitespace in it and looks much more professional. I still don't know if that's documented anywhere.
posted by smackfu at 6:53 AM on March 28, 2006

Well, smackfu, that is explained clearly and early in the book I mentioned.
posted by Songdog at 7:13 AM on March 28, 2006

heresiarch: While the Python API docs may not look pretty, I find them far more usable than the RoR ones you've linked to. The Python library reference not only documents every method and class, but also provides usage examples for the more esoteric ones. It's a far more readable document than the auto-generated RoR API (which also seems to leave about 40% of methods undocumented).

ObPythonistaRant: RoR (much like its docs) seems to concentrate more on flashiness and ease-of-adoption rather than good design (my favorite Ruby rant point: modifying the root Object behavior; that's just insane). CRUD webapps are nice and all, but I still haven't seen a truly impressive Ruby webapp.

OTOH, I am not overly impressed by the RoR wannabes either: Django is nice, but under-documented as well.

OTOOH, Python has its own issues (the library is way too large for one) but under-documentation is definitely not one of them...
posted by costas at 7:39 AM on March 28, 2006

Ruby on Rails:Web apps::Visual Basic:GUI apps

costas: Python's library is way too large? You'd rather have less functionality?
posted by joegester at 8:01 AM on March 28, 2006

My beef with the Python Std Library are the overlapping modules: getopt vs optparse, urllib vs urllib2 vs httplib, cPickle vs pickle vs marshal, expat vs ElementTree vs sax, etc. It makes life worse for the newbie who picks up that (otherwise awesome) documentation and then tries to figure out which one to use. It's high time that the Python std lib gets a clean up --which is rumored, as I've read somewhere that after 2.5 we're going to 3.0 which should break some older code (finally!).
posted by costas at 8:11 AM on March 28, 2006

That's a little unfair, joegester. It's true that Rails and VB both simplify the process, but working with Ruby is very, very different from working with VB. Python seems every bit as great as Ruby, they're just a little different, and Rails itself seems a little bit more mature than the similar frameworks available for Python. That will change, but even then there'll be room enough for everyone.
posted by Songdog at 8:31 AM on March 28, 2006

The impression i'm getting is that It's something to do with Wbe 2.0 and therefore ignorable.
posted by Artw at 9:25 AM on March 28, 2006

I started with very, very minimal programming knowledge and a single class on database design, and I've managed to come up with a couple of functional and somewhat complex apps. I highly recommend the books, though.
posted by empath at 10:14 AM on March 28, 2006

costas: I see what you mean. That's a sentiment I can get behind.

Songdog: I have nothing against Ruby. I'm just unimpressed with Rails, the Python versions (TurboGears and Django) included. I didn't mean to compare Ruby itself to VB, just Rails.

My issue with RoR is that it's good for the things they expect you to do with it like blogs and basic forumy, "leave a comment" stuff. But for anything unusual, anything innovative you'll spend more time fighting with the framework than getting real work done.

I guess I'd prefer a library as opposed to a framework. Something you can use without totally drinking the kool-aid. Something you use in your code as opposed to coding in. None of the web frameworks/libraries/whatever have done this well yet. Zope and Twisted are probably worse offenders in this respect.
posted by joegester at 10:19 AM on March 28, 2006

Wow. I just stumbled across this, which more or less sums up how I feel perfectly.
posted by joegester at 10:24 AM on March 28, 2006

I just deployed my first Rails app. I had a hell of a time until I bought the Programming Ruby and Agile Rails books. Once I began to really grok things, the language and the framework became really nice, really fast.

Deploying it on shared hosting with Apache 1.3 is bitchy, though.
posted by smeger at 11:02 AM on March 28, 2006

joegester: I hear you. There are apps that this sort of thing is good for, and apps that it's not. I don't know that RoR folks really tries to solve the problems of developers trying to invent entirely new architectures. It's more of an attempt at improving on existing MVC web frameworks like Struts. I do think there's a huge portion of website development work that amount to continually re-inventing certain applications. There's a lot of utility to frameworks of this sort; the broad categories of blogging/CMS apps, communities/forums, wikis, and of course e-commerce encompass an awfully large number of websites.

I don't agree with you, however, that being innovative has to mean having unusual needs. A lot of innovation online doesn't necessarily come from doing things completely differently but rather from finding new applications for the same sort of technology.
posted by Songdog at 11:58 AM on March 28, 2006

nightchrome: I'm sure at least one person wanted nothing to do with antibiotics, either. "Too much hype! Makes me want to puke!" Have fun being reactionary...

BishopsLoveScifi: Rails doesn't have any "security issue," to the best of my knowledge (which is actually pretty good--I've been programming with Rails for 7 hours a day for about 5 months now). It's not supported by many hosts because it requires FastCGI, which hasn't been well-supported by Apache for a while, and can be a pain to configure. This is starting to change, though. DreamHost, one of the largest hosting companies, does Rails just fine.

ijoshua: There's nothing innate in Rails about using GETs for destructive operations. Unfortunately, the default scaffolding (which is definitely a problematic piece of Rails) sets it up as such, and folks who don't know any better get bit by this. As mentioned earlier, there's a big chunk of warning in the Agile book about not doing this, but you can lead a horse to water...

smackfu: Ruby and Rails are well-documented, in the since that just about everything important is described. Unfortunately, its organization is for shit. That needs to change toot sweet.

costas: Monkey-patching loves you too... ;-) (On this point I think we'll just have to disagree, since I love the way Ruby handles class declaration. It makes plugins work like a charm.)

joegester: I've written probably twelve one-off Rails apps by now which are nothing like blogs or forums or the other things you've seen videos of people making with Rails. I've used it for writing glue apps, gateways, shopping carts, management apps, email campaign trackers, etc. If you're fighting the framework, you're probably going about it the wrong way, in my experience. I've found that for every time I've been wrestling with the framework, there was a nice, clean way of doing what I wanted. I won't try to sell you on Rails, as you appear to have made up your mind, but next time please lead with the thoughtful critique, not the hip-level snark.

smeger: The Agile book helps immensely, and the Rails documentation is missing quite a bit as far as pulling the various pieces together and giving a decent overview of the framework. And yes, trying to get it to work with Apache 1.3 is a horrible experience. Trying to get it to work with Lighty is a fresh breeze and a nice iced drink with a lime in it.

Now if you'll excuse me, I'm off to make sure all my stuff works with 1.1. (And if I sound defensive, it's because I really really enjoy working with Rails and I feel that if people understood it better they'd like it too.)
posted by Coda at 12:16 PM on March 28, 2006

Ruby on Rails is nice, but seems kind of hampering in the same way BASIC is when you try to move onto something more complex and useful, like C.
posted by cellphone at 5:51 PM on March 28, 2006

Ruby and Rails are well-documented vs. the Rails documentation is missing quite a bit as far as pulling the various pieces together and giving a decent overview of the framework.
posted by sohcahtoa at 6:01 PM on March 28, 2006

sohcahtoa: The full quote of mine was Ruby and Rails are well-documented, in the since that just about everything important is described. Unfortunately, its organization is for shit. That needs to change toot sweet. (damnit... "sense"...)

If you'd like to get in-depth about this, I've got my own blog. I felt my addition to the thread was long enough without getting into too many details.
posted by Coda at 11:49 AM on March 29, 2006

« Older Gettysburg of the West   |   Wilford Brimley Newer »

This thread has been archived and is closed to new comments