Ask HN: Are JS frameworks the future of web development?

8 points by gautamnarula ↗ HN
The development of server side and client side Javascript frameworks has got me thinking about the future of web development. Given that there are now well established JS frameworks for the full web dev stack, will they eventually supersede the non-JS frameworks?

With those frameworks, you run the risk of having "backend" guys who only know Ruby/Python/Java, and "frontend" guys who only know JS/HTML/CSS. I fall into this camp--I have experience in server side development (a bit of Rails, and Django), but have virtually no JS/frontend dev experience. It seems like this problem is mitigated somewhat by having both server side and client side frameworks in the same programming language (JS).

Why would someone new to web dev not want to go with the JS frameworks, since it's easier to become a full stack engineer? As someone who is still relatively new to web programming, would it be advantageous for me to learn node.js and one of the frontend frameworks deeply? Right now I'm developing in Django since Python is my favorite programming language, but I haven't gotten too deep into it yet.

9 comments

[ 3.0 ms ] story [ 32.7 ms ] thread
If you're a web developer and can only learn one language, it should definitely be javascript. If I could only learn one frontend framework, it would be angularjs.
I would second the AngularJS recommendation. As to the original question I should think that very much depends on what you mean by "future".

Certainly in the foreseeable future Javascript provides almost the only practical method of delivering complex front-end applications. As a result of this, it's star has risen and plethora of great tools follow in its wake (AngularJS, Ember, Backbone etc...).

However we obviously have no concept of what form the web may commonly take on a larger timescale (unless you're a futurologist - but they seem to get it wrong as a pastime). My best bet is that in the more distant future Javascript (in whatever form it may take at the time) will be in use, but such use will be abstracted beyond the purview of many developers.

I'll add that javascript isn't the only choice for full stack development in a single language. Personally, I'm a big fan of clojure/clojurescript. But knowing js definitely helps...
Do you have a recommended path to learning JS and a frontend framework? I never did much beyond a making a trivial JS app, and that was over 10 years ago.
You should definitely try out JavaScript. At least in the front end. Later on you can experiment with Node and see if you like it.
This post could well have been written by me as I am also in the same boat as you :-)

Anyways, I have chosen to stick to Django for backend( and Ember for frontend). My reasons mainly are the relative unsuitability and incompleteness of Node when compared to Django. If you are onto learning stuff, and not doing some serious (shippable) stuff, I'd say relish the beauty of JavaScript from both ends.

What made you choose Ember for frontend, versus Backbone or Angular?
I chose Ember mainly for its promise of supporting the creation of large, production level apps, through its robust architecture and well thought out library.

On the other hand, "AngularJS is a toolset for building the framework most suited to your application development." Both Angular and Backbone would have required me to learn other stuff for front end development, which I don't want to do right now.

I wanted a single cohesive framework which would be capable of handling all frontend aspects of a large app. Ember is made for that.

P.S Sorry for the late reply. I'm new to HN and didn't know old threads can be active.

It's better to know a couple of languages - one mainstream and one non-mainstream. The JS developer's rates will gradually go down over the time due to oversaturation. Additionally I struggle to see the future where complete back-end including message queues, workflow engines, database API etc. are all in JavaScript. You don't want a language that dynamic for those stuff. Additionally JS as language is lacking innovation, it will be taking years for standards committee to release new versions. This is one of the reasons LLVM and asm.js are better ideas.