Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Slashdot videos: Now with more Slashdot!

  • View

  • Discuss

  • Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

Programming IT Technology

Ruby on Rails 1.0 Released 332

Posted by ScuttleMonkey
from the web-deployment-made-easy dept.
Simon (S2) writes "Ruby on Rails 1.0 has been released. From the announcement: 'Rails 1.0 is mostly about making all the work we've been doing solid. So it's not packed with new features over 0.14.x, but has spit, polish, and long nights applied to iron out kinks and ensure that it works mostly right, most of the time, for most of the people.' " The Ruby on Rails website has also been given a new look.
This discussion has been archived. No new comments can be posted.

Ruby on Rails 1.0 Released

Comments Filter:
  • by wilburpb (920386) on Tuesday December 13, 2005 @09:30PM (#14252863)
    Perhaps Coldfusion, WebObjects, .net, or J2EE+Struts (depending on your definition of 'commercial')
  • Re:Er (Score:5, Informative)

    by BrynM (217883) * on Tuesday December 13, 2005 @09:33PM (#14252879) Homepage Journal
    Excuse me for sounding dumb, but what is Ruby on Rails? I've heard a lot about it recently, but haven't the slightest clue what it is. A little bit of background would be most appreciated.
    Here's [rubyonrails.org] some fliks to explain.
  • Watch this video (Score:5, Informative)

    by ravenspear (756059) on Tuesday December 13, 2005 @09:35PM (#14252891)
    This [rubyonrails.org] is a 15 min presentation someone did setting up a weblog using it. I think this example better explains it than most descriptions I've read.
  • Re:Er (Score:3, Informative)

    by Btarlinian (922732) <{tarlinian} {at} {gmail.com}> on Tuesday December 13, 2005 @09:36PM (#14252893)

    Excuse me for sounding dumb, but what is Ruby on Rails? I've heard a lot about it recently, but haven't the slightest clue what it is. A little bit of background would be most appreciated.

    Ruby on Rails is a web development framework. It provides a library for Ruby so it can be used with web development allowing it to be used in applications normally reserved for other languages.

    Slashdot's big on this kind of stuff today. First the Java/everything else flamewar and now this (admittedly no flamewar.)

  • Re:"mostly right"??? (Score:4, Informative)

    by quigonn (80360) on Tuesday December 13, 2005 @09:38PM (#14252911) Homepage
    At least it's more honest than the usual "it brings world peace and helps improve your stamina" attitude I see with other frameworks, especially within the Java community (that last clause will probably start off a flamewar :->).
  • Re:Er (Score:2, Informative)

    by noamsml (868075) <noamsml@gmailCOUGAR.com minus cat> on Tuesday December 13, 2005 @09:42PM (#14252926) Homepage
    Ruby on Rails is a web application delvelopement framework built with Ruby. It includes a set of tools to direct and interpert URLs in a smart way, a bunch of database libraries making database backed apps really easy to make, and a bunch of misc tools that help web developers around stuff.
  • by CyricZ (887944) on Tuesday December 13, 2005 @09:56PM (#14252996)
    There is a list of users at:

    http://www.rubyonrails.org/applications [rubyonrails.org]

  • by CyricZ (887944) on Tuesday December 13, 2005 @10:05PM (#14253037)
    Not directly.

    However, many of the problems associated with PHP are just due to flaws in the design of PHP. It's more a case of PHP being worse than it should be, rather than Ruby on Rails being extremely secure.

    That said, most Ruby on Rails-related code is written by far more experienced developers. As would be expected, the quality of the code is higher, and the likelyhood of security issues is vastly reduced. The trend in the Ruby community to heavily use unit testing also helps ensure that quality is a paramount consideration.

  • by rainman_bc (735332) on Tuesday December 13, 2005 @10:06PM (#14253038)
    Ruby on Rails is to mod_ruby what Fusebox is to Coldfusion.

    Coldfusion is a language of itself [albeit a simple one] that runs on top of a J2EE engine called Jrun... /me = coldfusion person (I also know and use ruby a lot, and am working on learning RoR)
  • by kstumpf (218897) on Tuesday December 13, 2005 @10:14PM (#14253067)
    This is an MVC framework for Perl that resembles RoR in a lot of ways.

    http://catalyst.perl.org/ [perl.org]

    It's very nice so far, especially the controller portion. There's lots of addons and plugins for it, all of which are entirely optional. It's actually very open-ended and easy to extend.

    I use the controller classes extensively, but write my own model, view, and support classes. Catalyst culture seems to encourage Class::DBI parentage as a base model class, but it's simple to roll your own (I hate CDBI, so I based mine on Ima::DBI instead). Your classes can work independently of Catalyst... it imposes no restrictions or inheritance constraints on you. Worth checking out.
  • by mixonic (186166) on Tuesday December 13, 2005 @10:28PM (#14253130) Homepage
    I heartily suggest that the curious among you check out http://tryruby.hobix.com/ [hobix.com]. It's a great, quick interactive introduction to ruby. You can kick around the tires (so to speak) without needing to do anything more than visit the webpage. It's a great language with or without rails.

    Also a great example of Ajaxy goodness, not to buzzword it too much. It's written by the affluent and creative why. Check out his neat-o blog too: http://redhanded.hobix.com/ [hobix.com]

  • Re:Web 2.0, Baby! (Score:2, Informative)

    by mixonic (186166) on Tuesday December 13, 2005 @10:39PM (#14253180) Homepage
    Actually, the new design is the opposite of pastels and rounded corners, it's alot of empty whitespace and Georgia font. Being web 1.0 is so web 2.0.

    (I actually like the old design more ;-), was I too obvious? )

  • by wyldeone (785673) on Tuesday December 13, 2005 @10:41PM (#14253188) Homepage Journal
    The main problem I see that's keeping mass adoption is ease of installation of rails apps. PHP apps are extremely simple to install. Nearly all hosting providers support it, and installation is usually comprised of uploading some files to a directory and running an install script. For RoR apps, much special configuration is needed. Even at progressive hosts that have RoR installed, like dreamhost and textdrive, people are currently having immense difficulty getting RoR apps working (look at all of the topics in their respective forums.)

    As a developer RoR is a godsend, and compared with PHP development is incredible. But developer hapiness doesn't drive user adoption. Unless some things majorly change, I can't really see RoR catch on as a consumer technology, rather like the situation with J2EE today. But I can see it usurping the place of technologies like J2EE and .Net in the enterprise.
  • by sammy baby (14909) on Tuesday December 13, 2005 @10:44PM (#14253199) Journal
    That's actually kind of inaccurate, if I understand the situation correctly.

    mod_ruby is apparently a very limited way of embedding ruby code inside a web page, a la mod_php and the PHP language. Ruby on Rails works through the use of a CGI (or, preferably, a fast_cgi) script called the Dispatcher, which is (unsurprisingly) written in Ruby. The dispatcher handles the translation of requests and URIs to the code you've written using Ruby and the Rails framework.

    It would be more accurate to say that Ruby is to Rails as PHP/Coldfusion is to Fusebox.
  • Re:When? (Score:4, Informative)

    by w42w42 (538630) on Tuesday December 13, 2005 @10:49PM (#14253224)

    If you have to use Java, a copy-cat framework for Java is Trails [java.net]. The linked articles make it look pretty impressive.

    Another relatively unknown java framework I've flirted with very recently is Stripes [mc4j.org]. It's claim to fame is that its configuration is annotation based. Dev consists of the view and action, no worrying about an xml file to sync between the two.

  • by richieb (3277) <richieb@gmail.cWELTYom minus author> on Tuesday December 13, 2005 @10:51PM (#14253233) Homepage Journal
    It's hard to get excited about any tool based on Ruby because it inherits so much confusing syntax from Perl.

    Where did you get this impression? Maybe because you saw some regular expressions in Ruby? Ruby syntax is much, much clearer than Perl.

    Take a look here [rubyist.net]

  • My Fucking God (Score:1, Informative)

    by Anonymous Coward on Tuesday December 13, 2005 @10:59PM (#14253267)
    No wonder some people refuse to use Rails... It's bloody fucking hard to install. I've been trying to install the damn thing for over 2 hours now. suPHP is a fucking walk in the park compared to this.
  • by prockcore (543967) on Tuesday December 13, 2005 @11:08PM (#14253304)
    Does anyone have any experience or views deploying a medium/high volume commercial or enterprise solution using this?

    I personally don't, but BaseCamp is written with RoR.. it's pretty high volume commercial site.

    Penny Arcade is now on RoR.
  • by draed (444221) on Tuesday December 13, 2005 @11:16PM (#14253331)
    >>The biggest annoyance was automated code generation

    You mean the scaffolding functionality? That's a very very small part of Ruby on Rails and It's one of the most useless ones. Most of the knowledgeable Rails programmers don't use scaffolding at all. It's great for a quick CRUD prototype, but that's about it.

    That's the *only* code generation going on in rails.
  • by Inoshiro (71693) on Tuesday December 13, 2005 @11:17PM (#14253333) Homepage
    Basically, Ruby on Rails saves you lots of hassle.

    About 5 years ago, if you wanted to make a blog, you'd sit down and design a database schema. You'd design a controller that would have certain actions. You'd write a bunch of templates that would have variable locations. You'd extend the controller to use these templates from the db to make views. You'd write pages which allowed editing of these values. You'd write code for sanity checking. You'd write unit tests. You'd do everything over again that you'd done before.

    Slashcode, Scoop, you name it -- they were all written through the same ideas.

    Ruby on Rails makes all the redundant parts go away. In the video (which I just watched, and finally gives me a compelling reason to learn and use Ruby), the person sits down and generates a basic controller for their blog. They then show that the basic templates generated will show text. It takes another 5 minutes to define a db called posts and generate a default action for it. The code is smart enough to just directly make the things like title and body editable widgets on the page. 5 minutes to have posted blogs!

    Then the video takes 5 minutes to extend this by writing about 15 lines of code. This has a big effect: the listing of posts is abstracted out into a block that can be included in any page. The ordering is reversed. The title attribute is made a required field.

    But what good is a blog without comments? In the final 5 minutes, the author quickly adds a comment table, generates a comment controller, says that posts own comments, sticks in 3 lines of code in the post view segment which do a foreach associated comment, display, and then adds a page to edit comments. They also (at the same time) show us the basics of the unit-testing framework you get "for free" (the basic test is return true, but he changed it to test if the comment post code worked with another 4 lines of code).

    The entire thing took 15 minutes to write and had 58 lines of code. When the db schema changed, the code adapted -- the programmer did not have to rewrite the code. When the programmer wanted to change anything, the code would quickly bend itself to the task.

    I dare say it's the sexiest thing I've seen yet. If they ever release a version 2 that allows for simple Javascript on the client for AJAX interfaces, there will be only 1 game in town for web development!

    I'm not inexperienced in web design. I have written my own stuff to test ideas out, as well as participated in Scoop's development to a degree. Recently I've been playing with Drupal because all the basics are setup with it, and you can just extend it with modules. I can honestly say that while it took me an hour to setup Drupal (and another hour to get it completely to how I liked it) it a test config, I could probably replicate the base distribution plus the modules I use in Ruby on Rails within a day -- maybe 2, if I'm slow. It's that effective!
  • by Serveert (102805) on Tuesday December 13, 2005 @11:33PM (#14253417)
    ROR has been compared to hibernate+struts, in fact I believe much of the motivation behind ROR was to create a more full featured hibernate solution.

    ROR isn't as mature as j2ee struts+hibernate but it will be soon. ROR has tons of potential.
  • by Watts Martin (3616) <layotl@gmai[ ]om ['l.c' in gap]> on Tuesday December 13, 2005 @11:37PM (#14253448) Homepage
    While you're right, that tutorial is actually embedding a ruby interpreter on the web page. I don't think it's 'Ajax' that's as much at fault here as the fact that this is doing stupid web browser tricks that, in this case, just happen to be done with Ajax. :)

    IIRC, there's a tutorial out there somewhere telling developers how to make Ajax-happy applications that don't break the BACK button and are bookmarkable.
  • by Anonymous Coward on Tuesday December 13, 2005 @11:38PM (#14253454)
    Actually, more and more people are moving to using DBIx::Class, which is both substantially faster and ridiculously more powerful than Class::DBI. Even has a maintainer who hangs out on the #catalyst and #dbix-class irc.perl.org channels answering questions from users ...
  • by Anonymous Coward on Wednesday December 14, 2005 @12:35AM (#14253738)
    Dear idiot,

    PHP is not insecure.

    Ruby on Rails is not proven secure.

    If Ruby on Rails gets popular, people will find security holes in it.

    There was a major security hole (undisclosed) in one of the web applications created by the company that pimps^H^H^H^H^H"sponsors" Ruby on Rails.

    Does that mean Ruby on Rails is insecure? No. But it goes to show that there is no inherent "security" in anything.

    It's the application, stupid.
  • by ArikTheRed (865776) on Wednesday December 14, 2005 @12:46AM (#14253790) Homepage
    Penny Arcade (http://www.penny-arcade.com/ [penny-arcade.com] is arguably the highest-traffic site running on Rails. Its design is fairly simple, but it is at least a good example of the loads it can handle (hardware be as it may, scalable is scalable).
  • Nitro? (Score:3, Informative)

    by Colonel Panic (15235) on Wednesday December 14, 2005 @01:02AM (#14253873)
    Rails isn't the only Web app devel framework that Ruby has... It's just that Rails is getting all of the attention. Some folks prefer Nitro [nitrohq.com] over Rails.
  • by Anonymous Coward on Wednesday December 14, 2005 @01:46AM (#14254078)
    Is CF still being used? Absolutely. I work for a fortune 100 company. My department (15 people + a handful of contractors) all work on one project, and that project is implemented in Coldfusion (though I'm the only one who actually does any CF dev work, my coworkers are writers, graphic designers, businees analysts, etc.) We looked at using JSP, .net, PHP, etc. but eventually decided on CF (money wasn't a factor - CF is actually rather expensive so I would never choose it for personal use due to it's cost, but when the company is footing the bill...). We haven't regreted the decision yet. It's is absolutely an outstanding piece of software.
  • Easy installation (Score:4, Informative)

    by mortonda (5175) on Wednesday December 14, 2005 @01:51AM (#14254096)
    For a window platform, download Instant Rails [rubyforge.org]

    Or for linux, install mod_scgi [mems-exchange.org] and follow the instructions here [rubyonrails.com]

    It's stinkin' easy, I can do it in about 5 minutes. Any hosting admin worth their salt can even script it in about 10 minutes.
  • by l00k (910333) on Wednesday December 14, 2005 @04:43AM (#14254680)
    I love it's lack of "funny" characters (for the most part).

    if you're referring to a lack of odd people in the ruby community you'll be horrified to know there's many.

    thanks for your post, all valid opinion .. i just suspect you're one of these highly intelligent programmers that trip over some minor features you find annoying and then blow your frustrations out of perspective.

    (anyone who's farmiliar with rails will understand the underscores)

    granted some of the method names are overly verbose! i've thought that often when looking through the APIs and docs. but that criticism needs to be tempered by pointing out the verbose methods are used very infrequently. 99% of the methods i use are small and concise, like: truncate(), h(), link_to(), redirect() etc.

    The biggest annoyance was automated code generation

    see this i'm finding hard to understand. when i want to start a new model and controller, i type a line in a prompt, and it makes the few files i need to begin. 'begin' being the operative word. there endeth the code generation.

    my method of automated code generation is copy and paste.

    If I made changes to the database, I either had to a) wipe the directory and start over reimplementing my changes. Or b) go through all the MVC code and find the references to the database

    i've NEVER experienced this. never never never. and i have no idea what you're talking about. one of the real clinchers of rails for me is its use of ActionRecord to interface with the database. i modify my database constantly without breaking any code. the only case i can think of when what you describe could happen is if i were to rename a column in the database, then my row.name object wouldn't match. but i would consider a broken website due to this the fault of a stupid developer.

    to be able to connect to my database, retrieve a record and update it, in 1 line in some cases, becomes rather neccessary for a developer once they've tried it.

    Mydb.update(id, :name => 'John')
    will do all of these. i take a wee dance on the grave of large-scale php development everytime i use that.

    But I'd like to see the video of someone doing a large project in rails

    and here is where i'm convinced that you are what i think you are (an intelligent programmer who's taken big issue over minor irritations). large scale use of rails is very easy to find [rubyonrails.org] if you visit the rails site . It's also very easy to find a larger list [rubyonrails.com], and a list of interesting apps [rubyonrails.com] to boot. granted, not moving pictures, but .. oh go away.

  • by Anonymous Coward on Wednesday December 14, 2005 @04:58AM (#14254728)
    i take it i should stick to a very solid LAMP base then look into ruby on the rails once i have some real code under my belt? make sure i don't learn some trendy language that dies in a couple years? and i assume this isn't a good language for someone with very little (essentially no) experience to jump into and try to learn?

    I dunno, I don't think it's worth starting at the end : ) Ruby is a very nice clean language, and rails builds on that. Ruby isn't going away any time soon - Python and Ruby will probably supplant a lot of Perl over the next 10 years. I'd say you'd be better learning one of them rather than PHP, as you won't learn bad non-oop habits before tackling oop (which really isn't as hard a concept to grasp as people make out). Have a look at this tutorial for a flavour of what Ruby can do.

    I'd say Ruby is the ideal beginners language.

    http://tryruby.hobix.com/ [hobix.com]

    try 2+ 2
    then perhaps

    zoo = "ardvarks " * 5
    zoo << "parrots " * 2
    zoo.include? "ardvarks"

    Rails performs operations server-side which spit out html/xml whatever, just like PHP, however it separates out the programming stuff from your html templates, and the programming from the database stuff, so that you don't end up with a mess of code and sql and html at the end. You'll need to know about the Model View Controller paradigm (worth reading up on this). Basically

    Model - Database wrappers
    Controller - Programming
    View - HTML templates

    You need to install a database (take your pick), then you edit the config file to point it to your database.
  • by pkphilip (6861) on Wednesday December 14, 2005 @09:09AM (#14255574)
    Please check out http://www.webwareforpython.org/ [webwareforpython.org] - it is another framework which I haved used and it is quite good.

    Turbogears is similar in many ways to Webware, but there is a bit more setup involved. Atleast I had some trouble with that but this may not be the experience of others.

    Between RoR and django - I prefer django because it can generate the database directly from the Model source code unlike in the case of RoR where it is a bit more involved. Django also generates (optionally) a good administration area which is quite usable even on a production environment; this is also lacking in RoR.

    In the end, I prefer Webware over the rest because it gives me a whole lot more flexibility than either RoR or Django (I haven't used Turbogears a lot, so I can't comment much on that). Webware is closest to the J2EE style of functioning but yet stays clear of J2EE's idiosyncrasies. Also, there are more web hosts supporting python than Ruby and that kinda rules out RoR for most of the work I do.
  • by rheotaxis (528103) on Wednesday December 14, 2005 @09:30AM (#14255723) Homepage
    So far, I love Rails, because I have done the following, with these initial costs:
    1. new domain name, $5/year
    2. Rails host acct, $12/year
    3. my time spent, about 6 to 10 hours a week for last 2 months

    Installed Rails Apps (open source): (sorry, no links to my domain, must avoid /. effect):
    • blog at my own domain using typo [leetsoft.com]
    • agile, extreme programming management tool using eXPlainPMT [explainpmt.com]
    • a to do list using Tracks [rousette.org.uk]
    • content management system using MuraveyWeb [muravey.net] CMS

    How is this different? I only worry about one Terms of Service, imposed by the web host. I control all aspects of the deployment of the Rails apps. So the blog is not just my blog, its a blog at my domain (or sub-domain if I perfer), and I control the databases that store its content. In fact, I control every aspect of the blog. For instance, I could make the blog appear and disappear based upon phases of the moon. Can you do that with any blog host, just by changing two links at a shell prompt?

    The same goes for every other Rails app I have deployed on my server account. The Rails principles of "don't repeat yourself" (DRY) and convention over configuration, meant that once I installed one Rails app, the experience was immediately applicable to installing the rest. They all have the same directory structure, and the same configuration file for database connection, which is the only configuration file you must edit.

    The rest just works, usually. You have to check your versions, and make sure your app and Rails work at the current version. I admit I have experience building server side web projects using VB6 DLL and ASP.NET, along with equally strong UNIX background, so I was able to tweak a few things and proceed when they didn't work the first time. Don't dispair, I was able to make it work after a few hours of checking on-line forums, and trying some suggestions.
  • by krmt (91422) <therefrmhere@NOspAm.yahoo.com> on Wednesday December 14, 2005 @09:38AM (#14255788) Homepage
    It's funny, I thought this too when I first started playing with ruby. But once I actually started using the language I found that I wrote in it completely differently than perl. Closer to what little python I had written actually.

    Ruby looks like perl because it uses the $ and @ prefixes, but it uses them for completely different purpose: in perl they denote type where in ruby they denote scope. This turns out to be a nice feature, since you should be using some sort of notation in your variable names to denote scope anyway. It also permits the concept of duck typing throughout the ruby community, which is a key feature in making the language natural and easy to use.

    Furthermore, people tend to write ruby with a lot more OO than in perl. Again, much closer to python.

    Finally, good ruby code uses blocks everywhere. You can do code block-like things in perl or python, but in ruby it's very simple, fairly clean, and a very natural part of the language. I think this is what really distinguishes ruby from python fundamentally as a language. RoR, like any app written in a ruby style, makes extensive use of this feature and it allows some of the things that make people so excited about rails.

    Oh, and the culture of the ruby community is such that people tend to write code that's fairly consistent between authors. Python is similar, although this seems to be more a function of the language itself than the community's culture. Perl's culture, on the other hand, encourages creativity and variety between authors, making it hard to read other people's code unless you know most of the camel book. I've never had any trouble reading someone else's ruby code, and I know about as much ruby as I know perl.
  • by jaydonnell (648194) on Wednesday December 14, 2005 @12:35PM (#14257301) Homepage
    If I made changes to the database, I either had to a) wipe the directory and start over reimplementing my changes. Or b) go through all the MVC code and find the references to the database.

    Can you give an example? I've used rails for atleast 5 different web apps and I've never had this problem. If you have a table called 'item' with a fields called 'price' then you have an object in rails called Item with a method called 'price' and you use it with: Item.price Seems straight forward to me and if you add a column called 'sale_price' to your table then your Item.price line doesn't need to be changed and you can automatically use Item.sale_price

When the weight of the paperwork equals the weight of the plane, the plane will fly. -- Donald Douglas