The future demand of Django

Hello. I really enjoy using Django, and want to get a job in it. I have created multiple projects using it. The problem is that I am 14 years old, in the uk studying for my GCSE exams next year. I know I 100% want to be a web developer when I am older. Maybe 10 years from now or after university.

My question is will there be demand for Django in the future. So when I do start working, will Django still be popular. What does Django’s future look like? Will there be demand in 10 or 30 years for Django. Will it be used by multiple companies? Also is Django currently declining in popularity and demand, or is it increasing. What is your opinion on all of this?

<opinion mode>

tl;dr: It’s more important to learn and understand the fundamentals than it is to specialize in any technology that uses them.

Longer answer:

I’m at the other end of the career spectrum. I’ve been a programmer for more than 40 years now. I’ve survived in a field that is always looking for the “new and shiny” “next big thing” by making sure I’ve dug beneath the surface of any topic or technology that I’ve worked with.

What this has done has been to allow me to grow and change over time by learning new technologies as how they relate to an earlier generation. (The rest is merely details.)

For example, Docker is considered a “new technology” in terms of application isolation between instances. However, fundamentally, it’s not far removed from IBM’s OS/MVT which was released in 1968. Full virtual machines date back to 1972.

Now, is my specific knowledge of OS/MVT or VM/CMS of any practical use any more? No. Not in the least. But, the fundamental concepts still apply - in many ways, the names have changed but the ideas stay the same.

Generally speaking, all technologies eventually become “obsolete” - but they don’t necessarily disappear. (My printer tape channel punch isn’t very useful beyond being a paperweight.) From the software side, there are still companies relying upon software written in COBOL, Fortran, and a host of other lesser-known languages, tools and utilities - and will be for years to come.

So what does this mean in terms of your specific question? My best answer is, “who knows?” - but that would be my answer regardless of how you framed that question.

But, if you dig into the fundamentals - as far down the software stack that you can go - and really learn about how HTML, CSS, JS, HTTP/HTTPS, TCP/IP, Python, networking, et al, all work, you’ll be prepared for whatever direction the industry takes.

Just in the past 20 years, I’ve professionally worked with Perl CGI, Java (Servlets/JSP, Spring MVC and LifeRay), PHP (Mambo/Joomla, Drupal), ASP.NET (custom development), R (Shiny), and Python (Twisted Web, Flask, Bottle, oh, and Django). And this is from being employed with just 3 companies over that time.

What has remained constant is that all these rely upon the same underlying technologies. Fundamentally, they all accept an HTTP request and generate HTML that is returned as part of an HTTP response, being transmitted across a TCP/IP connection.

So what I see is that those technologies aren’t going anywhere soon. Certainly they’ll evolve - I’ve seen JavaScript change from a simple tool used to do some primitive modifications on a web page to a full platform capable of hosting complete client-side applications. HTML/CSS has continually expanded to provide more and more features for customized, dynamic and responsive displays. And HTTP now includes WebSockets for full two-way communications - an extension of a traditional TCP socket that resides within the HTTP layer.

And that is what I believe will survive the longest.

</opinion mode>

2 Likes

@KenWhitesell Thank you, great answer. You have worked with a lot of technologies, I’m impressed. Would you say Django is your favourite web framework personally out of all the other frameworks you have used? Also, what type of web apps is Django not good for?

For the type of work I’m doing now, yes, Django is clearly the best fit. It’s also the one I enjoy working with the most.

Types of web apps Django is not good for? There are a few categories where that would be true.

  1. Extremely resource-constrained systems, systems without persistent writable storage, or systems without access to a database.
    (I work with some embedded systems that make a Raspberry Pi seem big, and a full HTTP handler impractical - yet exposing some data through a very primitive response is quite useful.)

  2. Applications associated with data / environments already using a different technology. (Example: You’ve got one web site built using Drupal. You want to stand up another site sharing some of that data. Most of the time you’re going to be a lot happier extending that environment using Drupal than you are trying to wedge Django in there.)

  3. “Static page” or “Brochure-ware” sites - sites that can easily be services by something like nginx without any underlying application layer.

  4. (Perhaps my most controversial answer for this topic) An application for which a “best-in-breed” solution already exists in a different category. (Note: This is from the perspective of someone who does 95+% of my work internally for my employer as opposed to “customer-facing” web sites.)
    For example, if I need to set up a “file-sharing” / “file-repository” portal, I’m not going to build one in Django. I’ve got too many choices from other technologies to want to re-invent the wheel. Now, if that were just part of a larger package having other responsibilities, I might consider it as an app within a larger project - but that’s just a special case within the more general answer.

Ken

I’d echo everything Ken says. “The more things change, the more the stay the same” comes to mind. There is very little in computing that you can’t trace some part of the original idea back to the 50’s or 60’s.

Also I’d point to the power law distribution of the lifetimes of technologies, or “the Lindy effect.” TL;DR is that the longer a technology has been around, the longer you can expect it to be around. Django and Python have been around a fair bit longer than many other actively discussed web technologies. Even moreso for its foundations: CSS was created in 1994, HTML is by definition as old as the web, and SQL databases are positively “ancient.” So learning them is a pretty safe bet that they’ll be around in some form in the future :slight_smile:

I gave a talk on the lifetimes of technologies at PyCon Namibia last year - see my slides here: https://github.com/adamchainz/talk-technologies-that-will-be-around-in-21-years/blob/master/Technologies%20That%20Will%20Be%20Around%20in%2021%20Years.pdf - sorry it’s not a blog post, but you can use it to look up the concepts on Wikipedia etc.

Hey, wait a minute. If SQL databases are “positively ancient”, and I’ve been around longer than SQL databases… :stuck_out_tongue_winking_eye: (BTW, absolutely love the reference to the “Lindy effect”.)

1 Like

Thank you, this helps me a lot and gives me a lot of reassurance :grinning:

Ok great, thank you.