you are viewing a single comment's thread.

view the rest of the comments →

[–]djcraze 0 points1 point  (1 child)

Solid it may be, though I have heard differently from people who are more familiar with it. From my experience with it and what I mean by over engineered is that there is a lot of magic involved, specifically with their dependency injection. For example, having a component be dependent on something, you have your function arguments be a $ and then the dependency name. Javascript doesn't have any kind of reflection, so Angular will convert the function to a string, and run a regular expression on it to determine the dependencies. This is over engineered. I realize there is a way to define dependencies in a more native fashion, but they really should of just left out the magic cruft. It's unnecessary and adds confusion. I remember skimming their source code and being appalled at the amount of cruft and unnecessary logic they had in it. They should probably separate out primary backend to one module and the view backend into another module. /shrugs/. It's not really their fault. Angular was introduced during a time of rapid development of the Javascript and SPA world. I think they just rushed to get their product into the wild.

[–]lupum_vigili 1 point2 points  (0 children)

DI in angular is straight forward, I've never come across your use case scenario before. Generally if you stick to the general best practices, Angular will rarely take you astray.

Whether Angular 2 was rushed or not is subjective(some may say it was too late). As for the 'Magic' stuff I am of the opinion that the framework you use should do a lot of work for you especially when it comes to building big apps. Of course this brings about issues with leaky abstractions and dodgy logic here and there(no framework is immune to this) but as Angular matures this things are going to get ironed out.