August 6th, 2013, 11:56 AM
How is the python web programming ecosystem?
Compared to Java, .net, php, etc., How "good" or "big" is the Python ecosystem? It is difficult to put into a question, but I don't see a lot of webstuff in Python but would really like to use it. I've only seen Django, and Python does not really seem to do well for templating. But it is very OOP and leads to good design.
By ecosystem, I mean IDEs, community (web particularly), resources for web, and so on.
August 6th, 2013, 12:48 PM
If you are talking web frameworks, then Django is the most popularly used python framework, but it's not the only one. There is also TurboGears, Zope, Grok, Pylons etc. These are only some of the popular ones, there are a lot of other frameworks as well. Similarly, there are also a number of popular templating frameworks for python.
As for IDEs, there are a number of them. First, there is IDLE, which comes included with python. A number of editors also support python (syntax highlighting, auto completion, context help etc.). Please see:
for a list. (Oddly enough, PythonWin doesn't seem listed -- that's the one I use when programming in Windows. PythonWin comes included along with the python windows extensions package)
Up the Irons
What Would Jimi Do? Smash amps. Burn guitar. Take the groupies home.
"Death Before Dishonour, my Friends!!" - Bruce D ickinson, Iron Maiden Aug 20, 2005 @ OzzFest
Down with Sharon Osbourne
"I wouldn't hire a butcher to fix my car. I also wouldn't hire a marketing firm to build my website." - Nilpo
August 6th, 2013, 01:29 PM
Why don't more people use it for the web? Is it because it is harder or at least you need some knowledge of oop?
August 6th, 2013, 06:38 PM
[/code] are essential for python code and Makefiles!
August 7th, 2013, 02:57 AM
Originally Posted by ooprogrammer
Anyway, you don't need knowledge of OOP per se. I write mostly functional-style code for the web and only touch the object system of Django where it makes sense to. Naturally this involves use of the host of factory classes Django makes available, but those objects aren't talking to anything or messaging around for the most part -- they mostly represent a structural heirarchy of function containers (a consequence of the way Python's module system works with instead of against its Modula-3 style objects). The object system of Python is quite flexible, as are the support mechanisms for most other programming styles -- you're not forced into doing anything any certain way, but there are ways that are more "pythonic" than others, though this rarely has anything to do with whether user-defined objects are employed or not.
On non-trivial schemas that face the web and don't actively simulate anything OOP is a horribly convoluted proposition -- and "active simulation" is a farce on the web anyway, considering the statelessness of the document publication protocol the web is built on... so functional mapping of inputs to outputs make the most sense there anyway. But most people are obsessed with OOP, especially those in management, so there's plenty of job security wrapped up in maintaining the accidental complexity of OOP-only stateless web code.
Come to think of it, "stateless OOP" is an oxymoron, which is nature trying to tell us something...
On the way to getting a rendered answer to return to the web server objects may or may not be involved, but that's implementation detail living within beyond the veil of abstraction (and as I mentioned above, OOP on a non-trivial schema is a pain anyway).
Blah blah. Anyway, there are tons of Python web frameworks and a rather large Python web dev community. But from the flavor of your questions it sounds like you might like Ruby on Rails more.
August 8th, 2013, 11:33 AM
I prefer Flask myself, though I'm a fairly recent convert from PHP.
I wrote up my opinions on going from PHP to Python in a blog post a while back, you may find it edifying:
The reason it's not more popular than other languages/frameworks:
- PHP: I can get a server with PHP from just about anyone for a couple dollars a month. Most Linux distros do LAMP out of the box. It's just too ubiquitous and PHP is conceptually easier for beginners coming from doing flat-file HTML development.
- .NET: Microsoft. What else can I say?
- Java: Enterprises love Java, most colleges teach Java, tomcat is mature and powerful.
- Ruby: Rails was first-to-the-game with easy-to-deploy web frameworks, and to someone who's only done PHP or Java, Ruby seems like the Promised Land. Ruby can be a fun language in its own way.