10 ms·
Rails JS frameworks: Ember.js vs. AngularJS
- mixonic 12y agoIf you start a new Ember project today, or want to try Ember and compare it with other frameworks, please use Ember-CLI: http://ember-cli.com/ http://ember-cli.com/ The style of development CLI introduces makes you incredibly productive. A comparison of Ember without discussing CLI is missing an essential ingredient.
- sergiotapia 12y agoNot only is it productive, it is officially endorsed by the Ember core team as the "right way" to use Ember.
- lightblade 12y agoNot only it is endorsed, it is Ember. The project will get lifted to Ember in github by the time Ember 2 comes around
- fervisa 12y agoThanks for the heads-up, maybe I can do a follow-up article or add an update into this one to include ember-cli features.
- Touche 12y agoI really dislike having to start up a separate web server for every project I work on.
- xb 12y agoThe article talks about SPAs, but doesn't go so far as suggesting that an Ember or Angular app could be a separate project altogether from the rails app, requiring no integration with rails, using the back end only as a REST api and serving the static SPA from wherever (say a CDN). There are tradeoffs with this approach, but some would consider this even easier or simpler than having the html/js app 'integrated' with the back end.
- jaredmcateer 12y agoThis is the direction we're moving on my company, we have group building a restful API, and then we have the front end team that are essentially their first client of the API. So far it's been an extremely positive experience, in the past the "front end" team was expected to dig in to the back end and build out the data collection themselves, now we can have multiple teams working on the same thing without stepping on each others toes because we know where demarcation point of the responsibilities are.
- acmecorps 12y agoMay I know, how do you guys handle authentications and "cookies"/tokens?
- Siecje 12y agoAccept authentication using HTTP-BasicAuth and create a token then use the token until it expires.
- btown 12y agoYou might be interested in https://github.com/lynndylanhurley/ng-token-auth https://github.com/lynndylanhurley/ng-token-auth and https://github.com/lynndylanhurley/devise_token_auth https://github.com/lynndylanhurley/devise_token_auth, which together collect (what seem to be) best practices for both frontend and backend for token authentication. We're planning on using it for our startup.
- pothibo 12y ago
- heroku 12y agothis is more fun: http://vimeo.com/68215606 http://vimeo.com/68215606
- petercooper 12y agoI keep forgetting I did this, lol. I gotta admit, I was surprised Tom came out on top so easily with this - not a man to underestimate! ;-)
- tomdale 12y agoIf you're gonna step to me, better make sure your framework game is tight.
- itsbits 12y agothis is very old...lot has been changed for better in Ember and some what in Angular as well..
- Bahamut 12y agoAbout the Angular portion of CSRF integration - one can do this in other ways without disabling the check. One can create a factory that acts as the http interceptor that has the csrf injected. One can also manually crawl the DOM by using document.querySelector and inject the value into the http interceptor for appending to requests. One can also use an http request to fetch the token and have the token served via the xhr and manually bootstrap the app. Angular is relatively unopinionated here.
- fervisa 12y agoIn fact, the article mentions in 6.2.2 one client-side solution to handle CSRF token by including it into the $httpProvider's headers.
- cjjuice 12y agoWhy duplicate logic in the front end? We recently open sourced a lightweight framework for writing coffeescript in rails. It's fully compatible with turbolinks and let's you run only the JS you need. It's called RailsScript ( https://github.com/gemgento/rails_script https://github.com/gemgento/rails_script )
- acconrad 12y agoI'd love this if it had a testing framework to go with it. The primary reason we went with Angular was because it was so much easier to test than the spaghetti of jQuery modules and the mess that are events.
- fervisa 12y agoI usually test my Rails/Angular projects with jasmine-rails jasmine-jquery and Sinon.JS. These three together let you test virtually any frontend js code.
- cjjuice 12y agoThanks for the feedback. This may be a good addition to RailsScript in the future. As always, pull requests are more than welcome
- jdthorne 12y agoIs there any differentiation between the two on API stability? I got burned last fall trying to build an app with Ember as they kept making breaking changes, even between release candidates (!). Technically Ember was stable, but Ember Data (which is separate I guess?) was doing major refactoring on their API, and it cost us quite a bit of time just trying to keep up. Even today, their GitHub has a disclaimer that it's beta quality and under active development[1]. Ember CLI also says it's very much WIP[2], even though it seems to be the officially endorsed way to build Ember apps. Does Angular make stronger promises about their stability? Is this sort of thing just the cost of doing business with cutting-edge frameworks? Or am I missing something? [1]: https://github.com/emberjs/data#api-stability https://github.com/emberjs/data#api-stability [2]: http://www.ember-cli.com/#community http://www.ember-cli.com/#community
- tunesmith 12y agoIt seems like it is a bad time for finding enterprise-grade js frameworks. Ember has its disclaimer, Angular is impossible to recommend for new projects since 2.0 isn't out yet and will be entirely different than 1.x, react/flux is still releasing breaking changes, and I'm not sure what else would be considered a very strong candidate.
- steveklabnik 12y ago> Is there any differentiation between the two on API stability? Compare http://angularjs.blogspot.co.il/2014/10/ng-europe-angular-13-and-beyond.html http://angularjs.blogspot.co.il/2014/10/ng-europe-angular-13... > Our goal with Angular 2 is to make the best possible set of tools for building web apps not constrained by maintaining backwards compatibility with existing APIs vs https://github.com/emberjs/rfcs/pull/15 https://github.com/emberjs/rfcs/pull/15 > This is not a big-bang rewrite; we will continue development on the master branch, and roll out changes incrementally on the 1.x release train. The 2.0.0 release will simply remove features that have been deprecated between now and then. Our goal is that you can move your Ember app to 2.0 incrementally, one sprint at a time.
- dchuk 12y agoThe AngularJS guys have since modified their plans a bit: https://docs.google.com/document/d/1dZdq2L8EkzimgvU93ypLF9GJpdzD2jjm08Zal6sfxMQ/edit?hl=en&forcehl=1 https://docs.google.com/document/d/1dZdq2L8EkzimgvU93ypLF9GJ... TL;DR: they're dedicating team members to continue working on 1.X while they build 2.0. They're also planning out a migration strategy for anyone on 1.X when 2.0 launches
- malyk 12y agoReadability issue: On my iPhone 6 in landscape I can't read the first couple words of every line because of the stupid little popup menu bar anchored to the left. Put some padding on the text.
- aerosmile 12y agoSorry for that. We are using an iPhone 5 for testing, and it seems that the larger iPhone 6 viewport is leading to some unexpected edge cases. We'll roll out a fix now and I will use this as an excuse to get a new phone :)