

Planet - Python realtime framework, the framework behind battlefields battlelog - mars
http://www.planetframework.com/tour/

======
raphman
For reference: _Battlelog: Modern Web Applications are Here_ (blog post by
Werkzeug/Flask dev) [1] and HN discussion [2].

[1] [http://lucumr.pocoo.org/2011/11/15/modern-web-
applications-a...](http://lucumr.pocoo.org/2011/11/15/modern-web-applications-
are-here/)

[2] <http://news.ycombinator.com/item?id=3236820>

------
o1iver
To all the people wondering: "why is this better than Flask" or "why should I
pay XXXXX$ for something I can get for free". The huge difference is the fact
that by purchasing this you have a right to ask for support and if it doesn't
work out maybe even sue them. If you are running Battlelog XX thousand dollars
is nothing. Imagine what it would cost them if Battlelog was down for a day.
If they used Flask they may depend on Armin being available to fix a critical
difficult bug. That is why these companies pay the big bucks: support and
accountability.

~~~
kbutler
There seem to be two approaches when a problem occurs:

\- Find someone to blame (sue them)

\- Fix it (myself or pay someone to fix it)

I like to use tools that give me the second option (and planet probably does,
but I disliked the "maybe even sue them" - better to have the freedom to fix
than the freedom to sue).

~~~
cgbystrom
Planet Framework is designed from the ground up to be real-time and scalable,
but it also uses a lot of existing open-source projects.

For Planet Framework customers, we offer "partner source". Meaning, that
customers will get full access to source code and also submit their own
patches.

~~~
nigma
Are you also going to open-source some parts of the project?

~~~
cgbystrom
A couple of the components used are actually already open-source:

<https://github.com/esnme/ultrajson> \- Super-fast JSON serializer.

<https://github.com/esnme/locust> \- Scalable load testing tool capable of
simulating millions of users.

<https://github.com/esnme/amysql> \- 100% async/event driven MySQL driver.

<https://github.com/hjlarsson/gevent-memcache> \- memcached driver for gevent.

~~~
m0hit
Thanks for this list.

We've been building our own load testing tools on python, and it will be quite
helpful to learn from the implementation of locust.

------
vetler
Not sure what to think about this. Seems very well documented and thought out,
and the developer tools seem great. However, the price is very steep. It's a
bit unusual to see Python frameworks with this kind of pricing. Perhaps I'm
too used to open source, though.

------
ozataman
The video runs into an edge/problem case inside of the first 60 seconds, the
solution to which is apparently something you have to memorize or get used to.

"...to add a component I do this... you see the error here saying that... to
fix it, just click on this word and hit alt+enter.."

I couldn't continue after that.

~~~
dextorious
That's just laziness on your part.

Do you expect them to explain all the concepts and underlying code in one
video?

Also, the click+fix it thing actually showcases a very helpful IDE feature.

~~~
ozataman
What I was pointing out was bad defaults and a lack of polish. The very first
introduction should not start with a warning or an error case. When I'm
learning "yet another server technology and IDE", I don't expect to walk
through a bunch of exceptions just to get started. It's a big turn-off.

Check out any of the recent string of popular technologies and see how much
effort people put into making smooth first impressions.

------
smountcastle
This looks very interesting, though it definitely needs a free edition for
developers to play around with. Perhaps limit the maximum number of concurrent
clients or other artificial scaling limits. At €99/month there's no way I'd
try this out even for 1 month; these prices are definitely targeted at the
enterprise.

------
sbarre
I wonder if the timing of this release (and the relation to the Battlefield 3
web presence) is a poke at Activision's infrastructure/scaling problems of the
Call of Duty Elite web platform?

The problem of large dynamic (to avoid "real-time") distributed web
applications with big teams of developers that have to scale quickly sometimes
during crunch or for emergency scaling post-launch, is not the easiest thing
to solve so it's nice to see products aimed specifically at that space.

------
chillax
Seems like they are using a derivative of PyCharm for the IDE-part?

~~~
sarnowski
Indeed, I wonder if they have a deal with Jetbrains for that.

~~~
cgbystrom
Yes, we do.

------
zokier
For some definitions of real-time.

------
LeafStorm
Why did they invent _yet another_ framework-specific template language? What
is wrong with Jinja2 and Mako?

~~~
cgbystrom
The reason behind "yet another template language" is that we compile down to
both Python and JavaScript. Allowing us to render templates both on the
server-side and client-side. Sharing templates between these two gets very
important when you develop real-time web sites.

(I'm one of the developers behind Planet Framework)

~~~
LeafStorm
Ah. That makes sense. Both Jinja2 and Mako are very much tied to Python.
(Though compiling a subset of Jinja2 AST's to JavaScript would be an
interesting exercise...)

------
viandante
Ok, nice fancy IDE. I use vim, how is this different to me compared to
flask/django? If it is repetition of code in the templates you want to avoid,
what about noir+hiccup?

I don't know, am I missing something?

~~~
zeroDivisible
Isn't the IDE similar to IntelliJ Idea or PyCharm?

~~~
itsnotvalid
It's based on PyCharm from the "Licenses" page.

ref:<http://www.planetframework.com/documentation/1.10/Licenses/>

------
candlll
Someone has recently mentioned that this framework is soon going to be
"released". Was it meant as in "free to use"? The pricing is quite steep, but
otherwise it looks amazing.

------
john2x
Not to be confused with Planet[1], the feed parser/reader).

[1]: <http://www.planetplanet.org/>

------
runjake
I'm not sure I'd use BattleLog as the shining example of our framework.
Battlelog is quite flaky and not as responsive as it should be.

~~~
timdorr
When have you experienced this? I've found it to be pretty rock solid.
Especially compared to the game client...

------
boothead
Not a great advert to have an internal server error on the contact page!

------
pnathan
When I saw real-time, I thought you meant real-time as in medical devices,
where data incorrectly processed in the interval means someone may die.

I believe that would be a novel and very interesting use of Python, possibly
even requiring a new interpreter...

