Interesting Rails Tidbits #3
Ext JS Powered Administration System Generator for Rails 2.0
Davide D'Agostino writes in with news about Lipsiadmin, his Ext JS powered administration system generator for Rails 2.0. Ext JS is an interesting JavaScript framework that lets you quickly put together AJAX-powered Web pages that look and feel somewhat like Windows applications. Lipsiadmin takes this attribute of Ext JS and builds backend administrator systems for your Rails applications that feel more like GUI apps than Web pages. It's pretty interesting work.
RailsConf 2008 Registration Now Open
Just a quick note to those who are interested that the registration for RailsConf 2008 is open. Get in quick as it typically books out fast. David Hansson gives some brief background.
"Rails Is Shitty"
There's no thought given to the general problem to solve, it's just improved PHP + "ActiveRecord, lol". This means Rails doesn't have solutions that are particularly good or scalable or make sense, only hacks that happened to solve someone's specific problem at a time and were implementable in 5 minutes or less. Rails is heaps better than PHP, but it's still only good for what PHP is good, and that's not writing webapps. This permeates Rails all the way down: it's got hacky modules that only solve particular problems, those modules have hacky functions that only solve particular problems and those functions only do hacky things that solved someone's particular problem.
Maciej Kataflasz
A post on comp.lang.lisp recently caught the eyes of several Rails developers. It's inflammatory and a prime piece of flamebait, but Maciej Kataflasz makes a few good points amongst the hate.
Easy Restful Rails Screencast
In the "Easy Restful" screencast, Fabio Akita takes a 50 minute journey into putting together RESTful Rails 2.0 applications in an efficient manner.
Installing Rails and PostgreSQL on OS X Leopard
Robby Russell has put together an easy to follow, complete guide to getting a full Rails stack along with PostgreSQL installed on OS X Leopard. Lots of screenshots and hand holding. Nice work!
January 30, 2008 at 2:26 am
I can't be the only person who's a bit bemused by the couple of Rails ExtJS interface plugins that have turned up here lately?
ExtJS is cool and has a lot of potential for building very powerful desktop-like interfaces which can run in a fairly similar way online or offline using a combination of REST and technologies like Google Gears or Adobe AIR. But its whole layout paradigm is very oriented around it being used as a javascript application framework. You have a data layer that interfaces to Gears/AIR or to a web service using JSON or XML, and you do your MVC separation and UI logic in Javascript. The server is just there to manage data and serve up the UI.
But then things like Lipsiadmin or the plugin that was linked here the other day turn up... and I really don't get it. Lipsiadmin in particular is just using a combination of Prototype and ExtJS (two fairly heavy libraries, in tandem) to render what appear to be purely static UI pages. Every click still results in a new page load, it's just building the page using ExtJS widgets instead of generating them on the server side with helpers and CSS classes.
It's almost like they're just using ExtJS for its stylesheet so that the interface can look good, rather than gaining any of the desktop-like responsiveness or the reduced network latency from pre-loading/caching the UI classes and then just communicating with a web service during use. It's nothing that could be easily extended to abstract the data layer to AIR or Gears and use the server for back-end only, as far as I can tell.
An auto-interface plugin for ExtJS would be really cool, but to work in a way that actually uses Ext's features properly I can't help but think it would have to be written as a generator that just produced generated Javascript which talked JSON to a RESTful web service. And if you're going to do that, why make it a Rails tool at all? It'd surely be better as an IDE tool coupled with some drag-and-drop UI design features.
I'm actually not sure Rails has any substantial place in the ExtJS world anyway, actually: if all you want is a RESTful web service that speaks JSON and communicates with a database then there are faster, lighter, threaded frameworks like Merb that would seem to fit the bill better. Most of Rails would be just bloat in that environment. Using Javascript calls to generate standard UI widgets doesn't fit the Rails paradigm very well - it's better suited to something like jQuery UI which uses standard snippets of XHTML (a good candidate for helpers) and behavior JS includes to define its widgets.
January 30, 2008 at 6:04 am
"There’s no thought given to the general problem to solve, it’s just improved PHP + “ActiveRecord, lol”."
Rails isn't over engineered.
"This means Rails doesn’t have solutions that are particularly good or scalable or make sense, ..."
Yeah, Rails doesn't scale. /sarcasm
"...only hacks that happened to solve someone’s specific problem at a time and were implementable in 5 minutes or less."
Rails is productive.
"Rails is heaps better than PHP, but it’s still only good for what PHP is good, and that’s not writing webapps."
PHP isn't good for writing web apps, so Rails isn't? WTF?
I read his entire post and I found it to be similar to other FUD I've read lately. I googled him and checked out other places where he wrote including his blog(http://mathrick.org/). I didn't see anything that convinced me to give much value to his opinion.
Just 2 cents from an average joe web developer...
January 30, 2008 at 6:37 am
No, I think the guy has a number of good points. Rails actually probably is over-engineered in many places, there's a hell of a lot of weird magic that goes on in the framework to support sugary syntax and automatic invisible activity inside the framework. And his complaints about ActiveRecord#find* are right on the mark - ActiveRecord is great for creating, updating and deleting records with proper support for validation, but it can get very nasty when you attempt to get into complex reporting with a lot of joins and conditions. You know, "show me all the unique products that people who are members of a particular group and all its (nested set) children bought during November and January". All the relationship structures are well supported by ActiveRecord, but the finders are pretty shocking for that kind of stuff.
Rails is definitely much better than PHP, if only because Ruby isn't painful from a syntax POV. But I can see it losing ground to frameworks that have learned from its conceptual advances without being laden down with its historical mistakes.
To be honest, his original post is more lucid than your response. You don't seem to have really addressed his concerns, instead just repeating many of the Rails mantras. How does "Rails is productive" address a complaint that many of the tools provided by Rails were only added to sold the author's specific problem at the time of writing, and that they're of limited wider utility? That's a legit complaint if true, not a productivity boost. Quite the opposite.
January 30, 2008 at 11:34 am
I see Lipsiadmin now and I think wose beautifull this because is thin and fast to use, is ubuntrusive so is pretty for me that I like a good layout but I hate write so much in javascripts.
The aim of rails is be agile. So this generator is good for do that.
If you like extjs and no refresh page use only webservices or another framework like http://halcyon.rubyforge.org/
Bye!
January 30, 2008 at 2:14 pm
Ruby Inside is may favorite Ruby resource, but I'm baffled as to why this flamebate post from comp.lang.lisp is detailed here. Since I've already responded to his rant when I saw it referenced on Reddit, I won't comment on it again in any detail. My feeling is that a) no framework can be all things to all people and b) if Rails was as big of a mess with "hacky functions" (and by the way, Ruby doesn't have functions) we would see all of the Rails clones that we do.
January 30, 2008 at 3:00 pm
"You know, “show me all the unique products that people who are members of a particular group and all its (nested set) children bought during November and January”."
Serious question: Does ActiveRecord#find_by_sql not work well in this situation?
"You don’t seem to have really addressed his concerns, instead just repeating many of the Rails mantras."
You're right. I didn't address his concerns, I dismissed them. When I said "Rails is productive" I should have said "Ruby is a productive language" and his argument that:
“…only hacks that happened to solve someone’s specific problem at a time and were implementable in 5 minutes or less.”
doesn't make sense to me. Some of the better frameworks today solve real problems. Specific problems too. Really, what web framework today solves everyone's general problems but no specific problems. How productive would that be? I guess I read his statement as "Rails doesn't solve *my* specific problems so its hacky." He is certainly entitled to propose any patches to ActiveRecord or any other part of Rails for that matter. I guess you can fault me for parroting another Rails mantra there.
"To be honest, his original post is more lucid than your response."
Because I don't agree with him doesn't make my response less coherent. I will concede that I have not had to exercise all that ActiveRecord has to offer, but that's only one point. I don't see the other "good points" in his rant.
“Rails is heaps better than PHP, but it’s still only good for what PHP is good, and that’s not writing webapps.”
Really? I don't like PHP either, but I wouldn't go as far as saying that PHP is not good for building web applications. This statement didn't add to his credibility for me. Friendster, Flickr, ThemBid, Digg, Wikimedia, Fotolog.....There are several high traffic sites built in PHP.
"As a rule, there's no quality assurance, and the average quality is
very low. Because it's such a patchwork, it will only have parts of
things implemented, some other (not necessarily overlapping) parts
documented, and a whole load of missing things just dangling and waiting
for you to run into them."
There are several tests and process for getting patches approved. There is al least *some* QA.
"I'm a huge fan of innovative frameworks like Weblocks, because they
actually stopped and thought about the whole thing for a moment, and try
things that will address the problem as a whole. And even if some
specific things will turn out to be harder to do that by just churning
out raw HTML, and there will be abstraction leaks, it's still better
because they try out new things to find a solution that has a chance
work. Rails doesn't, because its entire culture seems to be fundamentally
incapable of thinking more than 5 minutes into the future."
I guess I disagree with the original post mostly because I'm not looking for a silver bullet. I like the shortcut I'm given by using frameworks like Rails, but I'm not looking for it to handle my every need. YMMV and you can agree with him whole heartedly - I just don't have the same problems with Rails in my development.
January 30, 2008 at 4:44 pm
Hello! Thanks for the link! :-) I hope everybody likes the "screencast":http://www.akitaonrails.com/2008/1/25/easy-restful-rails-screencast and if you do, please leave a comment. Feedback is always good for me to improve. Cheers
January 31, 2008 at 12:56 pm
I think the name is Maciej Katafiasz (rather than Kataflasz) as you probably mean the person behind the blog - http://mathrick.org/
February 1, 2008 at 2:40 pm
Hope Lipsiadmin doesn't have other mistakes like "Delte" in its internals...
February 13, 2008 at 7:20 am
Hi,
Is Finn Higgins in this post this F Higgins,
http://www.stuff.co.nz/4399404a11.html
February 13, 2008 at 7:50 am
Even if it is, the posting here was long before he went missing, alas. Unfortunately I don't have the IP address available to tell you the country.