Folks, I volunteered last week to write a proof of concept for a colleague to display a sequence of "screens/views" in a single-page app that talks to a REST service. Getting the beginners part going with service calls and binding went surprisingly well and I got a bit excited, until it started to grow.
Once I needed to toggle the visibility of views, have multiple controllers in multiple files, have global data, share data between controllers or use events between controllers everything went a bit haywire. All of the things I just described are bread and butter in any respectable development language and environment. For each of these issues I spent hours searching for the correct technique, but I mostly find long threads of arguments and hundreds of samples which are all slightly different. I can't find any reliable and trustworthy guidance about how to structure a serious app in AngularJS. The documentation of non-trivial coding techniques is so verbose and cryptic with incomprehensible syntax and nesting of injectors, services and factories that it feels like I'm trying to climb a man made mountain like Finnegans Wake <https://en.wikipedia.org/wiki/Finnegans_Wake>. Dozens and dozens of code snippets I tried either silently killed the app or did nothing, like trying to build a house of cards blindfolded. Lord help anyone who has succeeded in writing a significant client-side application this way, how did you do it?! So over a few days of battling these issues in the absence of an IDE I have decided that AngularJS is more than my patience and sanity can take. I'm telling my colleague that although my demo is technically possible, it could take weeks of heartache and research to produce something that I could causally knock-up in one afternoon with a "real" language and IDE. Overall, I'm also abandoning the demo because I feel that writing monolithic client-side apps in JavaScript frameworks is an evolutionary dead-end, and I pray that the future history books will prove me right. *Greg K*
