What's the front-end equivalent of Django or Rails?
January 2, 2014 8:29 AM   Subscribe

I've been developing with Django for 6 years, but realise that the strong-server/weak-client paradigm is shifting, and am looking to learn a front-end framework that's as simple and flexible as Django is for back-end focused dev.

I'm fairly proficient in Python, CSS, HTML and jQuery, and have dabbled in plain-JavaScript, Ruby, Java, ActionScript, etc.

What framework will let me develop mobile-first front-end based sites/applications as easily as I do with my current toolchain?
posted by signal to Computers & Internet (10 answers total) 22 users marked this as a favorite
Backbone.js and Node.js are a good place to start. You can make the front and backends as heavy as light as you want.
posted by ignignokt at 8:40 AM on January 2, 2014 [1 favorite]

NodeJs is javascript running on the server.

I suggest angularjs or emberjs - they are full featured client side MV* frameworks that support a number of important features including 2-way data binding and routing. They were both introduced roughly the same time, but I think angular is getting more traction, as the learning curve is less steep.
posted by askmehow at 8:47 AM on January 2, 2014

In terms of styling content to be responsive check out bootstrap from Twitter or foundation from zurb
posted by askmehow at 8:50 AM on January 2, 2014 [1 favorite]

Short answer: In order of monolithic-ness, Meteor is an all encompassing highly opinionated front and back-end framework, Angular, Ember, and, to a lesser extent, Knockout are the big reactive MVC front-end libraries, and React, Backbone, Require and some other similar libraries are smaller but very powerful libraries if you don't have such heavy needs. React in particularly seems to be gaining a lot of traction for having good ideas in a light package. People are using to do some interesting things. Take a look at the ClojureScript wrapper Om for example - I think this kind of approach could well be more common in the future.

Node is amazing on the back-end, but I don't understand the front-end value proposition for 99% of use cases.

Not exactly what you asked: Serving rendered HTML to the client is still going to be snappier and more compatible than having an API-based front-end heavy app. I've done a lot of work with these frameworks, especially Angular, and I think they're brilliant. You can get some pretty impressive stuff done quite quickly once you learn how they works. But there's the right time to use them, and mobile, where that 100KB dependency is making your website a pain to use, isn't necessarily that time.
posted by Magnakai at 12:05 PM on January 2, 2014 [1 favorite]

You can put my vote with askmehow. For general purpose rapid development a la Django/Rails the next few years are going to belong to Angular and Ember, and you should learn both. Angular has a lighter learning curve up front, but for large applications Ember is going to solve more of your problems.
posted by tsmo at 1:37 PM on January 2, 2014

A friend, who is a core committer on Ember.JS seems to think that Ember and Angular are the main players these days. A year ago, he would have been bullish on Ember, but unsure how the field would shake out overall.

Also, for what it is worth, when I last asked, he didn't see a huge compelling advantage to "JavaScript everywhere." They were using Ruby on the backend (a good amount of Rails, but some lower-level stuff too), and expected to continue doing so. I asked him because I'd noticed that a lot of work in Node.js-land was devoted to reimplementing stuff that had long been standard in RoR or Django. At best, there were people putting their (re)discovery of event-driven programming models to use for pushing real-time updates out to client apps, but very little that took advantage of being able to share code between the back and front end.
posted by Good Brain at 6:22 PM on January 2, 2014

Angular seems to be the hotness of the day. But, tbh, I don't get the impression that mobile-first is going to client-heavy rendering, esp considering the network cost. If you want to go heavy in mobile, you want to stay super light and simple on the JS, or move to native app land.
posted by ch1x0r at 7:10 PM on January 2, 2014

But there's the right time to use them, and mobile, where that 100KB dependency is making your website a pain to use, isn't necessarily that time.

Just to avoid any confusion, not all of the frameworks are that big. Backbone is 6.4 KB right now.

However, I definitely agree that Ember.js is far more like Rails or Django than Backbone is – they're opinionated, there's a lot of convention/implicit stuff happening. The OP may still want to trade lightness for the style of framework they want.
posted by ignignokt at 7:46 PM on January 2, 2014

Angular looks like the thing to me. I do mostly perl (catalyst web framework, but frankly it's such a good framework that it gets out of your way and allows you to concentrate on model classes/business logic) on the backend. I have written some fairly complicated front end stuff with javascript/jquery over the past 12 months.
posted by singingfish at 10:41 PM on January 2, 2014

These links might help: one, two, three.

Like anything it comes down to personal choice. I've used Backbone but didn't enjoy the experience too much. When I last looked at Ember it wasn't out of beta (it is now) and I wasn't looking to use something that young, and Angular is Google and, despite how good it might be, I've been soured recently with all the projects they keep cancelling to really get behind it.

If I was going to attempt a project with a new framework, CanJS seems very tempting.
posted by urbanwhaleshark at 7:25 AM on January 3, 2014

« Older I lost my glasses in the snow. Any tips/tricks on...   |   Help me convince Word that "ed" doesn't need to be... Newer »
This thread is closed to new comments.