- JQuery for DOM handling and other “low-level” stuff
- RequireJS for dependency resolution and module loading
- KnockoutJS as bindings engine which is used to implement the MVVM pattern
At the beginning, I only implemented some of the view models in this new language, but then I saw all the benefits and ported the whole application. Now that everything is typed, programming in this environment feels almost like C#: There is IntelliSense, everything is typed – except the bindings in HTML – and even generics exist.