630 karma · joined September 9, 2010
Twitter: @j2labs
Code blog: j2labs.tumblr.com
Code: https://github.com/j2labs
Your database layer might change, for whatever reason, so you adjust a few queries for loading data and you're back in action.
In addition to this many people haphazardly choose their framework and make the mistake of using Tornado without understanding how nonblocking I/O works. If a user chooses.
Brubeck, they would get nonblocking support for free, which makes it a considerably safer haphazard choice.
In spite of this, however, Brubeck indeed aims to be a one-stop shop. It uses coroutines + nonblocking I/O to make scaling up easy but it also a web.py style routing system because all of us know this style already.
Brubeck + DictShield are both projects that have risen from building API's for startups. I aim to make Brubeck as useful as possible for building web projects a quick and easy process, without sacrificing easy scaling.
My thinking here is that a solid model should help developers build their idea fast and make it through the early days of startups without breaking their backs.
I don't particularly like working with Tornado because it offers little support for the plethora of Python drivers that are blocking only. On top of that, the callback model, while powerful, can lead to some seriously confusing code.
I believe people will find the combination of Mongrel2, eventlet and a database agnostic modeling system (DictShield) very flexible.
Beyond that I attempted to create a familiar interface for everyone who's used a pythonic web framework before. Indeed, a lot like Flask, but also like Tornado.
* Tornado style routing: https://github.com/j2labs/brubeck/blob/master/demos/demo_min...
* Flask style routing: https://github.com/j2labs/brubeck/blob/master/demos/demo_noc...
There are many python frameworks and each serves a different need. If you are a Tornado user but find the blocking / nonblocking paradigm confusing, you would probably get a lot out of Brubeck because it replaces the IOLoop (like Twisted's reactor) with a simpler system, eventlet.
I'm glad you think it's hip! It's only a couple months old.
Could you clarify your view on those two issues?
I was wrong when I said 8.
Chrome, the browser, around version 8 (give or take). How much sense does that make?
Is that hard, for some reason?
(I'm legitimately unsure why this works, not saying it's impossible)
On top of that, you get nonblocking I/O almost for free, similar to what node attempts to provide, where instead of real nonblocking I/O the system will make blocking I/O look like it's nonblocking. Scala does this too.
But, users of Twisted could also use inLineCallbacks for a similar feel, though it's not required. I'm curious if Node.js could just build the same?
But for people who already love JS, node is a dream come true. It's really fast. Not as fast as Erlang, but more than fast enough to justify building massive projects in it. Assuming you are one of those that loves, or believes in, JavaScript...
http://www.betabeat.com/2011/04/20/nodejitsu-raises-750k-fro...
I have also heard Charlie Robbins say you can't build a web framework without threads, in spite of Python having multiple single threaded systems. When challenged, he said, "that's still a thread." Riiiiight...
So, back at you nodejitsu.
Yahoo is a good counterpoint, though I'd suggest externalities like a lack of visionary leadership or a lack of intellectual capital, compared to their rivals, are more to blame.
Edit: Schultz wasn't a founder, but I believe he was their first visionary leader.
You just can't fake the magic of the founders.