Hacker Newsnew | past | comments | ask | show | jobs | submit | jlengrand's favoriteslogin

Ask yourself if you're building a website or a web application. The main difference in my mind is websites are static documents at the end of the day, allowing users to read text, while web applications are dynamic and often allow the user to modify the data in the system.

If it's really a web application you're after, then get ready for some complexity. The state of the art has progressed significantly in the last couple of years, to the point where modern web applications are as complex as iOS and Android applications in terms of the number of moving parts. To add to the confusion, there seems to be a large number of framework and library choices on the web, where with iOS and Android the vendor largely controls the environment, and the tooling choices are more obvious.

Try to see the big picture as you're looking at all these tools, and recognize that they're largely interchangeable. We can see a common architecture emerging, where the latest versions of all the largest libraries have coalesced around the same basic patterns and ideas:

- Web Components (Angular 1 directives, Angular 2, Vue.js, React, Polymer, Preact, etc)

- State management (ui-router, Redux, MobX)

- Network interface ($.get, $http, restangular, W3C fetch())

- Local storage & persistence (W3C localStorage, ngStorage, react-localstorage)

- Build system (webpack, gulp, grunt, jake, make, npm scripts)

- BDD Testing (Jasmine, mocha, Karma, Chai, Enzyme, Jest)

You really can't go wrong learning any one of these libraries. Even if you aren't using the same library a year from now, you'll understand the application design patterns and JavaScript, two skills which aren't going away any time soon.

Hopefully that helps clarify things, and good luck!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: