I've been calling them "RARE" ( Rails-Angular-React-Ember ) apps because of
how similar they tend to be in how the front-end interacts with the
back-end. I agree with you that they are powerful and deserve a lot more
consideration.

We use Rails + Angular here, and I think probably the biggest thing that
was preventing us from seeing the potential that they had together  at
first was that Angular ( at least Angular 1 ) did not have very strongly
defined abstractions with clearly delineated responsibilities. Compare that
to Rails, which does, and in order to make the two "fit" you need to come
to a decision as to what the two's responsibilities are in respect to each
other, since some of the functionality overlaps ( what does it mean for
instance, to have client and request level routing in your application? ).

I don't think there is a lot of consensus about these questions because
there are disagreements as to "which is better". Such as: "Is it better to
define your templates in js/coffeescript or use the Rails templating
engine?".

On the other hand, if you just choose JS, a lot of those "disagreements"
disappear, because really you are then choosing among libraries rather than
general strategies - most of the general strategies become default, in
other words. I think the consensus on how to approach a JS-only app,
combined with the fact that it is much newer ( and therefore more exciting
and more written about ) , is why you see more people espousing a pure
SPA/JS application over a Rails/Angular/React/Ember hybrid.

Personally, I love the level of structure that both frameworks bring to
both sides of the web app.

On Tue, Jun 30, 2015 at 8:39 AM, Dan Cancro <[email protected]> wrote:

> Rails is huge. Angular is huge. How did the new big thing become MEAN
> instead of a stack with Rails and Angular? RAP (Rails, Angular, PostgreSQL)
> has a nice ring, no?
>
> Yeah, having JavaScript on both sides is nice, but from what I've read,
> it's not really *that* nice, certainly not as big a deal as leveraging
> all that Rails takes care of. Maybe I'm wrong about that. Does restlessness
> actually dictate technology direction so much? If Rails were exactly as it
> is but had the same birthday as Node, would things be different?
>
>
> Here's my trade-off report
> <http://www.dancancro.com/compare-app-technologies/> between Rails and
> Node
>
> Ruby on Rails offers: 1% that Node.js. doesn't
> * 0.2% Safe from cross-site request forgery CSRF
> * 0.2% Safe from stored cross-site scripting (xss) attacks
> * 0.2% Object-relational mapping
> * 0.1% Approach to frontend routing or state changing, Front-end routes
> auto gen'd from back-end routes
> * 0.0% Well tested before a release (top 10% in class)
> * 0.0% Many unit tests (top 10% in class)
> * 0.0% Uses inheritance
> * 0.0% Reusable components, using mixins
> * 0.0% Reusable components, for UI
> * 0.0% Reusable components, for UI, using Web Components
> * 0.0% Hierarchical components
> * 0.0% State and state-modifying code in same place
> * 0.0% Server-side dependency injection (doesn't need)
> * 0.0% Object persistence
> * 0.0% Supports dynamic, validated fields
> * 0.0% Server-side routing
> * 0.0% Server-side routing, with RESTful XHR controllers
> * 0.0% Route by convention-over-configuration
> * 0.0% Regular expression routes
> * 0.0% ||= operator
> * 0.0% Destructuring
> * 0.0% Ellipsis variable parameter syntax
> * 0.0% Enumeration Type
> * 0.0% Function parameter defaults
> * 0.0% Generators (Yield)
> * 0.0% Implicit return
> * 0.0% Named function parameters (keyword args)
> * 0.0% Numbers are objects
> * 0.0% Object oriented, supports classical inheritance
> * 0.0% Object oriented, supports classical inheritance, with multiple
> inheritance
> * 0.0% Object oriented, supports classical inheritance, with multiple
> inheritance, using mixins
> * 0.0% Object oriented, supports classical inheritance, with multiple
> inheritance, using extension
> * 0.0% Object oriented, supports dynamic method lookup
> * 0.0% Optionals
> * 0.0% Private properties
> * 0.0% String interpolation
> * 0.0% String multiplication
> * 0.0% Unicode strings support
> * 0.0% Convention over configuration (top 10% in class)
> * 0.0% Command-line Interface
> * 0.0% Command-line Interface, is extensibile
> * 0.0% Command-line Interface, does scaffolding
> * 0.0% Command-line Interface, does database seeding
> * 0.0% Command-line Interface, does database migration/evolution
> * 0.0% Bulit-in webserver
> * 0.0% App template system
> * 0.0% Opinionated (top 25% in class)
> * 0.0% Few silent failures (top 10% in class)
> * 0.0% Easy to test, logic (top 10% in class)
> * 0.0% Fast to develop app (top 10% in class)
> * 0.0% Fast to build app (top 10% in class)
> * 0.0% Fast to load app (top 10% in class)
>
>
> ===================
> ===================
>
>
> Node.js. offers: 0% that Ruby on Rails doesn't
> * 0.0% Large installation base (top 10% in class)
> * 0.0% Extensible in C/C++
> * 0.0% Can run without plugins in a browser    (Use Browserify)
> * 0.0% ++ and -- operators
> * 0.0% += for strings
> * 0.0% Event driven
> * 0.0% Functional, with anonymous functions
> * 0.0% Functions can be called before they are declared
> * 0.0% Object oriented, supports prototypal inheritance
> * 0.0% String addition
> * 0.0% Typed, dynamically
> * 0.0% Typed, dynamically, with automatic type conversion
> * 0.0% Automatic memory management
> * 0.0% You can see changes without recompiling
> * 0.0% Little boilerplate (top 10% in class)    (lots of modules written
> by people)
> * 0.0% Low accidental complexity (top 10% in class)
> * 0.0% Small # of data structures (top 10% in class)
> * 0.0% Lazy (on-demand) loading of client-side code
> * 0.0% Lazy (on-demand) loading of client-side code, JavaScript
> * 0.0% Non-blocking, event-driven I/O
> * 0.0% Threads
>
> See any errors in this? Click here
> <http://www.dancancro.com/technology-questionnaires/>.
>
> --
> You received this message because you are subscribed to the Google Groups
> "AngularJS" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/angular.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to