Slashdot Mirror


Ruby on Rails 1.0 Released

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.

79 of 332 comments (clear)

  1. Commercial equivalent is...? by cytoman · · Score: 4, Interesting

    When talking about commercial software like MS Office, we talk about the "Open source equivalent" OpenOffice.org and stuff like that. I'm curious to know whether there is a commercial equivalent to Ruby on Rails.

    1. Re:Commercial equivalent is...? by wilburpb · · Score: 5, Informative

      Perhaps Coldfusion, WebObjects, .net, or J2EE+Struts (depending on your definition of 'commercial')

    2. Re:Commercial equivalent is...? by rainman_bc · · Score: 3, Informative

      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)

      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    3. Re:Commercial equivalent is...? by sammy+baby · · Score: 2, Informative

      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.

    4. Re:Commercial equivalent is...? by Serveert · · Score: 3, Informative

      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.

      --
      2 years and no mod points. Join reddit. Because openness is good.
  2. It just works... mostly by cerelib · · Score: 4, Interesting

    Screw that overstated "It just works" stuff. I like the truthfulness of their statement, "it works mostly right, most of the time, for most of the people"

    1. Re:It just works... mostly by Red+Flayer · · Score: 2, Funny

      Mostly right (50.01%) * Most of the time (50.01%) * most of the people (50.01%) = 12.50%.

      I'm not sure I'd want a product that is stated to work a minimum 12.50% of the time.

      Either that, or maybe I need to not take the worst-case-scenario when listening to product descriptions -- though it's worked for me in the past.

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
  3. Er by Trip+Ericson · · Score: 4, Interesting

    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.

    1. Re:Er by BrynM · · Score: 4, Informative
      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 some fliks to explain.
      --
      US Democracy:The best person for the job (among These pre-selected choices...)
    2. Re:Er by ucahg · · Score: 2, Funny

      Ruby on Rails is a fantastic new software-only method of transferring precious stones between countries, states, provinces, cities, and territories via train. .. .. ..

      Or you could just go to the ruby-on-rails website instead of asking for some random's opinion on slashdot.

    3. Re:Er by Btarlinian · · Score: 3, Informative

      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.)

    4. Re:Er by noamsml · · Score: 2, Informative

      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.

  4. Re:"mostly right"??? by Tyler+Eaves · · Score: 4, Insightful

    I'd prefer to look at it as honesty.

    --
    TODO: Something witty here...
  5. Watch this video by ravenspear · · Score: 4, Informative

    This 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.

    1. Re:Watch this video by Matt+Perry · · Score: 3, Interesting

      Since the web site is slashdotted (and the video too) could you explain what it is and why someone would want to use it?

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    2. Re:Watch this video by chris_eineke · · Score: 2, Funny

      Okay now. That were 120 characters.

      Seriously, would you rather type 120 characters than punching in CTRL+T TAB r u b y SPACE o n SPACE r a i l s ENTER TAB*17 ENTER? That's only 33 key presses and at the end you'll know what RoR is.

      Don't tell me you're still sitting on you chair wondering. Gee.

      --
      "All you have to do is be fragile and grateful. So stay the underdog." Chuck Palahniuk, Choke
  6. Re:"mostly right"??? by sterwill · · Score: 2, Insightful

    How would you describe the software you write?

  7. Re:"mostly right"??? by IAmTheDave · · Score: 4, Insightful
    "mostly right, most of the time, for most of the people."??? Is this the standard by which the Ruby community judges software goodness? I'm speechless.

    Yeah, it's not great, but at least it's honest. Go on any developer site - MSDN, java.sun.com, whatever, and you'll see a nice long list of submitted bugs. Fact is, no software is perfect, so don't go crazy when they admit there might be uncaught bugs.

    --
    Excuse my speling.
    Making The Bar Project
  8. When? by E+IS+mC(Square) · · Score: 3, Interesting

    Agree that Ruby on Rails has got some traction. But when would it get enough traction to be used as a standard framework for web apps at enterprise level?

    I am working in tech division of a financial firm, and I put question to our big app dev group if anybody had worked on RoR for a project - and most people had no idea what I was talking about.

    Please note that right now almost everybody in the firm uses java/j2ee - for everything - even for batch processing which can be easily done with simple perl scripts!

    1. Re:When? by w42w42 · · Score: 3, Informative

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

      Another relatively unknown java framework I've flirted with very recently is Stripes. 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.

  9. What Ruby on Rails is ... by Anonymous Coward · · Score: 2, Funny

    It's a new kind of digital "red" cocaine, made by processing coca leaves with iron phosphate and coating the result with a light silicone mist on which nano-transistors can be printed. The resulting product produces, when smoked or inhaled -- hence the "rails" component of the name -- a new style of e-high, where you're able to either interface hallucinogenic side effects with your iTunes graphical output, or you can join any IP-based E-HI network and select topics for your stoned brain to mull over. Watch out for the latter because, dude, the term "flame" takes on a *whole* new meaning.

    Anyway, go to http://www.rubyonrails.org/ and see if you want to take part. It's amazing, and you'll definitely want to get in on it before the Bush administration starts taxing it or something ...

  10. compatibility by Douglas+Simmons · · Score: 3, Interesting

    I'd figuratively pee on my copy of Macromedia Flash if I knew a Blender 3D plugin had proliferated widely -- meaning if IE bundled it. Is this language/framework's new thinking done on the server side and to the clients it'd be business as usual, great, I'll put down my php book. What's the deal in this regard?

  11. Re:"mostly right"??? by quigonn · · Score: 3, Informative

    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 :->).

    --
    A monkey is doing the real work for me.
  12. A better solution than PHP. by CyricZ · · Score: 3, Interesting

    Ruby on Rails provides a far superior solution for web sites than PHP in many cases. It would be excellent if it ended up usurping PHP for most PHP-based sites.

    PHP's bad reputation with regards to its security is, unfortunately, harming the open source community. Managers who are considering switching to open source solutions are hearing about the security flaws in PHP, and mistakenly thinking that Apache, MySQL and Linux are insecure (due to the popular 'LAMP' association). Of course, that isn't the case by a long shot.

    Regardless of what people switch to, the main focus needs to be on moving away from PHP. Ruby on Rails provides a rapidly maturing alternative for building all sorts of web sites.

    --
    Cyric Zndovzny at your service.
    1. Re:A better solution than PHP. by j1ggl3x · · Score: 2, Insightful
      Ruby is a scripting language.
      PHP is a scripting language.

      Rails is a MVC framework built on Ruby.
      PHP is NOT a framework.

      If you feel like comparing/extolling the virtues of RoR compared to PHP, then try to at least be logical enough to compare RoR to a MVC framework built on PHP. There are several (though none as popular as RoR at the moment). Some are trying to imitate Struts and others trying to mimic RoR.

      In fact, Zend is quite aware of RoR's popularity is in the process of creating its own framework to compete: the Zend Framework.

  13. Re:"mostly right"??? by CyricZ · · Score: 3, Insightful

    That's a far higher standard than you'll find used by most commercial developers.

    Remember, Ruby is at the forefront of the agile development community. Many developments in unit testing, for instance, directly involve Ruby. Ruby developers are often the most experienced at effectively employing such development techniques.

    And you know what? It shows. Ruby software is often of extremely high quality. It's not perfect, but there is much effort taken to ensure correctly-functioning code.

    --
    Cyric Zndovzny at your service.
  14. Re:"mostly right"??? by Tyler+Eaves · · Score: 3, Insightful

    ANYONE who claims everything works perfectly is a lying sack of shit. It's as simple as that. The only way to come anywhere close to being able to make that claim would be to heavily qualify it, e.g., With Database X on OS Y, version Z, and library versions A, B, C, on hardware platform D. Anything more broad than that is just not a valid claim.

    --
    TODO: Something witty here...
  15. Commercial/Enterprise use? by feNIX77 · · Score: 4, Interesting

    I've heard plenty about RoR on Slashdot - but to be honest, thats about where it stops. Does anyone have any experience or views deploying a medium/high volume commercial or enterprise solution using this?

    I have yet to personally see RoR in either situation and I don't know anyone who has - I'm not knocking RoR, just curious how it's actually being used.

    1. Re:Commercial/Enterprise use? by CyricZ · · Score: 5, Informative

      There is a list of users at:

      http://www.rubyonrails.org/applications

      --
      Cyric Zndovzny at your service.
    2. Re:Commercial/Enterprise use? by prockcore · · Score: 2, Informative

      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.

    3. Re:Commercial/Enterprise use? by ArikTheRed · · Score: 2, Informative

      Penny Arcade (http://www.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).

    4. Re:Commercial/Enterprise use? by Anonymous Coward · · Score: 2, Insightful

      That's not exactly a flattering list for something that has been available for a year or longer and has been constantly thrown in the faces of developers for that long.

      The funny thing is, all those applications look *exactly the same*, and have no functionality what-so-ever (with the exception of Odeo.)

      Wow, a bunch of <li>'s on a page. That's never been done before.

      You've posted about 50 times in this topic, all with an anti-PHP slant.

      Please, stop posting crap.

      You're not convincing anybody and you sound like an on-going advertisement.

      If Ruby on Rails was that great anyone who would have wanted to switch would have done so by now. It's been advertised enough. It doesn't need a cult-like following -- "use Ruby on Rails and you get to be one of the cool kids."

      Having used Ruby on Rails, I can tell you that it's really not worth the hype. It brings nothing new to the table, it doesn't really improve development times at all (if you, you know, actually try to implement something full-featured), and it's 50-100x+ slower than a comparable PHP or Java Servlet implementation.

      The reason Ruby on Rails is somewhat popular within the blogosphere is this: it allows designers with no programming knowledge to create something with relative ease. That's about it. This used to be the role of PHP, and outside the blogosphere, it still is.

      Oh, that, and (once again) the constant, tired, shameless promotion.

  16. Jebus, has the poster or mod ever used rails?????? by porkThreeWays · · Score: 3, Insightful

    The point of rails is to have sensible defaults that work most of the time. Web apps share A LOT of commonality. The idea is to take out repitiveness as much as possible. This is done with sensible defaults. If these aren't good for you, they can be changed. But it's meant to have reasonable defaults for most, unlike certain web languages that make you start from scratch every time.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
  17. New Look? by bullitB · · Score: 4, Funny

    The Ruby on Rails website has also been given a new look.

    Would that be the "Service Unable: Damn You Slashdot" look?

  18. Re:Ruby on Rails more "secure" than PHP? by CyricZ · · Score: 3, Informative

    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.

    --
    Cyric Zndovzny at your service.
  19. Perl people, check out Catalyst by kstumpf · · Score: 5, Informative

    This is an MVC framework for Perl that resembles RoR in a lot of ways.

    http://catalyst.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.

    1. Re:Perl people, check out Catalyst by CyricZ · · Score: 2, Interesting

      A lot of people have begun moving away from Perl due to the slow development of Perl 6. Many are moving towards Ruby, which has drawn features and functionality quite well from Perl, and is currently moving at a quicker pace.

      Now, that's not to say that Perl 6 may not encounter some degree of success in the future. Perl will most likely always have its users.

      What the Perl 6 community might want to focus on now is developing the technology that will come after Ruby on Rails. Getting a step ahead in the web development arena may help bring users back to Perl from Ruby, Python and other languages and frameworks.

      --
      Cyric Zndovzny at your service.
    2. Re:Perl people, check out Catalyst by Anonymous Coward · · Score: 2, Informative

      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 ...

    3. Re:Perl people, check out Catalyst by mini+me · · Score: 2, Funny
      Okay, I did just that.

      The results:
      Perl - 9 jobs
      Ruby - 10 jobs + additional pages that I didn't bother counting
      Then again, it was a Ruby job site...
  20. You speak of momentum. by CyricZ · · Score: 4, Insightful

    Only an individual new to the computing industry would put much faith in "momentum".

    I've been around it for decades. I remember when Honeywell and Data General had "momentum". I'd be surprised if you've ever even seen a picture of their hardware.

    A bit later there was CP/M. And Apple. Apple had much "momentum" in the 1980s, only to almost hit rock bottom. At least they've been able to pick themselves up again.

    There was even talk this morning about Java losing its "momentum".

    Ruby on Rails could very well overtake PHP quite quickly.

    While some onus does rest on developers to develop quality code, that does not mean that the language and any implementations should not take steps to limit the ability of the programmer to write faulty code.

    That holds especially true for languages that are used in hostile environments, such as the WWW. Considering that Web development is touted as PHP's strong point, one would think it would have excellent security. Of course, we know from experience that that is not the case.

    Ruby won't necessarily make your code perfect. But Ruby, along with sound development techniques (unit testing, for example), will result in very secure applications. The use of PHP, on the other hand, is basically an invitation for security issues. It is not a well designed language, and it is not well implemented.

    --
    Cyric Zndovzny at your service.
  21. Give ruby a quick try first by mixonic · · Score: 5, Informative

    I heartily suggest that the curious among you check out http://tryruby.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/

    -mix

    1. Re:Give ruby a quick try first by Matt+Perry · · Score: 2, Insightful
      I heartily suggest that the curious among you check out http://tryruby.hobix.com/
      That web page is neat but it's a perfect example of why I'm starting to dislike all this "AJAX" stuff. Nowhere in that tutorial is there any navigation to help me go back if I want to review something again. I hit the back button and it brought me back to your comment, not where I expected to be. I don't know how other people feel but in my opinion breaking the user's back button is the worst web UI mistake that you can make. The URL also never changes. I can't bookmark the tutorial and pick it up later from where I left off.

      AJAX is nice for doing things like google suggest or scrolling around google maps, but the moment I submit something, like hitting return on that site, my history should update and I should be on a new page. When I hit the back button I should be back where I just was. That's my expectation.

      I'm afraid of what's going to happen to web pages in the next few years. AJAX is something shiny and new that everyone wants to start using for the sake of using it without considering the expectations of usability that have been established by over a decade of browser use.

      Anyway, just my two cents, FWIW.

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    2. Re:Give ruby a quick try first by DeafByBeheading · · Score: 2, Insightful

      Nice, but it's definitely geared to someone who's never written more than a couple dozen lines. This seems to be true of programming languages in general--no decent language overview available unless you're *really* starting from scratch... I learned Scheme and Java this way, and that was fine, but a few languages later now, it's getting old... I want more than a language reference but less than a thousand-page primer.

      --
      Telltale Games: Bone, Sam and Max
    3. Re:Give ruby a quick try first by Watts+Martin · · Score: 2, Informative

      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.

    4. Re:Give ruby a quick try first by BioCS.Nerd · · Score: 2, Funny

      That is one of the coolest things I've ever seen in my life! Thanks for the link

  22. Why rails annoys me... by porkThreeWays · · Score: 5, Interesting

    I love Ruby. Once I discovered Ruby, it's become my prefered general purpose language. I love the fact it's a pure object oriented language. I love it's consisiveness. I love it's lack of "funny" characters (for the most part).

    I freakin' can't stand using Rails. I remember getting very excited about it when I first discovered it. Watching apps being developed in 15 minutes. I read all the tutorials. I even bought the book from pragmatic programmer. I studied and wrote programs for 3 weeks. And I just could never get into it. On so many occasions I just felt cheated. It was all valid ruby code, but it just didn't seem in the spirit of ruby. My namespace was cluttered with a million methods. The names of which didn't seem logical and_reminded_me_of_php_function_names_rather_than_ an_object_oriented_language (anyone who's farmiliar with rails will understand the underscores). During those 3 weeks I just couldn't enjoy programming and couldn't get into it. I tried 2 more times over the next 2 months to try it again, but the same thing.

    The biggest annoyance was automated code generation. It was almost pointless for me. 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. Well, this is what I have to do in most other web languages anyway! So what's the advantage? Scaffolding was great at this because it did everything dynamically. However, you can't reasonably keep the scaffolding because it's not meant to be your program. It's meant to be support around your program.

    The experience seemed more like programming in php with a twist of mod_perl. All the reasons I wanted to get away from perl and php for web programming were back when I tried to write a large application. Rails just doesn't seem in the spirit of Ruby. It's not bad. Don't get me wrong. But it's not this revolutionary framework so many people would have you believe. Sure, it's great to show the 15 minute video. But I'd like to see the video of someone doing a large project in rails.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
    1. Re:Why rails annoys me... by onlyjoking · · Score: 5, Interesting

      Rails seems to be to web development what Dreamweaver is to HTML authoring. Nice and visual at first then you discover how it starts to get in your way. Give me Perl and Emacs any day.

    2. Re:Why rails annoys me... by draed · · Score: 2, Informative

      >>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.

    3. Re:Why rails annoys me... by pkphilip · · Score: 3, Interesting

      I think this is a problem with ALL frameworks which try and do a lot of automatic code generation - if you want any modifications done, it becomes really difficult. All high-level frameworks are written optimized for a certain type of solution and if what you are trying to do does not fit into that style perfectly, you are going to have some real problems. This is true for RoR, Django, Turbogears, and most software.

      This is one of the reasons J2EE still exists - individual components of it do a lot, but you will need to spend the time to put all of those together and make them work together. But J2EE has a few design faults and looks like it was designed by a committee more concerned about "Descriptive" programming than about getting software developed. This makes J2EE a pain-in-the-ass to work with.

      A simplified version of J2EE - with a minimal number of crappy XML descriptor files will be a good base framework.

      A fairly good framework which I use is Webware for python - it does not generate a lot of code and stuff, but it provides the essential mechanisms which you can use for getting the work done. It will take longer to code in than RoR but it is far more flexible and is kinda similar to J2EE but without the crap. http://www.webwareforpython.org/.

      The only problem with using Python, Ruby etc is that as they are not strongly typed, you will not find out some problems at compile time and these problems will only show up at runtime, unlike in Java.

    4. Re:Why rails annoys me... by l00k · · Score: 4, Informative
      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 if you visit the rails site . It's also very easy to find a larger list, and a list of interesting apps to boot. granted, not moving pictures, but .. oh go away.

    5. Re:Why rails annoys me... by xteddy · · Score: 2, Funny

      Yeah, I hear a lot of Anonymous Cowards are switching to Python recently.

    6. Re:Why rails annoys me... by lambdahead · · Score: 2, Interesting

      You are very much correct.

      Also, RoR's ORM does not play nicely with stored procedures. Bring this up to any die-hard Rails fanatic and they will start spinning: "You don't need it! Stored procedures are satanic and force business logic into the data store."

      Which makes me think that most RoR pushers don't have experience with large corporate DBs.

      A nasty side effect of RoRs current popularity is that it completely overshadows some very good Ruby web frameworks such as IOWA and Amrita

    7. Re:Why rails annoys me... by lambdahead · · Score: 2, Insightful
      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.
      But what if you are working with 4 developers and 4 DBAs? And all data is accessed through stored procedures? Anytime I bring this up, I am usually met with "oh, well you know RoR isn't a perfect fit for *every* project."

      So what is it a fit for? Folks push it as a J2EE killer but under pressure start saying it's more suitable for things like "Name a Star for your Pet" website.

      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.
      And any coder of any talent would have already created the routine as part of their toolbox for their language of choice. It is one of the first things I write for any new language that I use in a datacentric project.

      large scale use of rails is very easy to find if you visit the rails site . It's also very easy to find a larger list, and a list of interesting apps to boot. granted, not moving pictures, but .. oh go away.
      When I see a company with > 50 million USD in revenue using it for mission critical apps, I'll sit up and pay attention. Until then, it seems best suited for "10 Things To Do Before I Die" type websites.
    8. Re:Why rails annoys me... by TrekCycling · · Score: 2, Interesting

      The autocode generation is meant only to be used initial. Eventually it's usefulness goes away, obviously. So I don't know if I'd find fault with that, personally. My biggest problem is that it relies on FastCGI which blows hard. I've been trying to get that setup, in part to test how easy getting a production environment of rails going is.... um... yeah... not going so well. At least with Tomcat or JBoss you can up and running in minutes. You may not be able to developer your app "10x FASTER", but at least you don't have to fight to get the app server running.

      I like rails overall, though. I think it needs a better server than "use Apache and tie it to Fascgi". And I do think it's a bit overhyped, especially when you hear people talk about replacing Java with it. The idea of making software development more simple isn't a Ruby invention. It's something that projects from Hibernate to Spring are latching onto. Java will end up in roughly the same space eventually. Maybe not with the unified framework that does all aspects of web development. But it's getting better at being simpler.

    9. Re:Why rails annoys me... by jaydonnell · · Score: 2, Informative
      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
    10. Re:Why rails annoys me... by lambdahead · · Score: 2, Insightful

      Which, as I mentioned elsewhere, is the response I always get.

      What bright-eyed, dewy-fresh CompSci grads don't seem to get is that the real world doesn't care about elegance and purity. Real world data stores care about things like optimizing and caching stored procedures, compliance with SarbOx security issues, and data safety.

      No, I don't consider websites that help you organize your class reunion or camping trip to be the real world.

  23. Web 2.0, Baby! by jalefkowit · · Score: 4, Funny
    The Ruby on Rails website has also been given a new look.

    I'm guessing more pastels. And rounded corners.

    1. Re:Web 2.0, Baby! by mixonic · · Score: 2, Informative

      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? )

      -mix

    2. Re:Web 2.0, Baby! by Bemmu · · Score: 2, Funny

      You forgot the gradients.

      Short history of web design:
      95 What web?
      95-98 I love the blink tag!
      99-04 Numedia stripes and pics of successful corporate people smiling
      05- Rounded corners, pastel gradients.

      I'm sure I missed lots.

  24. A rather large problem by wyldeone · · Score: 2, Informative

    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.

    --
    In the beginning the universe was created. This made a lot of people very angry and is widely considered as a bad move.
  25. Ahem... by mcrbids · · Score: 2, Insightful

    Well, I'm always curious. So, I watched the video "Evolving your database schema without sweat". I watched for 10-15 minutes where the guy types furiously for 15 minutes to avoid typing "alter table add author varchar".

    I guess I just don't get it. What's the excitement?

    You can't abstract too far away from the database when you get into big, complex tables and want to keep performance up. I've seen a 30-second query reduced to 50 milliseconds merely by changing the order of join in a large, complex, 12-table join on PostgreSQL.

    Yet, it seems that Ruby on Rails goes to great lengths to avoid (gasp!) SQL. See Joel's great article on leaky abstractions.

    I don't mind SQL statements - prepared statements make it so much more manageable - but what about code changes dependent on changes to the database schema? That's something I might be interested in!

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
    1. Re:Ahem... by jaydonnell · · Score: 2, Insightful

      Did you pay attnetion to the video? Do you know the purpose of what is in the video? It's not to change a column in a table. The purpose of migrations is to have an automated way to apply changes across all your servers and roll them back if something isn't right. It's a very nice feature. Of course, you can log in to each server and manually type "alter table add author varchar", but I promise you won't be working at a serious shop if that's how you deploy database changes

      "Yet, it seems that Ruby on Rails goes to great lengths to avoid (gasp!) SQL"
      From your two posts it's clear you've never used rails before so why do you feel you have the knowledge to make such an assertion? Both of your posts are you arguing against what you think rails is when it's clear you have no idea what it does and how it does it. sad.

  26. Re:Mod_python has easier syntax by richieb · · Score: 4, Informative
    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

    --
    ...richie - It is a good day to code.
  27. Re:"mostly right"??? by tjr · · Score: 2, Insightful

    Mostly harmless.

  28. That is one sexy video. by Inoshiro · · Score: 4, Informative

    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!

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
  29. Umm, that was fun... I guess. by An+Onerous+Coward · · Score: 3, Funny
    sudo apt-get install rails
    cd /var/www
    mkdir rails
    rails rails
    cd rails
    ruby script/server
     
    => Rails application started on http://0.0.0.0:3000/
    => Ctrl-C to shutdown server; call with --help for options
    [2005-12-13 21:22:19] INFO WEBrick 1.3.1
    [2005-12-13 21:22:19] INFO ruby 1.8.3 (2005-06-23) [i486-linux]
    [2005-12-13 21:22:19] INFO WEBrick::HTTPServer#start: pid=27106 port=3000
     
    [... ctrl-c ....]
     
    [2005-12-13 21:22:35] INFO going to shutdown ...
    [2005-12-13 21:22:35] INFO WEBrick::HTTPServer#start done.
    First question: Do I get a cookie?

    Next question: Now what do I do?
    --

    You want the truthiness? You can't handle the truthiness!

  30. Re:Ruby on Rails more "secure" than PHP? by Tiberius_Fel · · Score: 2, Insightful

    PHP appears to be designed for simplicity and ease of use above all else. One thing that gets me is that its types are completely fluid... And you can set a variable to whatever you want, as the user, even, by something like file.php?id=20. But PHP isn't meant to be secure. That's why PHP isn't a good choice for things where security matters.

    I'm a believer in "the right tool for the right job", and PHP isn't the right tool for the security job. But if you're just developing something for your personal amusement, or maybe for your club website, then PHP's good. So I don't think of it as design flaws so much as conscious choices to make it easier rather than more secure. :-)

    --
    Join the Empire! http://www.empirereborn.net/
  31. Nitro? by Colonel+Panic · · Score: 2, Informative

    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 over Rails.

  32. Re:Ruby on Rails more "secure" than PHP? by lux55 · · Score: 2, Insightful

    Technically, variables in most scripting languages are just as "fluid" in their types as PHP is, Ruby included. This is only seen as a drawback by people coming from the Java/C world (because they haven't seen the light just yet). It's actually one of the main reasons Ruby, PHP, Perl, etc. are so much more efficient to program in than Java.

    PHP's security in version 3 was "that's the job of the programmer" which is fine in itself (Perl's the same way), but it's the complete wrong approach for a language originally designed to be beginner-friendly, which PHP was. But PHP's goals and direction have changed quite a bit over the years, and it took some time to iron out the security changes in PHP 4, but by 4.3 which has been out for years now, they did make the transition from insecure defaults to secure ones. PHP is now at 5.1 and they're working on 6, and security is definitely a much higher priority. Espcially with folks like IBM, Oracle, and Yahoo! backing it now, they've put a lot more thought into security (finally). There are also many articles and blogs these days about secure coding practices in PHP. The PHP developers are growing up, I guess you could say.

    To be honest, Ruby is ten times the language PHP is in terms of sheer elegance of design (I fell in love with it at first sight, looong before Rails), and I can't defend PHP in that respect except to say that it does achieve its original design goals. But to be fair as well, you really can't compare the PHP of today to the PHP most people describe. It's just like someone right now saying "MySQL doesn't even have support for transactions, it's a kid's toy!" when it's had that for several years already.

  33. AJAX quality is suspect by brundlefly · · Score: 3, Interesting

    It's great that Ruby is 1.0.

    But it's unfortunate that the preferred Ruby AJAX design pattern still includes prototype.js, because that library as written is fundamentally dangerous. It's written in a fashion which demonstrates that the author is very adept with JavaScript and functional programming in general; but it also does some unpardonably cute tricks in extending core objects, thereby changing the overall JavaScript environment and making the core AJAX library not play nicely with others. (And if ever there was an environment where you need to have good manners and not piss in the pool, it's the browser + JavaScript environment.)

    The sad thing is that there's nothing about the functionality of prototype.js which requires all that object and syntax wizardry to function correctly. It could easily be re-written to be perfectly safe. But at this point, the bell has been rung; other libs such as Rico now rely on those same insidious tricks, and 1.0 is out the door.

    Sigh. So close, so close.

    1. Re:AJAX quality is suspect by jaques · · Score: 2, Insightful
      But it's unfortunate that the preferred Ruby AJAX design pattern still includes prototype.js, because that library as written is fundamentally dangerous. It's written in a fashion which demonstrates that the author is very adept with JavaScript and functional programming in general; but it also does some unpardonably cute tricks in extending core objects, thereby changing the overall JavaScript environment and making the core AJAX library not play nicely with others. (And if ever there was an environment where you need to have good manners and not piss in the pool, it's the browser + JavaScript environment.)
      Agreed. So do others: check out http://www.mochikit.com/ for a js library that doesn't piss in the pool.
      --
      Jaques
  34. convention over configuration by soundofthemoon · · Score: 4, Interesting

    You're trying to be funny, but you've got the only comment so far that mentions what I consider to be the most significant thing about Rails - convention over configuration. One reason why Rails development is so fast and often enjoyable is that you don't have to muck about with a lot of XML config files. If you just follow the path of least resistance, things just work out right.

    The MVC triad in Rails uses the ActiveRecord class for the model part. ActiveRecord is an ORM (Object Relational Mapping) class that follows a few clever rules about doing the mapping, so most of the time you don't have to repeat your mapping multiple times. If you have a "User" class, it knows to look for a table in the db called "users", and assumes the primary key is an integer named "id". A foreign key to an account record is assumed to be called "account_id". The creation time of a record is assumed to be a datetime named "created_at". All common elements have reasonable defaults, so when you are working on your app, you don't need to spend a lot of time mucking about with config files to specify stuff that is just so fracking obvious that it is a waste of your time to type it.

    Rails is not all things to all programmers, but it has certainly hit the sweet spot for a huge class of web applications - database backed interactive sites. The Rails design is good for probably 90% of the sites that I use most.

    As for coder jollies, well, it's been a while since I enjoyed programming. With Rails I've regained my enjoyment for programming enough that I'm considering doing that for the main part of my work again.

  35. Easy installation by mortonda · · Score: 3, Informative

    For a window platform, download Instant Rails

    Or for linux, install mod_scgi and follow the instructions here

    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.

  36. Re:if i'm new to web development... by Anonymous Coward · · Score: 2, Informative

    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/

    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.

  37. One word by hey! · · Score: 5, Insightful

    Prototype.

    Next time there is a project to X, do a prototype of some of the functions in RoR, ostensibly so you can get it done in a couple of days and you can use it to figure out requirements. After playing with a couple of days, sit back and watch as the app dev group spends a month laying the keel for their "enterprise" class implementation. Continue to use your prototype to demonstrate new requirements (they always come up). If, after three or four months, the app dev group doesn't appear close to being able to deliever any business value, then one question that management should raise is what, exactly, is the property of "enterprise" that justifies the difference in effort between rails and whatever they're using. Then determine if it could indeed be put in the RoR prototype. If so, you're in. If not, you've contributed to requirements understanding and live to fight another day.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  38. Re:Can anyone offer a contrast to Gears and Django by arevos · · Score: 3, Interesting

    I've briefly looked at all three frameworks, and here are my impressions:

    Turbogears is made up of separately developed components; CherryPy for the controller and HTTP server, SQLObject for database modelling and Kid for templating. Turbogears is pretty similar to RoR, but has less automation, and has a more Pythonic and component-based approach to development. Sometimes it's a little obvious that the components were created separately

    Django is more like Rails, but is somewhat more specialised. If you want to create a site with an administration section, then Django does a lot of the work for you. Beyond that, Django stacks up pretty equally against RoR.

    Both these frameworks are Python based, which again results in some differences. They may be easier to learn, but may lack a little of the flexibility that Ruby boasts. Ruby doesn't have many features that Python hasn't, but it does have some.

  39. Re:Can anyone offer a contrast to Gears and Django by pkphilip · · Score: 2, Informative

    Please check out http://www.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.

  40. Rails cost/benefit results by rheotaxis · · Score: 4, Informative
    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
    • agile, extreme programming management tool using eXPlainPMT
    • a to do list using Tracks
    • content management system using MuraveyWeb 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.
    --
    Software freedom...I love it!
  41. Re:isnt ruby too perlish? by krmt · · Score: 2, Informative

    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.

    --

    "I may not have morals, but I have standards."