6 ms·
Don't bother. Spend time with a JavaScript framework that will actually reward your time spent. AngularJS 1.x has a steep learning curve due to over-engineeri
by davexunit 12y ago
Don't bother. Spend time with a JavaScript framework that will actually reward your time spent. AngularJS 1.x has a steep learning curve due to over-engineering, a terrible templating system, and is completely incompatible with the upcoming AngularJS 2.x series.
If you're looking for your very first single-page application library, try MithrilJS. It's small and easy to pick up quickly: https://lhorie.github.io/mithril/ https://lhorie.github.io/mithril/
- tomjen3 12y agoSadly that library misses the point: MVVM. With angular I get to tie my user interface to my model in a declarative way, my model doesn't really have to be anything but a simple javascript object, I can use straight html to design the interface and when something changes I don't have to think about it. If you haven't ever worked with MVVM, do so. It is a treat.
- davexunit 12y ago>Sadly that library misses the point: MVVM. I don't understand. Mithril also allows for clean separation of view and model, typically in a functional and declarative manner. >If you haven't ever worked with MVVM, do so. It is a treat. I worked with it for quite some time at a past job which gave me my strong opinions about the uselessness of Angular.
- misterbwong 12y agoAgreed. I want to say grandparent actually means automatic two-way model binding, not MVVM.
- lhorie 12y agoHi, Mithril author here. `ng-model` is actually one of the "magic" things that @hippich is warning against. Having used Angular (and built Mithril based on lessons learned from using it for a few years), I agree bindings are handy in a lot of cases. That is, until you need to work around them (maybe because your inputs are laggy, or you've hit the infamous 2000-binding-ceiling, or whatever). Then, they're not such a treat anymore. With Mithril (and fwiw, other virtual dom libraries as well), you can choose to add the convenience of bindings where you find appropriate. The points about POJOs and HTML syntax are, similarly, aspects that you have control over.
- mahmud 12y agoUpdate the copyright year of the mithril site footer; it still says 2014.
- jimlei 12y agoThe part about "not compatible" is simply not true. You will be able to use angular 1 and angular 2 in the same app.
- debaserab2 12y agoThat's an odd conclusion to reach: what drew me into Angular in the first place was it's extremely shallow learning curve. Going from nothing to prototype is extremely fast, and if you mock your data correctly, can be leveraged into production code. What eventually pushed me away from Angular is the performance of the scope digest cycle (which you won't even notice until you've built a large enough app to have a problem) and the odd state management issues that arise as a result of two way data binding.
- hippich 12y agoIt is all about where you draw a line. For example in my day job most projects require some form of dynamic loading parts of applications, which is VERY hard to do in proper way with angular. So if you need to make prototype with some fields auto updating some values somewhere - angular learning curve is probably fine. If you need to build complex and large UI - learning curve will be extremely painful.
- woah 12y agoWhat's your background? Did you do a lot of 'classic OOP' before picking up JS?
- debaserab2 12y agoNo, I've been programming javascript just as long as any server side language I've used that was OOP oriented.
- arcosdev 12y agoCouldn't agree more