Rails evaluation (ajax fallback and "is it ready for enterprise" thread)

It is about a week I'm experimenting with Ruby and RoR.

I know there are no perfect tools and while I really enjoy the RAD part of Ruby *and* RoR and even more I enjoy how Ruby makes programming funnier I know that software maintenance is the real pain.

First short term problem is: does the RoR framework makes easy to implement ajax as well the corresponding non ajax fallback or should I code twice anyway? I've the feeling that ajax (or something similar) will be the future (at least somehow I hope so) but not now and not tomorrow. Surely by the time I'll learn RoR reasonably well to consider it an investment, tomorrow will be nearer... but I've bills to pay now and it doesn't make too much sense to learn a tool so fascinating for it's RAD characteristics if you'll be able to make money out of it after 2 years :wink: And *now* and for the next year my personal forecast is I'll still have to code for non-javascript non-cookie enabled browsers.

Long term problem: I've read about IO problems (and I've a feeling they may be solved in reasonable time) but I've heard about threading problems as well with RoR and as superficial my view may be, those don't seem easy to be solved.

I gave a look to mongrel and to mongrel's author comments and well my feeling was that even an active developer of RoR community has the feeling of "beating a dead horse". Please don't take this as "putting my words in someone else mouth". I'd surely appreciate any correction/clarification by Zed Shaw as it will help me to have a clearer picture.

I'm still looking for an OO programming language that fits into web development and Ruby continue to look as the best choice around. Learning Ruby and keep on writing with php and asp seems a less challenging task than jumping on RoR to develop e-commerce web sites starting from tomorrow.

BTW it seems that RoR is in sid (and maybe etch) that should become stable *shortly* that at least should solve some of the maintenance problems.

thx

does the RoR framework makes easy to implement ajax as well the corresponding non ajax fallback or should I code twice anyway?

Yes. Rails has the best Ajax integration out of any framework I have used. Fallbacks are always a problem - with Ajax sites, you can different user interactions. These will sometimes not map to a traditional approach - in which case you will have to implement twice. In other cases, Rails makes implementing fallsbacks reasonably easy.

Long term problem: I've read about IO problems (and I've a feeling they may be solved in reasonable time) but I've heard about threading problems as well with RoR and as superficial my view may be, those don't seem easy to be solved.

There are some performance concerns, but in reality these seem worse than they actually are.

I'm still looking for an OO programming language that fits into web development and Ruby continue to look as the best choice around.

It is.

Learning Ruby and keep on writing with php and asp seems a less challenging task than jumping on RoR to develop e-commerce web sites starting from tomorrow.

If you are earning your living by coding php and asp, I believe investing time into learning Rails will be time well spent. You will see some significant productivity gains. If you are a consultant or are doing outsourced development, these will directly affect your bottom line.

I also recommend having a look at the "From Java to Ruby" book - I know it says Java in the title, but most of the points made transfer to other languages as well.

Cheers, Max

> does the RoR framework makes easy to implement ajax as well the > corresponding non ajax fallback or should I code twice anyway?

Yes. Rails has the best Ajax integration out of any framework I have used. Fallbacks are always a problem - with Ajax sites, you can different user interactions. These will sometimes not map to a traditional approach - in which case you will have to implement twice. In other cases, Rails makes implementing fallsbacks reasonably easy.

Could you provide or point me to a snippet of code to implement "easy fallback"?

> Long term problem: > I've read about IO problems (and I've a feeling they may be > solved in reasonable time) but I've heard about threading > problems as well with RoR and as superficial my view may be, > those don't seem easy to be solved.

There are some performance concerns, but in reality these seem worse than they actually are.

As stated performance concerns don't worry me as much as thread related uncertainty problems:

You may say it is "another" performance problem. If you stay away from it things will be predictable but slower. But - it seems a Rails problem only, - once you'll have to scale up you'll have to deal with it, - it seems there is no interest in at least documenting which part of *Rails* may have problems, I wonder if there is any interest in fixing it.

> I'm still looking for an OO programming language that fits into > web development and Ruby continue to look as the best choice > around.

It is.

Ruby != Rails

Actually there are not too many born OO languages that have Apache modules ready. php and perl were retrofitted with OO. What's left is Ruby and Python. Ruby seems more fun to program but... Guido van Rossum pay checks are now paid by Google that definitively have long term interests the language stay alive and healthy and "Commercial use" friendly.

> Learning Ruby and keep on writing with php and asp seems a less > challenging task than jumping on RoR to develop e-commerce web > sites starting from tomorrow.

If you are earning your living by coding php and asp, I believe investing time into learning Rails will be time well spent. You will

Ruby != Rails

At this moment Rails seems the only framework worth to consider for Ruby. I mean the one that is really RAD...

see some significant productivity gains. If you are a consultant or are doing outsourced development, these will directly affect your bottom line.

I think it may depend on the size of the code and on how much control you have on main branch of Rails. Maintenance is already expensive with no extra surprise.

I also recommend having a look at the "From Java to Ruby" book - I know it says Java in the title, but most of the points made transfer to other languages as well.

Well I think I will take it slower as I initially was planning to do. Write some code in Python and Ruby to get a better feeling with the languages and keep Rails on my radar for a while.

As stated performance concerns don’t worry me as much as thread related uncertainty problems: http://www.ruby-forum.com/topic/68126 You may say it is “another” performance problem. If you stay away from it things will be predictable but slower.

But - it seems a Rails problem only, - once you’ll have to scale up you’ll have to deal with it, - it seems there is no interest in at least documenting which part of Rails may have problems, I wonder if there is any interest in fixing it.

i think you dont really need threads when doing ror. if you really have something thats too long for a web request, use the woinderful plugin BackgrounDRb - you write a worker class and the threading is done automagically for you. and there are no problems (except that AR doesnt seem to be threadsafe, but thats another topic for itself)

so dont worry about threading…

Actually there are not too many born OO languages that have Apache modules ready.

php and perl were retrofitted with OO. What’s left is Ruby and Python.

mod_ruby err… dont use it. use mod_proxy_balancer and mongrel_cluster (but not sendfile! :-))

Ruby seems more fun to program but… Guido van Rossum pay checks are now paid by Google that definitively have long term interests the language stay alive and healthy and “Commercial use” friendly.

ruby or pathon… thats like the distro-wars or browserwars in the late 90’s

At this moment Rails seems the only framework worth to consider for Ruby. I mean the one that is really RAD…

there are other ones? :slight_smile: i dont want to know other frameworks because im in love with rails…

I think it may depend on the size of the code and on how much control you have on main branch of Rails.

Maintenance is already expensive with no extra surprise.

you WILL experience a higher productivity… or did you write a personal homepage with minimal cms, user auth, guestbook, gallery, downloads etc in 350 lines of code in php? i never was able to do that…

Well I think I will take it slower as I initially was planning to do. Write some code in Python and Ruby to get a better feeling with the languages and keep Rails on my radar for a while.

thats a good aproach. although i would vote for rails but… i never tried python