4 ms·
You know, I'm just going to say it: Angular is the Rails of Javascript. That probably sounds like a derogation. But behold: I offer nuance! They're both big
by aaronem 12y ago
You know, I'm just going to say it:
Angular is the Rails of Javascript.
That probably sounds like a derogation. But behold: I offer nuance!
They're both big and powerful, and capable of rewarding dedicated study with enormous power. Thus they develop a devoted following whose members often do things lesser mortals find little short of wizardry.
They're also both built to be friendly and welcoming to the newcomer, and offer a relatively short and comfortable path from zero to basic productivity. Thus they trigger the "I made a thing!" reward mechanism which excites newbies and leaves them thirsting for more.
They also, in order to go from newbie to wizard, involve a learning curve like the north face of K2.
In both cases, it's a necessary consequence of the design decisions on which the platform is based, and those decisions, by and large, have sensible reasons behind them -- not, I hasten to note, decisions with which everyone will (or should) agree, but decisions which can be reasonably defended.
But that doesn't make it a good thing. When people start off with "I made a thing!" and then run smack into a sheer wall of ice and granite, initial excitement very often turns into frustration and even rage, as on display in some comments here in this very thread.
(I hasten again to add that I'm not judging anyone for being frustrated and angry over hitting that wall -- indeed, to do so would make me a hypocrite, given my reaction to hitting that wall with Rails a year or so ago.)
Further compounding the issue is that, often enough, wizards who've forgotten the travails of their ascent will condescend to say things like "Well, what's so hard? Just read {this book,that blog post,&c.} and it's all right there." Well, sure, for wizards, who are well accustomed to interpreting one another's cryptic aides-memoire. For those of us still toiling our way up the hill, not so much.
I will note, though, that while I hit that wall (hard!) with Rails, and in the end couldn't make it up, I haven't had the same problem with Angular. The sole significant difference I can identify, between the two attempts, is this:
When I took on Rails, there was no one else in the organization who knew (or should've known) the first thing about the platform. When I had a problem with Rails, I faced it all alone, with only my Google-fu, my source-diving skills, and my perseverance on which to rely. For a while I did well, but in the long run, for all but the most exceptional engineers, such expenditure of personal resource without resupply becomes unsustainable.
When I take on Angular, I do so with the support of a large team, composed of the most brilliant and capable engineers among whom I have ever had the privilege of working. When I have a problem with Angular, I have a dozen people at my back, at least one of whom is all but guaranteed to have encountered the exact same situation previously -- or, if not this precise permutation, then something very like it, from which experience more often than not comes precisely the advice I need to hear, to guide me in the direction of a solution.
Of course, whether this is really useful to anyone is an open question; I think it's a little facile, at least, to say "Oh, if you're having Angular problems, all you have to do is find a team of amazing people who mostly all have years of Angular experience, and work with them!" But, at the very least, if you're going to be fighting through the whole thing all by your onesome, maybe think about picking up a less comprehensive but more comprehensible framework, instead.
- deleted 12y ago[deleted]
- aaronem 12y agoThe comparison between Angular and Rails I base on broader characteristics than those embodied in language or framework features. One of those characteristics, a primary one in fact, is that of convention over configuration; Angular, like Rails, defines specific conventions, which only an expert can safely bypass, and to which non-experts must adhere on pain of having a very bad time. > there are at least 20 books on angularjs that are easy to read to understand the framework properly A prototypical example of the sort of wizard comment about which I spoke earlier. > The big issue[, ]in my opinion[, ]is that one needs to know how [J]avascript works in order to understand how directives work. True of any framework, though; if you don't understand the language in which it is built, you are certainly going to be at sea in trying to use it. Angular isn't special in this regard. (Also, some notes on English orthographic conventions, for the benefit of someone who may not yet be familiar with them: First, medial and terminal punctuation, such as commas and periods, is invariably followed by a space, as exemplified in this comment. Second, abbreviations such as "isn't" and "doesn't" take an apostrophe before the final 't'. Hope this helps!)
- striking 12y agoMy opinion of Angular is now that it's basically the equivalent of PHP (if we're comparing it to other languages.) PHP is super easy to get started with and is magical and with enough forethought and planning, proves to be a serviceable language suitable for small projects. However, if you don't draw lines in the sand for yourself and watch performance very carefully as you scale, your app will suck. For reasons of maintenance or user experience, it will suck. It's awesome for tiny projects or things that won't need to be changed or internal use stuff. I personally am using it to build a prototype of a product. But I'm planning to convert this prototype very soon to React or Meteor.
- aaronem 12y agoComparing Angular with PHP doesn't strike me as entirely fair; Angular, whatever else one might say about it, has a high degree of conceptual consistency in its internals, whereas PHP, for all that it's improved over the past few years, remains an utter farrago and likely always will. Comparing Angular with Laravel might be more reasonable, but my lack of knowledge of the latter framework forbids me from commenting further on the comparison.