107 Comments
- treed, on 10/12/2007, -2/+23It'd be funnier if you realized that losing boxers are "on the ropes".
- hernan43, on 10/12/2007, -2/+22I really enjoy using the Django framework. I will say however that I think frameworks in general are a good trend in web development. Use what suits you best.
- thewebguy, on 10/12/2007, -2/+16thumbs down -- the joke sucked!
plus, putting a little "disclaimer" on your messages is so weak. it is an attempt to be sure that you a) don't get dugg down, or if you do that you b) look like some sort of martyr for humor or some kind of garbage like that. just say what you mean and stick by it. - robwistar, on 10/12/2007, -1/+12@jmacdonagh: a good compiler will generate faster assembly than 99% of the embedded programmers out there.
myself included. - LFTravel, on 10/12/2007, -0/+10I agree that Django is great. Django and Rails each have their own strengths. Django developed from a content-based site and it does really well in that kind of situation. The free admin panel is great for what I'm working on. If you haven't tried Django, I highly recommend checking it out.
- shakin, on 10/12/2007, -2/+12I have a real job and I don't even have a Windows computer or server. That would make using ASP.NET difficult.
Some .NET developers have it in their had that ASP.NET is the end all and be all of web development, but in reality I have rarely seen it used for more than intranet applications. It is, however, in use for a *ton* of intranet apps. J2EE and PHP both seem to be more popular for internet apps. - inactive, on 10/12/2007, -3/+12A very sober view, herman43. It's a pleasure reading such a mature reaction on Digg.
- ubernostrum, on 10/12/2007, -1/+10lighttpd/FastCGI and/or mongrel/lighttpd are the recommended configurations for Rails. Apache/mod_python is the recommended configuration for Django.
So in the sense of "performed using the framework's recommended environment", this is accurate. - The_Dude, on 10/12/2007, -1/+10I thought it was somewhat humorous. His username is amusing also. I've also had 3 glasses of red wine on an empty stomach while watching the Simpsons and know nothing of frameworks.
- quas, on 10/12/2007, -2/+10"I would pick PHP anyday over something like Rails or 'Django'..."
You realize that Rails and Django are frameworks, right? The languages they use are Ruby and Python, respectively - certainly not obscure languages. - hotani, on 10/12/2007, -0/+8I won't deny that Django has a learning curve. I've been using it for the past 2 months or so and have run into a lot of frustration from not knowing my way around yet. However, every frustrating hurdle is a breeze the next time. I look back at the code I've done and am very happy with the results. I still think it is the best fit for what I want out of a framework and will continue to work with it.
- b7j0c, on 10/12/2007, -0/+8some observations:
1. if your site is a low traffic site (it probably is), use whatever you want. it won't matter.
2. if you have an existing batch scripting language you love, do not introduce a new language for web production. if you love and use perl, go with mason or jifty. if you love and use python, django. if you love and use ruby, use rails. if you introduce a new language you will end up maintaining two codebases and have to deal with interoperability issues. it just isn't worth it.
3. if you have a very popular website (top 20 site by traffic), you already know none of these toolkits can be used to run your site. - matttt, on 10/12/2007, -0/+7I'm the guy who posted the report of our performance tests. Our team did the best they could to evaluate the 3 frameworks. The report has been posted on the Rails wiki and Symfony forum http://www.symfony-project.com/forum/index.php/t/2272/
@seanmc303 "As I stated in another post, Symfony was misconfigured and therefore this was not a very accurate performance comparison for Symfony." - seanmc303, on 10/12/2007, -2/+9One thing to note about the Symfony benchmark is the crazy amounts of failed transactions.
Successful transactions: 122
Failed transactions: 192
“connect failed Native Error: Can’t connect to local MySQL server through socket ’/var/lib/mysql/mysql.sock”
I have designed Symfony apps, and I have not had any failed connection problems. I would guess that this is a configuration issue and not a fair test of Symfony's performance. - jesusphreak, on 10/12/2007, -4/+11"Anyway, PHP is a good performer in the hands of most people. I would pick PHP anyday over something like Rails or "Django" -- because I could go any pickup and normal programmer right out of college and he/she could most likely sit down and start from where I stopped."
Is PHP going to be a good performer in the hands of someone right out of college? Furthermore, while I do respect that some people can code very cleanly in PHP (see the discussion forum Vanilla), I've seen way too much nasty spaghetti code that I don't want to use PHP at all.
Furthermore, hey, its nice that you can pick up anybody and they understand PHP, but Ruby isn't a difficult language either. If they cannot understand the concepts in it, then I don't think you have much of a programmer. The great thing about Ruby is its easy to learn but it has a lot of advanced programmer concepts that the beginner can pick up when they are ready. WIth PHP you hit that ceiling and you are kind of stuck.
I like PHP for what is is - a nice simple language for writing simple dynamic content for the web. I think at a certain level, though, you are rewarded much more for using a powerful lanauge like Python and Ruby. - jesusphreak, on 10/12/2007, -4/+10What if I just don't think your humor is funny?
Eh, back to the topic at hand...it really doesn't suprise me that Django is faster because Python as a language is faster than Ruby because Ruby has no VM. I'll be so happy the day that YARV for Ruby releases. Thankfully they've done a lot of work on it within the last year and hopefully it'll be ready not too long from now. - yottabite, on 10/12/2007, -0/+6As a Rails developper I thought this was a neat article. I'll always recommend doing what suits you or the project you are working on. After all, these are frameworks and are supposed to be helping you. If you like Ruby, like me, Rails will float your boat. Verucasalt, if you like .Net support languages feel free to toy with them but it doesn't say anything about this article. While it may have missed in the terms of universal scope, it was still a good article and did pertain to the Digg subject.
In closing, verucasult is, in fact, a troll.
On to other news. - dasil003, on 10/12/2007, -1/+7@loginssuck When you turn 18 go back and read this comment and maybe you will understand why no one thinks its funny.
- seanmc303, on 10/12/2007, -1/+6Symfony may not have won this test, but I still love it. I had a feeling Django would win the performance test. I was surprised to see RoR beat Symfony's bench marks (hopefully this is not a bias benchmark considering this article came from RoR). Most of the benchmarks I had seen in the past showed PHP usually beats Ruby.
oops. Didn't mean for this to be a reply :) - Ozymandias42, on 10/12/2007, -2/+7I wondre how Rails would have fared if they had used mod_ruby with apache, like they used mod_php with Symfony and mod_python with Django. Seems a bit of an unfair competition without it.
- blixtra, on 10/12/2007, -2/+7I highly disagree that Django is hard to code. I've been working on a project for the last month and Django has been an absolute pleasure. You get so many things "For Free": admin interface, comment system, rss feeds, etc. The consistence of Django is another wonderful aspect. The current documentation while good still has wholes but the source is very easy to read.
It' just icing on the cake that it's also fast. - frogpelt, on 10/12/2007, -1/+5That's good because it's namesake, Django Reinhart, was one of the fastest guitar players who has ever existed. May he rest in peace...if he is, in fact, dead.
- bribera, on 10/12/2007, -0/+4I'm pretty sure Amazon.com uses copious amounts of Perl, with a dash of mason here and there.
- Ozymandias42, on 10/12/2007, -1/+5Ah, fascinating. I didn't realize they recommended that method. Criticism withdrawn.
- dasil003, on 10/12/2007, -2/+6@seanmc That's only under the high load scenario... did you benchmark your app with similar conditions? I wouldn't rule out the possibility that configuration could fix this issue, but I think at least the first benchmark is pretty clear.
- matttt, on 10/12/2007, -0/+4@codahale As mentioned above, I'm part of the team who did the report on the 3 frameworks. Our final app was really basic so we wouldn't compare apples with oranges.
I'm sure we can make our test code available and create a "contest" where anyone can try to improve the apps and we would run the test again.
Regarding special framework features or caching we made the deliberate choice not to use any. The reason being that we wanted to compare the frameworks without any optimizations so we can see that each framework is capable of before tweaking (to be fair we should probably try to optimize each system and run the test again but that would require knowledge we don't currently have). We did further tests on Django with output caching and obviously it was REALLY fast.
However, one shouldn't base his choice only on the framework performances, there are a lot of other criteria to look at.
Matt - tsigo, on 10/12/2007, -0/+4I've been developing stuff in PHP since early version 3, and I love the language. But last week I started getting interested in Rails and continually amazes me how quickly you can get stuff working, and how easily you can do some pretty complex stuff with very little effort. I don't think I'm going to write another large app in PHP again.
With that in mind, I looked at some Screencasts for Symfony and it was some of the most confusing stuff I've ever seen. And I _understand_ PHP. I picked up Rails more quickly and I had *zero* experience with Ruby. - amasiancrasian, on 10/12/2007, -1/+4The last thing we need for Rails and Django is another warfront. With enough bashing from Java developers, a Rails vs. Django war will divide both frameworks and stutter development. Use Django as THE framework for Python, and Rails for Ruby. Let's come up with alternative to Java and bring in real frameworks for Internet applications.
- matttt, on 10/12/2007, -0/+3Francois from Symfony replied to our post regarding our performance test:
http://www.symfony-project.com/forum/index.php/m/8863/#msg_8863 - netbear, on 10/12/2007, -0/+3It is obvious that PHP was misconfigured for this comparison but they didn't know enough to correct the problem before doing the tests.
Many excellent sites (like digg) use PHP in high traffic situations very successfully. You just have to know what you're doing. - claco, on 10/12/2007, -5/+8And it's not wonder that Rails is slower. It's not running in Apache itself like Django.mod_python and Symfony/mod_php. It's reverse proxying another process to litehttpd.
- tobyjoe, on 10/12/2007, -1/+4I quite enjoy both Rails and Django. I've not used Symfony. Lately, the majority of the work of my shop is done with Rails. We've had some pretty great performance, even with 0.14 and mod_fastcgi. We're now running everything via Lighty/FCGI, and the performance is better, but even our most n00b campaign handled a a bunch of spikes due to ads we ran on AdultSwim. I like Django, and have always enjoyed Python, but for our type of work, I'm so pleased with Rails.
- seanmc303, on 10/12/2007, -4/+7As I stated in another post, Symfony was misconfigured and therefore this was not a very accurate performance comparison for Symfony. Second, Symfony does not represent PHP as a language for performance. I love Symfony, but the PHP language's performance is not represented by a framework, nor is Ruby, or Python.
If you want some simple benchmarks go to:
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=ruby&lang2=php
If your argument is that people should not choose a language because it is the slowest of 3, Ruby should be the last language that you would want to use. Ruby is a dynamite language, but it is not the fastest. The article you just read was a Framework benchmark test, not a language benchmark test. - W3bbo, on 10/12/2007, -0/+3I've worked with both ASP.NET and JSP, and I feel the smaller, interpreted frameworks like PHP and RoR are less suited to "enterprise-grade" applications that scale well and are extensible. Sure, they're great for small websites, but I'd rather develop something like eBay.com or Amazon in ASP.NET or JSP rather than PHP or RoR, which is where the beauty of the compiled platform comes into it. (And we ASP.NET devs had freeware step-through debuggers since day 1 :) )
- jesusphreak, on 10/12/2007, -2/+5Mongrel is great. I would deploy Rails apps any other way at this point. Using mod_php, mod_python, or mod_python means you run into inherent scaling issues.
1) if you want to scale you need to add another Apache process and that is expensive (mem/CPU wise) - compare to Mongrel which is a very small and lightweight HTTP server
2) if something goes wrong, you have to restart your entire server - compare to Mongrel where you can just bring down one process or however many you need, while other apps run happily on
3) you can use Mongrel by itself...it is a full-blown server, so you can develop everything on it and its pretty dang fast, too. You can't just run mod_python or whatever, you have to obviously use Apache or another server with it.
Mongrel is one of the greatest things to come out of the Rails camp, imo. Before it, getting Ruby running on IIS was a pain. Now it is as simple as using IIS as a proxy to my little Mongrel application servers, one for each app. Simple, reliable, fast, and easy to set up.
I highly recommend Mongrel. - mark7kram, on 10/12/2007, -1/+4In fact, after reading the title I briefly thought that this was about Django Reinhart. Then I remembered that I was on digg.
- DannoHung, on 10/12/2007, -0/+3I should like to see this test performed again when YARV is the Ruby VM.
- jmacdonagh, on 10/12/2007, -8/+11Being faster doesn't always mean better. The "fastest" code is code that was written in assembly, but I certainly wouldn't want to be stuck doing that.
- theprodigy, on 10/12/2007, -0/+3It's funny . . . I've never heard of anyone choosing any of these frameworks due to their blazing speed. People choose them over vanilla PHP for development speed and pleasure, not for raw performance.
- matttt, on 10/12/2007, -1/+3We stated the specs used:
Test Hardware:
* Dell 1U server (unknown model)
* Dual Xeon 3.2Ghz (6400 bogomips)
* 2 Gigs of RAM
* 2 240Gig (?) SATA drives - diegoson, on 10/12/2007, -0/+2LiteSpeed + Mongrel/Rails how to. Probably the easier and fastest setup for any production rail app.
http://www.litespeedtech.com/community/wiki/doku.php - codahale, on 10/12/2007, -1/+3I think this is one of those areas which is really hard to get right.
First, there isn't any operational definition of "speed." Obviously they're looking at the number of successful HTTP transactions with a set timeout period, but this doesn't include latency, among other things.
Second, trying to write the same code across three different languages and three different frameworks is impossible, and your results become more indicative of your skill across those three languages and platforms.
Third, trying to keep the playing field level means that you aren't going to use "special features" of any one particular framework. If Rails makes page caching a snap, why not test with that? I certainly wouldn't ship a high-usage web app which didn't cache as much as possible, and how much is possible depends on the framework.
Fourth, the production environments for all of these have a *huge* influence over various metrics of performance. For the Rails app: what kind of session store were they using? Scalable apps would use memcached, but I doubt that's what they did. Did they turn sessions off if they weren't in use? Doing so can make your Rails app *scream*. Were they adding indexes to their schema? (etc.)
Finally, metrics for central tendency without standard deviations are useless.
(That said, I wouldn't be surprised if Django is faster--mod_python is sweet, and Python's got a great JIT system.) - bribera, on 10/12/2007, -1/+3@PhelixTheKhat:
The linchpin of any good performance test is that implementing the same exact design in three different languages will preclude differences in algorithmic efficiency. We're talking about the same person coding the same methods the same way in each language: if it's O(n^2) in one, it's O(n^2) in all of them. From tests like this it can be generalized that PHP isn't that fast, although it usually does beat Ruby.
Obviously, this article is referring to a framework test--in this situation, misconfiguration or different algorithm choices can effect the test outcome. But, one of the great attractions of a slower language like Ruby is a great framework--if PHP's framework isn't so great, people will be less attracted.
And IMHO, PHP is "easier" for new programmers to pick up because it doesn't require good use of OOP or well developed metaphors like MVC. It really does lend itself to spaghetti string code. - inactive, on 10/12/2007, -11/+13thats strange, i'd call my job a real one, and i've never touched asp.net, you retard.
- converge, on 10/12/2007, -1/+3the ironic part is he was missing fingers.
- adamlindsay, on 10/12/2007, -0/+2Love Rails, glad I will never touch .NET again. Well hopefully. God I hope not. :)
- bribera, on 10/12/2007, -0/+2One more thing to add: RoR, fastcgi, and apache result in an old (circa '96) "zombie process" issue. After a while of running, the server will accumulate quite a few zombie processes. While it may stand up just fine during a benchmark, the configuration is too capricious to use effectively in a production environment.
- tobyjoe, on 10/12/2007, -0/+2b7j0c -
I didn't mean to imply that it was conjecture - only that it was insufficient criteria to make the point you were trying to make. Like I suggested, and you agreed - there are criteria of specific sites that could rule out the out-of-the-box use of one of these frameworks. I work in advertising, and mod the HELL out of my Rails installs all the time. I know the demands of ad-driven sites and do believe that Rails, at least, can be extended easily enough and can work with legacy services quite well. I know I've done it.
I agree, though, that a vanilla install likely won't power a site that is heavily integrated with other systems without some work. That's different criteria, though, than stated in the first remark, and worth clarifying for people who don't share our specific background/industry. - seanmc303, on 10/12/2007, -0/+2@ matttt
Thank you very much for the link and this report matttt. The main bottleneck issue appears to be with Propel. Not PHP. - jmacdonagh, on 10/12/2007, -2/+4@robwistar
True. -
Show 51 - 100 of 105 discussions



What is Digg?
The Digg Toolbar for Firefox lets you Digg, submit content, and keep track of Digg even when you're not on the Digg site. Download the official