Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

A beginner guide to JavaScript frameworks

JavaScript Frameworks


What exactly is a framework?

A common question is what is the difference between a library and a framework. The answer to this question can be pretty much summed up in a concept known as Inversion of control, which is a design principle based on the control of a program's flow. In simple terms, it states that the control of flow of a program is received(or called) from a framework, whereas a library is called by the program.
A framework can be described as a "code template" that helps to solve a specific problem/task, or bring your code a sense of order.
A library can be described as a collection of functions/methods that can be useful to use in your code.

A JavaScript framework is a framework written in JavaScript, usually (almost always) for the purpose of web application development.

AngularJS

AngularJS is a framework based on the "Model-view-controller"(MVC) design principle, which put simply is the idea that a computer uses a controller (to navigate the page) which manipulates the model(the page) which in turn updates the view(what you see). For example, scrolling down a page and having text/images/content appear is a use purpose of MVC. AngularJS is fully open source, with major contributions from Google. The main reason the framework was created was to address the issues with making single-page applications(SPA) which is a single page web application or web site, which is designed for the goal of giving the user a experience similar to desktop applications.

Angular extends HTML also, adding a whole heap of features that are required to build interactive user interfaces (dynamic views) . HTML attributes can also be extended by the use of "Angular directives". In the words of AngularJS documentation "Directives let you invent new HTML syntax, specific to your application.".

Angular can be used to create some truly beautiful web applications, for example WikiWand.

Ember.js

Ember is another open source framework, made for the purpose of creating scalable SPA's(single page applications). Ember has been described as a highly opinionated framework, designed to be flexible. Ember provides a HTML template language called Handlebars, which updates automatically when data changes. Ember is very much a framework based on productivity and fast, yet nicely done work.
Twitch.tv and Vine are Two notable web applications that have made use of Ember.

Aurelia.js


Aurelia.js is a very new framework, billed as the "next-generation javascript framework", it is designed to be maintainable, testable and extensible, as is a framework very much focused on the future. Aurelia is also highly modularized, which means its made up of lots of very small libraries. Like Angular, Aurelia also lets you extend HTML, and is also very testable.

Meteor

Meteor is another open source javascript framework designed for fast prototyping and development, and extensibility. Meteor is interesting as it integrates with MongoDB to automatically detect data change, without the developer having to write any synchronization code. Meteor claims to be able to "Accomplish in 10 lines what would otherwise take 1000".

I hope you enjoyed this quick, rough guide to the common JavaScript Frameworks.
It looks like you worked very hard on this! Very informative thread.
(Dec 5, 2016 04:56 PM)PromᎥnent Wrote:  It looks like you worked very hard on this! Very informative thread.

Thanks bro, i had wrote a lot more centered around webpages that use each of these, and i had a better design with images and shit, but i forgot i can't yet post them, so had to scrap a lot :( .
Adding Aurelia but not Vue.js or even React?

Anyway, seems like a nice piece of info.

I personally don't like the whole Javascript eco-system, every day there's a new framework, a new package manager, a new compiler etc.
It also seems to make developers get caught in making their code as modern as possible instead of making it work.
(Dec 5, 2016 06:14 PM)PartTimeNinja Wrote:  Adding Aurelia but not Vue.js or even React?

Anyway, seems like a nice piece of info.

I personally don't like the whole Javascript eco-system, every day there's a new framework, a new package manager, a new compiler etc.
It also seems to make developers get caught in making their code as modern as possible instead of making it work.

React is more of a library than a framework in my opinion, although i did think about including it, and may add it later. As for Vue.js i have never heard of it, so sorry 😖


Possibly Related Threads...
Thread / Author Replies Views Last Post
by littleblueguy24Jul 18, 2022 02:06 AM 10 270 Jul 18, 2022 02:06 AM
Last Post: Sajuuk
[Help] by craigOwnsYouSep 3, 2019 02:32 PM 3 143 Sep 3, 2019 02:32 PM
Last Post: pointandlaugh
by UefiApr 16, 2017 07:42 PM 25 879 Apr 16, 2017 07:42 PM
Last Post: Uefi