Hacker News new | ask | show | jobs
by nostrademons 4226 days ago
Stick with Node because the job market is currently hotter for it, get into a hot startup to get practical experience and make some contacts, and then wait for the next technology cycle. I suspect that both Node and Django will be obsolete in roughly a year or two.

(My background: I started doing Java Swing before college; wrote a bunch of PHP in college; got my first job working on Java webapps with servlets and JSF; founded a startup that successively ended up using web.py, Pylons, and Django; got into Google where I ended up writing webapps in C++; participated in the rewrite of that C++ server in Java, and am now using straight Django for my second startup. The technology world really does move in cycles. Use whatever you're most familiar with, learn it well, milk all you can out of it, and then move on only when you have to. You can save yourself years of effort by avoiding the latest fad and "grass is greener" syndrome.)

3 comments

> I suspect that both Node and Django will be obsolete in roughly a year or two.

Quite a bold statement about Django, which I can't agree with.

Django has bee around since 2005 - for 9 years. Longer than node.js lifespan. I don't really see any large competitors in the web framework field that would push Django from its current position.

Check careers.stackoverflow.com for jobs tagged with Django - quite a lot. That shows rather strong position of the framework on the jobs market. Those jobs may not be hip or not in startups, but nevertheless - they are there.

Anyway. Certainly framework fading away is not something new, but I would be surprised if that would happen to Django in the next two years. Five - possible. Two - doubt it.

By obsolete, he probably meant that new companies wouldn't be adopting it anymore, and that the only jobs left would involve maintaining legacy code.
I seriously doubt that.

There are new sites added to this index every day - https://www.djangosites.org/

Chess.com also relaunched using Django in their webstack.

I'd say that things are going to pick up for Django - they've got a solid plan moving forward and they can nip at rails devs by introducing websockets, SSE and WebRTC features which rails doesn't have (out of the box).

The main weakness for Django in my opinion is the community isn't as vibrant and energetic as it is with node or rails.

My own startup is using Django, so I'm certainly aware that there are new sites being launched with it every day. I was one of them last week. :-)

What I mean by obsolete is that it is no longer the hot new thing on the bleeding edge of technology. I chose Django because it wasn't the hot new thing; I'm already familiar with it, I've written a half dozen sites using it, and a general rule when founding a startup is that you shouldn't compound market risk with technical risk. Right now, my biggest problem is building a product that users want; I want the shortest path toward getting the big things right, not the sexiest little things.

But Django is definitely showing its age, and the environment has changed in ways that make you work around the framework instead of with the framework. Users are getting accustomed to logging in with Facebook or Google instead of having a separate registration system for each site; this is available with django-allauth, but then what's the point of having a built-in authentication system? Users are increasingly getting accustomed to direct-manipulation user interfaces instead of forms; Django has no support for that, and newer alternatives like Meteor beat the pants off it in that regards. Users are shifting to mobile; Django mobile support is spotty, largely provided by a set of sparsely-maintained third-party addons.

And then there are new technologies that promise to throw a huge monkey wrench into the web development ecosystem. Polymer & webcomponents are coming down the pipe, quickly; they introduce the idea of an application as a client-side set of individual downloadable components, which means that a lot of Django's routing, form, and templating infrastructure is no longer relevant. The increasing use of storage options other than RDBMS (Redis, Mongo, RethinkDB, protobufs or JSON on disk) makes the ORM less useful. JS-heavy apps shift the focus from building HTML quickly to building bundles of related JS functionality quickly, and Django has no built-in features for that. The most common solution, Bower, is pretty heavily tied to the Node.js ecosystem.

It should also be noted that node.js jobs are practically non-existent outside of the startup scene in tech heavy cities.

Best to do market research for the area one actually resides in, at least until you have enough experience to do remote positions.

'I suspect that both Node and Django will be obsolete in roughly a year or two' I don't see this happening for Django any soon. It is very mature and has a good adaptation rate.