-
Twitter Said To Be Abandoning Ruby on Rails
> After nearly two years of high profile scaling problems, Twitter is planning to abandon Ruby on Rails…
As a Django fan and evangelist, I admit it would give me great pleasure to see this as a colossal failure for Rails, point, laugh, and generally poke fun at all the Rails fanboys and girls.
But let’s be real for one minute. Twitter doesn’t suck because of Rails. Twitter sucks because they have ridiculous amounts of traffic (especially to their API and SMS gateways), a limited ability to cache (a non-realtime Twitter is a pretty useless Twitter), and (as far as I can tell), they’re not making any money, so they probably have limited resources to pour into more hardware.
The bottom line is that Twitter will probably cause major scaling problems for any platform, be it Rails, Django, Java, .NET, PHP, or tin cans with a string tied between them. Ruby is undeniably slow compared to Python, Java, and PHP, but I really doubt the problems Twitter deals with are at the Ruby level, anyway. Much as I wish they weren’t, anyone who says Twitter sucks because of Ruby on Rails is either foolish or joking.
Twitter sucks because of Rails. Just joking.
Visit -
James Bennett: Shared hosting is not a ghetto
Have to agree with James’ response to Twitter developer Alex Payne’s Shared Hosting is a Ghetto.
Visit -
Rails 2.0 is out
Sweet. Looks to have several major feature additions. Congrats to David and the whole Rails community!
Visit -
Webfaction just got a lot better
Webfaction, my favorite Django host, has drastically improved its plans (and redesigned its website). They now offer unlimited websites, domains, e-mails, databases, and applications on all plans — plus, they’ve increased the amount of bandwidth, RAM, and disk space each plan gets.
Besides being great at Django, WebFaction also does Rails, TurboGears, and several other modern development environments.
Booyah! Go getcha some WebFaction!
Visit -
YADTLRfRoR: The Ruty Template Engine
Yet Another Django Template Language Ripoff for Ruby on Rails. There sure seem to be a lot of these for a framework whose creator hates template languages. :)
But seriously — it looks like it does most of what Django’s wonderful template language does, so if you’re a Rails guy, give it a look.
Visit -
typography-helper for Rails
A port of Christian’s typogrify for Rails. Since my post about typogrify here, I think it’s been ported to just about every web development language under the sun. Awesome.
Visit -
The B-List: Hypothetical framework choices
James has a nice post about choosing a web development framework, and especially about switching from J2EE to a dynamic language and framework like Ruby/Rails or Python/Django.
Visit -
Widon’t and SmartyPants Helpers for Rails
After Typogrify for Django, the Rails camp wants good typography, too. :) The widon’t here won’t work on chunks of HTML like the Django variant will, but it’s still a lot better than nothing. Support good typography!
Visit -
Presentations: RailsConf 2007
A bunch of great presentation slides from this year’s conferences are available at the RailsConf website. Even though I’m not a Rails guy, per se, most of this stuff is equally applicable to development with other LAMP-ish agile development frameworks.
Visit -
Joyent Connector to be Open Sourced
Wow, definitely didn’t expect this. Connector is an amazing web app that I’d definitely love to be able to run a local version of and extend for myself. Awesome news. Huge boon to the Ruby and Rails communities.
Visit -
Interview with Twitter Developer Alex Payne
Alex has a lot to say about Twitter, Rails, and scaling. Not to Rails-bash, but it’s hard to ignore these quotes:
Running on Rails has forced us to deal with scaling issues — issues that any growing site eventually contends with — far sooner than I think we would on another framework.
And…
All the convenience methods and syntactical sugar that makes Rails such a pleasure for coders ends up being absolutely punishing, performance-wise. Once you hit a certain threshold of traffic, either you need to strip out all the costly neat stuff that Rails does for you (RJS, ActiveRecord, ActiveSupport, etc.) or move the slow parts of your application out of Rails, or both.
And…
It’s also worth mentioning that there shouldn’t be doubt in anybody’s mind at this point that Ruby itself is slow. It’s great that people are hard at work on faster implementations of the language, but right now, it’s tough. If you’re looking to deploy a big web application and you’re language-agnostic, realize that the same operation in Ruby will take less time in Python. All of us working on Twitter are big Ruby fans, but I think it’s worth being frank that this isn’t one of those relativistic language issues. Ruby is slow.
Props to Alex for being upfront and forward and not sticking to the Rails party line of “it’s fast enough.” Alex is obviously in a unique situation, as Twitter is the biggest Rails app on the web. Rails, which is a great framework in so many ways, will probably work great for your site, which is almost certainly not as intensive as Twitter.
But until the performance can scale to a huge site, people are always going to be a bit scared to use it for a startup they perceive as “the next big thing.”
Visit -
Web 2.0 Expo: All You Need To Know About Django
If you’re going to the Web 2.0 conference in SF next week, be sure to check out Adrian’s presentation about Django. You know you want to! Also, there’s a comparison of web app frameworks panel that looks like it should be good (includes members of both the Rails and Django teams).
Visit -
Highrise
The latest app from 37signals looks like another beauty. You can get a limited free account, but it seems like you have to pay $50/mo. for the cases feature, which seems like the most killer part of the deal. Nonetheless, $50/mo is a small price to pay for someone who really needs this kind of app (and there are lots of those people). All in all, looks great — which is no surprise, judging by the quality of the other 37signals apps. Check it out.
Visit -
Top 10 Ruby on Rails performance tips
Only a few of these good tips are actually Ruby/Rails-specific. Most of them can apply to development using any MVC-style web application framework. Some might be obvious, but still — good stuff.
Visit -
Performance test of 6 leading frameworks
In choosing a framework, a web developer does a exhaustive series of performance tests, comparing Django, Ruby on Rails, TurboGears, CodeIgniter, Symfony, and Catalyst — and publishes the results. As with all benchmarks I’ve seen, Django is the clear winner.
Visit -
SvN: A spoon or a jackhammer?
Although it’s not exactly what Jason is saying in his post, I think the spoon/jackhammer comparison applies even more directly to agile web app framework versus monolithic Java environment discussion. Rails is their spoon. And if Rails is a spoon, Django is a spork. :)
Visit -
Bright-Green.com: Rails vs Django Paper and Slides
Probably the best comparison of these two popular web app frameworks I’ve seen. These guys wrote the same app twice — once in each Django and Rails — and analyzed the results. They provide no clear winner — but do outline several “choosing points” that will help you pick between them. For example: Already know Ruby? Choose Rails. Need super-simple AJAX? Choose Rails. Does your team include non-programming web designers? Choose Django. Need automatic admin pages for editing your content? Choose Django. Both the slides are paper are terrific. Check ‘em out.
Visit -
PublicSquare: Rails-based CMS
Looks like a very nice publishing platform. Uses Liquid, the Ruby/Rails port of Django’s template language. Powers Boxes and Arrows.
Visit -
Constructive reasons to use Django instead of Rails
“I quickly found that if I couldn’t express something with the template system, I was doing something wrong, and it led me to think a little more about the structure of my app.” This can be repeated enough. Almost every time I’ve ever said to myself, “Man, I wish I could do x in the Django template language,” my next thought was, “Except that would be stupid, because that should really be done at the view level.” Much of Django is designed the way it is in order to encourage best practices. It’s actually hard to be sloppy with Django.
Visit -
Why Django kicks Ruby on Rails’ collective ass.
A lot of good points in here — wish he wouldn’t have been so flame-bait about it, though.
Visit -
Django on Dreamhost: incomplete headers 500 error: solved
Calling your FastCGI script dispatch.fcgi instead of django.fcgi solves this problem, which seems to be common on some Dreamhost servers. Works for Rails, too. Awesome.
Visit -
Kyle On Everything » Automagic Sitemaps with Django
“It turns out that, despite receiving less fanfare than Rails, Django has all that and then some (It’s not even 1.0, but feels like Rails 2.0).”
Visit -
Catalyst vs Rails vs Django cook-off
Django soundly trounces the competition in these performance benchmarks.
Visit -
Crain’s Business 40 Under 40 2006
Jason Fried (37signals) and David Heinemeir Hansson (37s & Ruby on Rails) included this year, Adrian Holovaty (Django) included last year — is this evidence enough that agile web development and frameworks built in dynamic languages are catching on? The awesome dude from SkinnyCorp are also included this year.
Visit -
Switching from Rails to Django
Nathan Borror on his recent switch from Ruby and Rails to Python and Django. Nathan is a designer first and programmer second, and he cites the automatic admin interfaces and more reliable performance as features of Django that allow him to focus on design rather than on making things work.
Visit -
Top 20 Ruby on Rails Content Management Systems
People sometimes ask me if there are any good freely available Django CMS or blogging apps. There aren’t, really, and I think the big reason is that Django’s built-in admin interface, generic views, and template language make it almost as easy to roll your own as to download, install, and customize a pre-exisiting app.
Visit -
Frameworks are passing
A blogger wonders if your favorite pet framework will be gone by the time you get around to your next project. Adrian points out that having several large media companies depending on Django (many via Ellington) means there are people whose jobs involve maintaining Django. This should help give it more stability than many open source software projects.
Visit -
Zen and the art of Ruby programming: Django is great
“Python has a few nice web frameworks, but I’ve fallen in love for Django.” and “The template system allows designers to define the UI without having to know how to program in Python.” Yup.
Visit -
Of snakes and rubies; Or why I chose Python over Ruby
Nice blog post from a former Rails developer who has switched to Python. He outlines various reasons, but the two biggest are performance (Ruby is slow) and library support (Python has a lot more).
Visit -
Riding Rails: Taking admins beyond scaffolding
One commenter at the Rails blog has the best solution yet for an auto-admin interface for Rails: just use Django’s. Just as you can easily use Django’s admin interface for your php app, so can you use it for your Rails app. Or Java app. Or CakePHP app. Or whatever.
Visit -
auto-admin plugin for Rails
Another automatic admin interface plug-in for Rails, this one isn’t a code generator. It also has a much, much better UI than Streamlined — which may be because it uses Django’s HTML and CSS directly, rather than trying to rip it off.
Visit -
Streamlined: Django admin for Rails (but not really)
The Streamlined project, an attempt at creating an “automatic” admin interface for Rails recently released a screencast which I just checked out. I know it’s going to sound like sour grapes since I’m a Django user, but I am simply not impressed at all. To start with, the majority of Streamlined is not dynamic — it’s a code generator. Anyone’s who’s been there and done that can attest to the fact that code generation is just asking for trouble. Having to re-generate my admin site after any changes I make to my models? No thanks. Not getting updates to the Streamlined application in fear of overwriting my customizations to the generated code with the new generated code? No thanks. On top of that, the user interface is simultaneously an obvious rip-off of the Django admin interface and terrifyingly ugly (I know it’s an early beta, so perhaps I should cut them some slack). I’ll never understand how you can rip something beautiful and return something ugly — but Microsoft does it all the time, so I guess it’s possible. Bottom line: there’s no way I’d be comfortable telling my clients they can manage their site with an admin tool that looks and works like Streamlined does. I respect the attempt and I think Rails does need something like this if it wants to match Django’s feature set — but Streamlined has a very, very long way to go to be the Django admin for Rails.
Visit -
CakePHP, Django and Ruby on Rails
A blogger cites less SQL, the admin interface, less files to manage, and performance as reasons why he preferred Django over RoR and Cake.
Visit -
The B-List: Let’s talk about frameworks, security edition
James Bennett brings back the “Let’s talk about frameworks” series in light of the recent Rails venerability, which kicked off quite a discussion about the security of web application frameworks and the applications built with them.
Visit -
Gutata Blog: Django and Ruby On Rails
What the difference between Rails and Django, perception-wise? More importantly, what’s causing the difference? Gutata has some thoughts.
Visit -
Ruby on Rails will ship with OS X 10.5 (Leopard)
This is great news, IMHO. As a member of the Django community, it’s easy to see Rails as the competition, but it’s important to remember that in the end, the two projects are trying to do mostly the same thing (make web development faster, better, and more fun) with mostly the same philosophies (MVC, dynamic languages, ORM, etc.). This is just one more step to a better web world for all of us. Here’s to Django in Mac OS X 11.
Visit -
DHH on Inside the Net podcast
Love him or hate him, David is a brilliant programmer, a well-spoken individual, and never short on opinions. I really enjoy listening to him talk (even if he sounds a bit like the MacinTalk voice in this particular podcast).
Visit -
Should I Learn Python or Ruby next? (by Jeremy Zawodny)
The ever-popular Zawodny thinks about trying a new language on for size. It’s amazing to me how when one asks a simple “Should I do a or b?,” so many people will answer “You should do c.” The general feeling of the commnters seems to be that both are good languages. Python tends to prefer the “one right way to do any particular thing” mantra, which may make it more well-suited for getting things done and simpler to learn, whereas Ruby tends to allow for more creativity and expression, which may ultimately make it more fun, if with a steeper learning curve. Interesting discussion about the two languages that, at least so far, hasn’t devolved into a flame war.
Visit -
My first Django traceback
A fellow by the name of “?heBjorn” discovers one of Wilson’s unsung nuggets of brilliant design — the Django error pages. Seriously, fitting massive amounts of this kind of content into a page and making it useful, readable, and attractive isn’t easy to do. And also, he resisted the urge to “brand” the error pages. As opposed to Rails, which will greet you with “Application Error (Rails)”.
Visit -
TurboDjango 0.95: Django templates on TurboGears
Thanks to Django’s modularity, you can now use its template system with TurboGears. Django’s template system has also been copied and turned into Liquid for Rails. Everyone wants to use Django templates, even if they’re not on Django (and I don’t blame them)!
Visit
