Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

For many web programming tasks, your user-perceptible speed and/or maximum system loads will not be dominated by the performance of your web application but rather by database, I/O (including networking), and client performance (JS performance, aggressive asset caching, CDN usage, etc etc).

Go or Java are wonderful languages if you have serious number-crunching needs or if cutting your server budget in half would save you a billion dollars. My server budget is $500 a month and if you doubled the performance of all of my servers it would be $500 a month. I'll elide the detailed explanation of the whole "User clicks a button" to "User sees something happen" HTTP request waterfall chart but my Rails app is generally less than 5% of it.

YMMV if you're Google, but I'm not Google.



Plus, Django/Rails pretty much have a library for anything you'll want to write. You can cobble applications together in days, and I've done it multiple times. I tried Go for web development, but I had to reinvent everything, which was just too slow.


Not entirely true that the database is the main concern[0]. The overhead of the framework/language has a massive impact.

That said, I'm not Google either, and I'm happily using django and love using it.

[0] http://www.techempower.com/blog/2013/03/28/frameworks-round-...


How about in Round 7 that Python surpasses Nodejs?

http://www.techempower.com/benchmarks/#section=data-r7

Python didn't beat NodeJS in Database queries though.

Yes Go is fast, but Go is also cluttered with its static type system.

Personally I feel pain to deal with flexible JSON marshal/unmarshal, in Python dict() is nearly 100% identical with JS objects in value.


> How about in Round 7 that Python surpasses Nodejs

I can't find what you're referring to. Node was still infront of Django in the JSON benchmark.

Django (until 1.6) hasn't had connection pooling for the database either. Updating those benchmarks with pooling should make significant differences.

But my point was that the framework itself can have a huge impact. Database and other I/O does have overhead, and it may even be significant. But it's not necessarily the biggest factor.


You are comparing a Web framework (Django) with a language+network runtime (Nodejs).

The Nodejs web framework is Express, behind Bottle and Falcon.


Oh, I see. But "python" wasn't represented, which confused me. There is still a large discrepancy between the different frameworks in the javascript and python set.

But the original point was that database and I/O make the largest difference. After restricting the set of languages and frameworks to python and javascript, I can only (now) agree.

109,000-5700 rps for JSON requests, and 4800-117 rps for multiple database queries. Quite significant.


I agree with ya. There's big room for db connection improvement in Django.


And before you do anything else for performance, address the template-rendering in Django: https://speakerdeck.com/nickbruun/lessons-learned-defying-jo....




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: