background preloader

Others

Facebook Twitter

Showcase. A comparison of various JS frameworks using cold hard data. I went for lunch with the a friend the other day and he kindly gave me an idea for a blog post about JavaScript frameworks...

A comparison of various JS frameworks using cold hard data

I keep an eye on StackOverflow/Github/etc and mentally tot up the popularity of all these JS frameworks... ooooh , that's a good one that. If we're really going to say "We use FrameworkX" (and I advocate that you never do this, it's a silly thing to do), then let's at least look at some cold hard facts when doing so. Except let's not just look at popularity, let's think about the support and education and how we could find some metrics to determine these things. Brackets - A modern, open source code editor that understands web design. Curran/model. Model-contrib. MooTools - a compact javascript framework. CanJS. Underscore.js. Underscore is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.

Underscore.js

It’s the answer to the question: “If I sit down in front of a blank HTML page, and want to start being productive immediately, what do I need?” … and the tie to go along with jQuery's tux and Backbone's suspenders. Underscore provides 80-odd functions that support both the usual functional suspects: map, select, invoke — as well as more specialized helpers: function binding, javascript templating, deep equality testing, and so on. It delegates to built-in functions, if present, so modern browsers will use the native implementations of forEach, map, reduce, filter, every, some and indexOf. The project is hosted on GitHub. Collection Functions (Arrays or Objects) _.each(list, iterator, [context]) Alias: forEach Iterates over a list of elements, yielding each in turn to an iterator function. Sinon.JS - Versatile standalone test spies, stubs and mocks for JavaScript. DynarchLIB Documentation.

MooTools - a compact javascript framework. Famo.us. Lava JS - Home. Introduction. Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model.

Introduction

Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably. Headline features: Elegant dependency tracking - automatically updates the right parts of your UI whenever your data model changes. Declarative bindings - a simple and obvious way to connect parts of your UI to your data model. You can construct a complex dynamic UIs easily using arbitrarily nested binding contexts. Additional benefits: Developers familiar with Ruby on Rails, ASP.NET MVC, or other MV* technologies may see MVVM as a real-time form of MVC with declarative syntax.

OK, how do you use it? The quickest and most fun way to get started is by working through the interactive tutorials. Everyone loves jQuery! How is Knockout different? JavaScriptMVC. Getting started - Polymer. Basics The basics of using Polymer are simple: Load platform.js to polyfill missing platform features, such as Shadow DOM and HTML Imports .

Getting started - Polymer

Load components with <link rel="import" href="/path/to/component-file.html"> Use the custom element in your page. UIZE JavaScript Framework. Pivot tables. DHTMLX - Js Components. Ext JS 4.2 Examples. Glujs - Spec driven MVVM apps with ExtJS. TodoMVC. Blossom - Js Business App Frameowrk. PhantomJS: Headless WebKit with JavaScript API. When To Use SproutCore, and When Not To – SproutCore. I could tell you to use SproutCore for every single web destination you build, but that would be disingenuous.

When To Use SproutCore, and When Not To – SproutCore

SproutCore is built to address a certain class of applications that need the help of its robust binding and observer layer, as well as its ecosystem of packages (DataStore, gesture support, etc). There are other classes of applications that simply don’t have the same functionality. On a spectrum of interactivity, you have Wikipedia on one end, and iCloud.com on the other. The high level of interactivity in a suite of applications like iCloud mandates a foundation that dictates architecture and allows the developers to think and develop at a higher level of abstraction.

Wikipedia, on the other hand, lacks rich interactivity or client-side data management, so it does not need state management. The key consideration you have to make is whether or not you need state management on the client (the browser). This is emergent from SproutCore’s binding and observer layer. ActiveJS: JavaScript Application Framework. Dart: Structured web apps.

- Mixu's Node book. Thanks for visiting my book site!

- Mixu's Node book

My ideal book is short, comprehensive and interesting. In order to learn Node, you need to learn how to write code - not how to use a 3rd party library or a set of spells. I will recommend a few libraries, but the focus is on writing code yourself. Whenever I cover an API, I will do what I can to include examples and snippets that I have found useful myself.