Ruby on Rails 1.0 Released 332
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.
Commercial equivalent is...? (Score:4, Interesting)
It just works... mostly (Score:5, Interesting)
Er (Score:5, Interesting)
When? (Score:3, Interesting)
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!
compatibility (Score:4, Interesting)
Re:"mostly right"??? (Score:1, Interesting)
I'm thinking the authors are trying to get it up in the major release number so it can be seen as a true competitor to
A better solution than PHP. (Score:3, Interesting)
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.
Comment removed (Score:4, Interesting)
Re:Watch this video (Score:4, Interesting)
Re:Perl people, check out Catalyst (Score:3, Interesting)
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.
Why rails annoys me... (Score:5, Interesting)
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
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.
Re:Commercial equivalent is...? (Score:1, Interesting)
Re:Why rails annoys me... (Score:5, Interesting)
AJAX quality is suspect (Score:4, Interesting)
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.
convention over configuration (Score:5, Interesting)
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.
Re:Why rails annoys me... (Score:4, Interesting)
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/ [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.
Re:Can anyone offer a contrast to Gears and Django (Score:4, Interesting)
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.
Re:Why rails annoys me... (Score:2, Interesting)
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 [enigo.com] and Amrita [sourceforge.jp]
Re:Why rails annoys me... (Score:3, Interesting)
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.