D3.js (Data-Driven Documents) is a JavaScript library for manipulating documents based on data. It provides data visualization in W3C-compliant computing, applying HTML5, JavaScript, CSS3, and SVG and combining powerful visualization components with a data-driven approach to DOM manipulation. D3 can be integrated into Plone CMS using collective.js.d3 package.
Building web page requires knowledge of several programming languages: HTML or XHTML for content, CSS for design. With these two languages web pages will be static and accessible from any device you use to view the page. The biggest drawback of this situation is an interaction between the user and page. User has to wait for loading of new page every time he fills out the form. JavaScript makes web page more alive, allowing response to user’s actions without the need to reload the page.
Developing JavaScript
JavaScript was developed by Brendan Eich at Netscape. Its key points, that appealed to both professionals and beginners, were: lightweightness and simpleness. The language was originally named LiveScript during release in 1995. Later name was changed to JavaScript.
Such name choice was well thought out marketing move. Though JavaScript has almost nothing in common with Java, the latter was gaining popularity and Netscape decided to add a little bit of confusion and attention to its new product.
This interpreted language for web pages gained success very quickly. In 1996 JavaScript support was introduced by Microsoft in its web browser, Internet Explorer, in version 3.0. Microsoft's implementation was named JScript .
Nowadays, JavaScript is a part of Oracle Corporation.
Building with JavaScript
JavaScript is an structured and dynamic scripting language. The basic syntax was intentionally made similar to both C++ and Java to facilitate professional’s and newbie’s learning process.
JavaScript is both an object-oriented and procedural language. Once an object is constructed it can be used as a prototype for building of similar one. Runtime object construction, dynamic script creation, and source code recovery make JavaScript more dynamic.
JavaScript has implementation as part of web browsers that allows interaction with user and alteration of displayed content. But it is not only one way directed language. Games, desktop applications and server-side programming use JavaScript in their development.
Support products
To improve structure or design JavaScript developers may use additional web frameworks and libraries:
Converse.js is an open source web-based XMPP Instant Messaging client written in JavaScript that integrates a webchat client into any website. collective.xmpp.chat and collective.xmpp.core integrate Converse.js into Plone.
JW Player is the most advanced and robust HTML5/Flash embeddable media player for the web with rich set of features. collective.js.jwplayer integrates JW Player into the Plone CMS.
Jcrop - image cropping plugin for jQuery (JavaScript library), can be integrated into Plone using plone.app.imagecropping
Leaflet is a lightweight and powerful open-source JavaScript library for creating mobile-friendly interactive maps. Leaflet mapping resources can be integrated into Plone using collective.js.leaflet add-on.
MathJax is a cross-browser JavaScript library that displays mathematical notation in web browsers, using MathML, LaTeX and ASCIIMathML markup. There is also MathJax integration for Plone - collective.mathjax.
GruntJS is a JavaScript based command line build tool that helps to automate repetitive tasks.
Raphaël is a simple-to-use cross-browser JavaScript library that simplifies work with vector graphics for the websites.
PhantomJS is a headless WebKit for JavaScript that provides quick and native support for several web standards.
SproutCore is a powerful JavaScript framework that allows creation of rich desktop-like web applications.
Spine.js is a CoffeeScript written library for client-side web application development
Meteor js is a fully reactive and real-time Javascript framework that allows building of sophisticated and dynamic web applications.
Quintagroup recommends Knockout.js as a MVVM library that enables development of interactive client-side interfaces with JavaScript and HTML.
Node.js is a development framework that is used for building scalable server-side applications. This software platform gains popularity due to its network-centered nature and ease in programming and deploying apps.
Ember.js is a client-side framework. It is is the most optimal choice for scalable single-page application development. Ember.js incorporates selection of tools that will provide all necessary instruments for building ambitious web application.
CanJS is lightweight client-side MVC JavaScript library for simple and fast application development. It is the best option if you want to find a compromise between small size and modern features.
Angular is JavaScript framework for building remarkable and expressive web apps.
JQuery is lightweight, fast and rich JavaScript library. With Quintagroup your project will receive utmost attention and non-standard implementation.
Backbone.JS is an open source and free MVC-paradigm-based JavaScript library that provides structured approach and synchronization among different parts of web app