Do you use django?

I’m interested to know, of the relatively small portion of people who use the python/perl section of the forum, how many write django applications and how many are here for general python use (ie not writing django)?

After getting some experience in both areas, I don’t see myself moving to python for any web development issues unless it is something that requires multithreading. I’m really hoping that PHP can catch up in this area as it performs MUCH faster than python but it’s all for not without a better library to handle multithreading. I am currently writing some classes around pcntl and shmop, but this can only take you so far…

Still getting into python here but I certainly won’t be using Django – it is nifty but it is way too thick for most things and really is a relic of the HTML era. I am getting quite partial to flask myself.

Flask here. No Django though I did download it once and have books lying around from back when I had the intention of playing with it. Which I may still do sometime soon.

But it does borrow a lot of things from Django.

Django is big and filled with magic, which many people who need big and want magic stuff-taken-care-of-for-you like. It also comes with a pony.

I would love to hear you elaborate on this. Why is the HTML era less relevant now and what is / will be the new era? This is a topic that intensely fascinates me.

Me too, the HTML era is still well and truly upon us.

Perhaps @wwb_99; is Javascripting All The Things.

Unless that was a bit of a reply to the original question, which could be viewed as

do you use Django (for web junk)? Or just plain old Python (for non-web junk)? Or, more interestingly, does anyone use Django for non-web junk much?

Though I don’t think I’ve seen any non-web uses of flask… it’s a framework sitting on a toolset for… a webserver. That sounds like it will involve HTML at some point.

I missed an interesting Dutch-Django group meeting the other day (too far away too late) where someone gave a talk about a cron-job replacement setup (Job-Runner) he’d built using Python and ZeroMQ. So far as I know, no Django there, and I know that particular company the guy works for tries to mostly run all its servers on Erlang (woo!) but then, Django people consider themselves Python people and are happy to talk all things Python.

I use Django for all of my Linux based web work.

It’s one of the nicest frameworks I’ve had the pleasure of working with. I initially picked it up after noticing how strong the Python market is currently, and after playing around with it on both PostgreSQL and using Google App Engine I’m definitely a fan of it. I’m a .NET developer by trade, so I’m used to compiled, static-typed languages, but I found Python to be nice to use and Django was easily the nicest Python framework to use for building real-world web stuff. Web.py was fairly good, and Flask was alright, but neither of them can hold their own against Django.

Django was so easy to use that I managed to write a fairly secure blog script using Django and Google App Engine in about three hours.

I don’t get the hate for it, because quite frankly Python is a million miles ahead of PHP and if I had my way I’d be dragging the newbies of these forums away from WordPress and PHP hacking and towards a real language and framework.

How about hosting support for Django/python ? For instance is it as wide spread as the support for php is ?

I only looked at web.py after the unfortunate incident with Aaron, but flask is a bit hard to compare to Django. Django is like a web framework with the kitchen sink. Flask is a micro-framework: very minimal so as not to make choices for you or get in your way. Django makes lots of choices for you and has lots of stuff built-in, which is great when that’s exactly what you need.

So far as I know, the cheap-o hosters still don’t want to host anything not PHP because PHP comes as this one small thing that does everything (for better or for worse). Hosters don’t like their clients downloading modules and traditionally people have had trouble getting Python libs, Ruby gems and CPAN modules on cheap hosters. I don’t think that’s changed, and I think anyone wanting to use non-PHP needs to consider non-cheap hosting.

Sorry it took so long to get back to you – was out of pocket for the weekend. In any case I’m still really looking for the right term – HTML Era isn’t right, but let me elaborate a bit. And for the record I’m not javascripting all the things :slight_smile:

When I got into the web thing back in 2000 or so the world was a vastly different place. We had just got out of the world of manually parsing POSTs using perl scripts and needing to write anything performant in C or C++. On the low end ColdFusion had shown the way, and PHP and classic ASP were coming into their own as web-focused scripting languages. Java servlets were taking over the enterprise spot from C and C++.

But there was still tons of manual work involved in building HTML-based CRUD apps – which are still all the rage. We started to see the rise of frameworks focused on making it easy to deliver these sorts of apps to the browser. These frameworks took various forms and have had various depths, but as web applications tended to have very common problems – at least if you are focusing on building CRUD apps for desktop browsers – an eventual shape won out. By the latter part of the '00s we had a number of frameworks featuring:

  • MVC pattern based.
  • Feature a built-in object relational mapper and some presumptions about persistance using a SQL-based database
  • Feature a built-in validation engine for basic form validation, including javascript hooks
  • Typically enable auto-generation of much of the UI from some sort of model object or database table.
  • Typically have a built-in authentication mechanisim

Some examples of these sorts of frameworks would be Rails or Django and to a lesser extent things like ASP.NET. They all make large presumptions about the shape and nature of your application and environment. They all were built to make it fast to deliver browser/keyboard based CRUD apps quickly. Moreover, they all have grown pretty thick and complex over the years – I know I typically spend time removing components I don’t need from new projects before every writing a line of code and alot of time worrying about what was included I forgot to remove.

As these frameworks matured – and by matured I mean got thicker and added more bells and whistles – we started to see lots of applications for web technologies (read: HTTP and RESTful services) beyond the browser – in many ways the apps you see on all the smartphones and tablets are little more than specialized browsers using a HTTP back end and a thicker front-end. We have started to see full-blown javascript applications as well which didn’t need alot of server-side html rendering help as it was all done in the browser. Or, there are lots of things out there where the primary concern is not html generation for CRUD usage in a desktop browser. At the same time, the HTML one needs to deliver in 2013 is a lot simpler and lighter as web standards have won the war.

So we are starting to see the rise of much thinner, lighter micro-frameworks that typically focus more on delivering JSON or simple HTML rather than big, thick HTML renderings. Some examples would be sinatra (rails), flask, node.js, twisted or manos de mono (think node for C#). These frameworks feature many fewer presumptions – most start as pretty raw wrappers around the native web stack on their platforms and add components from there.

This isn’t to say there is not a place for HTML – I’m in the pay TV industry here in the US and just about every single set top box UI coming down the pipe is based on HTML5, oftentimes rendered in “the cloud” and piped back down to the box. Some of the more interesting mobile apps are hybrid HTML5 / native apps. The HTML era is ending, long live HTML.

Great points, wwb_99. Thanks for the elaboration. Couldn’t have said it better myself.