

Ask HN: Will Python grow some Rails? - newsisan

Just an unconstrained opinion from someone who has used neither.<p>Python needs a rails, one that appears polished (nice website design, nice graphics) and has enough resources for learning it (learn jetpython the hard way) - because as an outsider looking to go into programming web apps, rails seems much nicer with the appealing sites being made in its ecosystem. It should be like rails in the sense that for newbs, all the default config is done and  will have the best options for new users, like rails does.<p>Right now, based on my perceptions as a non-user (which is an important crowd), python appears nicer to use but given there is no killer web framework agreed upon to the extent of rails, I am more likely to start learning ruby instead.<p>Will it happen for python? Posts like this seem a step in the right direction: http://www.scribd.com/doc/37113340/Why-Django-Sucks-and-How-we-Can-Fix-it
======
po
Keep in mind that that "Why Django Sucks" talk was given by a guy who very
much loves Django.

I doubt that the Python community will ever spawn a web framework as _slick_
as Rails. I think that the people who choose Python tend to have a very
pragmatic, engineering bent and I don't think they value the slickness as much
as the Rails community does. Keep in mind that Python is one of the few
languages that Google writes code in.

Probably if Rails closed up shop today, more of the people that value that
would move to python. Rails tends to draw what I would call the "web 2.0
crowd" who make very slick, very stylish websites. You can do that in Django
too but you have to be willing to hire a designer. Ruby/Rails tend to see that
as a core competitive advantage. Python has a much longer history and
therefore tends to be more conservative. You can see that reflected in
Django's release/deprecation schedule. Neither of those approaches are bad
things. Diff'rent strokes for diff'rent folks.

I think both of those languages/frameworks are better for each other although
Python frameworks are better at borrowing ideas from Rails than the other way
around. That's probably true of many frameworks though. They're not all that
different, and I think you should probably learn and/or try out both.

I think both Django and Rails need to look out for the winner of the web
battle in what I see as the up-and-coming language/framework:
Javascript/Node.js

This is all, of course, just my opinion.

~~~
MisterWebz
Could you elaborate on the node.js part? I thought it would be mainly used for
certain aspects of a web app while the rest would be written in python or
something similar. I'm not an experienced programmer so i really have no idea
how this will turn out.

~~~
po
Node.js is a lower level event framework written in Javascript and run inside
of Google's V8 engine. You're probably familiar with a similar event driven
javascript framework: jQuery. Node.js is like that but instead of clicks and
mouseover you have streams and processes. You just attach code to these server
events.

From the node.js docs:

 _Many objects in Node emit events: a TCP server emits an event each time
there is a stream, a child process emits an event when it exits. All objects
which emit events are instances of events.EventEmitter._

You will probably have to write a JSON API for your web app anyway. The
advantage of Javascript is that you can push logic down to the client as well.
You send the data down, and have the Javascript code running on the client
insert it into the DOM directly. There are already pretty complete JS web
frameworks (google it) and you can start to see that the "web app" which
produces html isn't really necessary in that model.

It's all still a bit bleading edge. I don't recommend it for beginners quite
yet, but keep it in mind. Your choice of which framework to learn isn't like
"which house do I buy because I have to live in it forever." You can - and
probably will - move soon. You're really investing in your ability to figure
out web frameworks.

------
grigy
How about Django? I thought it is the python's rails.

------
robwgibbons
Django is the Rails of Python.

