15 ms·
Documentation is by far the worst part of Angular. I spent 90% of my time Googling and 10% writing code. (Hey, maybe that's Google's plan -- ramp up traffic to
by gkoberger 13y ago
Documentation is by far the worst part of Angular. I spent 90% of my time Googling and 10% writing code. (Hey, maybe that's Google's plan -- ramp up traffic to search. Synergy!)
AngularUI is confusing, mostly undocumented and often behind Angular. Splitting ngRoute/ngAnimate into their own files is an odd choice, although I assume the former is so they can replace it with the superior ui-router. Which also is weird. Like jQuery, it seems like the UI portion is just off on their own doing what they want.
Google has the chance to build the new framework that will run the web in 2-3 years. Much like Rails a few years ago. Angular is an amazing framework. It seems like they just don't care.
Angular needs someone versed in developer usability to take control of the public facing Angular stuff and give it a complete overhaul. Right now, it's the result of hundreds of people haphazardly making changes.
- atjoslin 13y agoAn effort is being made right now to rewrite the concepts docs in better language - and moving out from there.
- psychometry 13y agoIs there a Javascript MVC framework that actually has good documentation, guides, and code samples? I've been working with Ember.js, but it's incredibly frustrating trying to learn a framework whose documentation is incomplete. The other problem I've found is that docs, tutorials, and Stack Overflow posts that are even six months old are often completely useless when troubleshooting bugs in Ember.js or even learning its basic features. It seems Angular suffers from the same complaints I have about Ember.js. Those of us who really need to just "get things done" might be better suited by a mature, well-documented framework, but does one actually exist?
- twanlass 13y agoI felt like Backbone.js (when I was actively using it) had really clean and complete docs. Couple that with the fact that the source is incredibly readable and debugging anything strange was never that tough.
- gkoberger 13y agoSure, but Backbone does a fraction of what Angular does. And, it's pretty consistent with how most people write JS anyway -- whereas Angular pretty much re-envisioned everything.
- rgbrgb 13y agoYou say that like it's a pro but I'm pretty sure it's a con.
- mcv 13y agoIt depends on your point of view. Personally I've never been too happy about the state of JS code, so trying something different is absolutely a good thing. Is Angular the best approach? Is there even such a thing as a best approach? Probably not. Look at the proliferation of server side frameworks. They each have their pros and cons. I do like that Angular is a real framework, rather than a library that only gets called a framework. It handles all sorts of stuff for you in the same way serverside frameworks tend to do.
- josteink 13y agowhereas Angular pretty much re-envisioned everything. Angular is the first time I've written a web-app and been completely lost from second one without a fully stateful JavaScript debugger willing to break at any point and letting me inspect the call-stack, parameters and locals. Everything which was simple about the web up until now, Angular transformed into horrible, black voodoo magic which either just worked or didn't at all. If that's what "re-envisioned everything" is all about, consider me out.
- erikpukinskis 13y ago> Everything which was simple transformed into horrible, black voodoo magic That's what radical re-envisionings always look like. Anything that fits easily into your toolbelt is an incremental improvement. That's what the word "radical" means. The promise is that after doing some hard work to learn new data structures you will be more powerful, but it's certainly your right to be skeptical of that.
- famo 13y agoI started with Ember about a year ago and the getting started docs were pretty terrible. It took a lot of experimentation and frustration before I was comfortable developing with it. Eventually I became familiar with the framework and the API docs are quite in-depth, not really great for a beginner though. After about four Ember projects I can now prototype a large app (using something like Bootstrap) in a day or so, so I feel that pain at the start was worth it. Back at the time though I was tearing my hair out, especially over router changes. The changes improved things by an order of magnitude though. I trust the Ember team, I'm happy now, the start could have been easier.
- erikpukinskis 13y agoMy experience pretty much parallels yours. These frameworks are at the cutting edge. Only a handful of big apps have been made with Ember or Angular, and so the core teams are constantly bumping up against weaknesses in their designs which can only be addressed by making changes that break apps. From reading the Ember discussion lists I get the strong sense that the core team is willing to make difficult breaks, but that they really try to only do it when it's absolutely necessary for the long-term robustness of the platform. A lot of thought seems to go into which problems are getting solved now, which are put off til later, and which interfaces get torn out and rewritten. I just spent several weeks upgrading my app from the earlier Ember RCs to Ember 1.0 and the latest Ember-data, and while quite painful, I feel good about it because I don't think the core team made those changes lightly. My sense is they are looking out for us.
- Bahamut 13y agoI'm currently working on a big Angular app that is about to move into production (although it's not to be something that's widely used in public) - we have found that Angular causes everything to be structured in a nicely organized fashion overall. This app is not structured perfectly by any means either, due to bad design on some of our pre-existing code base. From what I understand, big Ember projects have turned out well for Ember devs - I can confidently say that I feel the same way about big Angular apps. I have built several big ones, including an online assessment platform (frontend by myself) and an online assessment platform/management system (with a team of ~10, 3 of us on frontend). From my experience, the Angular team has thought things out on a high level, which I greatly appreciate. They are big consumers of their own product, as Angular is used quite a bit with Google's own sites - here is an example of an Angular app, with Angular being used to implement parallax scrolling (and probably more): http://www.google.com/nexus/7/ http://www.google.com/nexus/7/
- Zelphyr 13y ago> Those of us who really need to just "get things done" might be better suited by a mature, well-documented framework, but does one actually exist? No. Frameworks are all the same in that they are great at getting you to about 80% of what you need REALLY fast. The next 10% takes some investigation but its doable. But that last 10%. Its like pulling teeth. You're working for the framework rather than it working for you. In my experience, all of the time gains you realize from using a framework early on are lost (and then some) trying to get it to do that last 10% that you need. Ultimately I've found that using vanilla Javascript offers everything I need to just "get things done" and complete a project successfully. Sure, I might not be able to get something out the door in a day. But at the end of the project I've delivered clean, maintainable code on time. And anyone who knows Javascript will be able to read it. Now, lest you think I'm a complete framework hater; they have their place. They're great at prototyping, for example. But never again will I build an entire project on one. I have little interest in being a glorified glue stick, piecing framework code together. How boring. I should add that I make heavy use of libraries like jQuery and Underscore. They're libraries, not frameworks. Take what you need with them yet still reasonably lightweight. Frameworks are bloated, tightly-coupled, poorly documented monstrosities in my opinion.
- erikpukinskis 13y agoI think it depends on how good you are. If you're a great developer, with deep knowledge of patterns, a strong commitment to refactoring, with lots of experience such that you're aware of the pitfalls you are likely to befall, then you're probably right: frameworks will buy you little. I'm pretty good, but I'm apparently not good enough, because I find myself consistently learning things from frameworks. I certainly am familiar with the Last Ten Percent you're talking of. But I also know that for every 10% that I have to pull teeth to get, there are many many things that work well because the platform team did a great job and drew on a depth of experience and expertise that I just don't have yet. DHH built a lot of Ruby apps before he built Rails, and by using Rails I can draw on his experience. As a solo founder that's worth a lot to me. And even now, when I've largely moved on from Rails I still draw on things I learned from studying that framework. And the frameworks I use now are equal distillations of very deep experience. You're perhaps a more experienced developer than I am, or just better suited to the job.
- hajile 13y agoDoes anyone have experience with Enyo (the framework from WebOS)? It claims to be adding MVC support in the next release.
- chidevguy 13y agoCheck out KnockoutJS, I've found their documentation to be quite good and it's a pretty easy framework to learn.
- shaydoc 13y agoKnockoutJS.com is by far the best in terms of documentation and usability for novices.
- joshuacc 13y agoI agree that the documentation could be better. When I first started working with Angular I had similar issues. However, after spending a decent amount of time working with the framework, I find the documentation fairly clear. The problem is really the lack of concrete examples of how things fit together. However, Angular UI is a totally separate set of projects that is not run by the Angular team at all. Not sure why you're giving them a hard time about it.
- 1qaz2wsx3edc 13y agoI think the documentation has improved. I think the Developer Guide provides a good high level. Perhaps some opinionated best practises & design patterns would help. And yea, Angular UI is awesome.
- alxndr 13y agoWith this many people saying the documentation could be improved, is there a reason holding everyone back from contributing or improving it?
- k3n 13y agoThe irony is that not only is there a commenting system to complain about the docs, but that at the top of most of the pages is a prominent "Improve this doc" button, which when clicked, takes you directly to the file in Github. Some of the docs are .md (markdown) while the rest are the actual code files. I don't know how often they accept pull requests, much less for doc-only changes, but they have almost 150 PR's in queue. And this is something I was unaware of until now, a "Contributor License Agreement"[1] is required for a pull-request to be accepted. Sheesh, that's kind of a PITA... 1. http://docs.angularjs.org/misc/contribute#CLA http://docs.angularjs.org/misc/contribute#CLA
- amirhhz 13y agoIt was a while ago when I last did it, but the team are perfectly happy to merge-in docs corrections and improvements. IIRC, the CLA is not necessary for docs either, only for actual code. At the last London AngularJS meetup it was mentioned that the team have 'pull request parties' where they try to merge or close as many contributions as they can, but more of them just keep coming ... good problem to have I guess, but they are aware of it and trying to address it.
- camus2 13y ago> Google has the chance to build the new framework that will run the web in 2-3 years. Much like Rails a few years ago. Angular is an amazing framework. It seems like they just don't care. People use to say that about ExtJS a few years ago , then BackboneJS, etc ... There will never be one framework to rule them all , like Rails never ruled server-side developpment, Rails influenced other frameworks. Likewise Angular will , and something better than Angular will come by. > Angular needs someone versed in developer usability to take control of the public facing Angular stuff and give it a complete overhaul. Right now, it's the result of hundreds of people haphazardly making changes. that's how most open-source projects work. Angular is not a Google library, Google already has closure[1] , which is neat and scales(ie great performance,unlike Angular), Gmail is built on top of it , but strangely nobody else but google is using it... EDIT : [1] https://developers.google.com/closure/library/ https://developers.google.com/closure/library/
- paultannenbaum 13y agoMaybe my understanding is wrong, but closure (and closurescript) are compiled languages. Angular is a UI framework, so comparing them is apples to oranges. And I think the Angular community would be thrilled if it had even close to the kind of documentation that Rails has. You are correct, no one framework will rule them all, but there are examples of OS projects that have good docs (like jQuery and Rails) that can be used as comparisons when evaluating a framework.
- camus2 13y agoI'm talking about the closure library, it's a javascript library written by google : https://developers.google.com/closure/library/ https://developers.google.com/closure/library/ All google Saas apps use this lib.
- graue 13y agoYou may be thinking of Clojure and ClojureScript — with a J. It's confusing naming, but those are different, and are not Google products. In this thread, we're talking about Google's Closure (with an S) Library. Google also makes a Closure (with an S) Compiler, but it's more of an optimizer — it "compiles" from JavaScript to optimized JavaScript.
- kosinus 13y agoIf you're really spending 90% on Google, and 10% writing code, then you're doing it wrong. At least a good 30% of your time should involve reading code. In any framework. That said, AngularJS' code is magic in places. The magic is contained within small modules, or at least as small as those can get for what they're supposed to do. But documentation is only enough to get you started. In any framework. (And in my experience, proprietary frameworks and APIs always involve lots of email back and forth.)
- gkoberger 13y agoI was of course generalizing -- by "Googling", I meant everything from reading StackOverflow to browsing GitHub to looking at the docs. That being said, I'm not quite sure where that 30% figure comes from. Whose code am I reading? Why am I reading it? Angular isn't your run-of-the-mill framework. They've reimagined almost everything. That's fine (and for the most part, I like what they've done) -- but documentation is incredibly important.
- kosinus 13y agoAngularJS code. I regularly dive in whenever I run into an obstacle. The 30% figure is a wild guess, and may sound a bit large, but I certainly spend a lot of time reading other people's code. Or even rereading my own code. Docs can be improved, absolutely, but there's no framework where I didn't feel that way about documentation. I don't think I've worked with any framework for more than an hour without looking at its code.
- yeukhon 13y ago> At least a good 30% of your time should involve reading code. In any framework. Understand that not every developer has a good knowledge of these frameworks. Understanding the DOM, browser-specific JS stuff are not piece of cake. Hence documentation is super crucial to have. This is like asking every developers to read Linux kernel video driver when their video driver crashed.
- kosinus 13y ago
- antihero 13y agoI've actually found AngularUI's docs to be pretty okay.
- jaequery 13y agoI don't think Google created Angular, but rather a Google employee. I'd imagine if Google fully backed Angular, the syntax/design would've been much cleaner. Angular with a fresh boot would be something I'd hope for, they just keep adding things on top of it to keep BC as much as possible which is why it feels so dirty at times. I too get (extremely) frustrated with Angular at times for all the points mentioned by OP. Honestly sometimes I don't even know why I bother with it, I feel it being counter-productive if I actually think about it. It just seemed cool concept at the time but over the long run, I feel I am just digging my own grave. Great post for venting about the frustrations, I been needing to vent myself too.
- pygy_ 13y agoAngular used to be its own startup. The founders were acquhired by Google.
- Oculus 13y agoWhere'd you get the wrong idea that it was a Startup? AngualrJS was a side project of Misko, who was working at Google on the DoubleClick team, until he bet he could rewrite DoubleClick in 1 or 2 (can't remember) weeks using his framework and cut down on the LOC/code complexity. He eventually did and they decided to go full time on the framework. They discussed this at the start of their Google IO presetation.
- pygy_ 13y ago[0] which leads to [1] Notice the "Copyright 2009 - Angular / BRAT Tech. LLC" at the bottom of the page. IIRC, They had a plan to provide a paid or freemium server-side counterpart. edit: freemium, see the first revision of getangular.com[2], there's a pricing tab which disappeared later on. update 2: they were not acquired, they abandoned the startup because it did not get enough traction. The framework lived on, though. Development history AngularJS was originally developed in 2009 by Miško Hevery and Adam Abrons as the software behind an online JSON storage service, that would have been priced by the megabyte, for easy-to-make applications for the enterprise. This venture was located at the web domain "GetAngular.com", and had a few subscribers, before the two decided to abandon the business idea and release Angular as an open-source library. Abrons left the project, but Hevery, who works at Google, continues to develop and maintain the library with fellow Google employees Igor Minár and Vojta Jína.[3] [0] http://web.archive.org/web/20100601201616/http://www.angularjs.org/ http://web.archive.org/web/20100601201616/http://www.angular... [1] http://web.archive.org/web/20100413141437/http://getangular.com/ http://web.archive.org/web/20100413141437/http://getangular.... [2] http://web.archive.org/web/20091002201638/http://www.getangular.com/ http://web.archive.org/web/20091002201638/http://www.getangu... [3] https://en.wikipedia.org/wiki/AngularJS#Development_history https://en.wikipedia.org/wiki/AngularJS#Development_history
- ericclemmons 13y agoPersonally, I skipped the docs and went straight to the API guide. Reading that had me only Googling for edge cases, such as scope changes within ng-repeat.
- grumblestumble 13y agoAngularUI is indeed very much 'off on their own doing what they want', they are not a part of the core team AFAIK. Even inside the AngularUI team, quality, convention and style can be dramatically different across different modules ( cough ng-grid ).
- regecks 13y agoSounds like something that could be crowd-funded - pay some contributor's salary for a while to write the docs :).
- josteink 13y agoGoogle has the chance to build the new framework that will run the web in 2-3 years. Not to be a cynic but I'd rather not have more Google-controlled software take over yet another part of the internet. The internet managed just fine without Google before, and I'm sure it will manage fine without Google in the future. Right now Google dominates almost everything, so whenever I'm given a choice between something made/controlled by Google and anything else, I will go almost instinctively go with the "anything else"-option just to provide some counter-balance. Google is scary as shit these days and can do pretty much whatever they want without consequences, and I just don't want to be part of making that worse.
- ds_ 13y agoThe docs are fine. There can always be improvements, but it isn't orders of magnitude worse than other frameworks as people persistently claim.
- jwblackwell 13y agoThe doc for "mock" is a funny example of how poor the docs are in places http://docs.angularjs.org/api/angular.mock http://docs.angularjs.org/api/angular.mock