Kids, Code, and Computer Science Magazine

JavaScript

Dmitry Baranovskiy on Flickr

JavaScript is a programming language and an historical artifact from the early internet conflicts between Netscape, Microsoft, and Sun for open standards.

As a programming language, JavaScript has expanded from use in the web browser where it is used to fetch and display data in real time and generally makes the web browsing experience more like traditional software. Today Javascript also is used heavily on web servers as well as standalone isolated web browser instances.

What Makes JavaScript Special?

JavaScript is unique because it solved a problem with the early internet — the lack of interactivity between a web browser and a remote server — at a moment in history when open standards for the internet were under assault by traditional proprietary interests, as represented mostly by Microsoft. While this tension exists today, between open standards and the interests of business to use proprietary standards, in the mid to late 1990s the outcome was unclear. Microsoft openly wanted to control some or all internet standards. Other businesses and the technology community wanted standards that reflected the interests of everyone who used the internet, commercial and non-commercial.

From Microsoft's point of view, JavaScript was seen as an extension of the Java language which competed with C++ from Microsoft. Separating these kinds of commercial interests from the public interest in open standards with the ability to create software for low or no cost is not an easy task, then or now.

JavaScript was successful enough that Microsoft created its own version, named JScript, to avoid trademark infringement and use of JavaScript. These two standards, JavaScript and JScript, were consolidated into a single standard with the unlovely name ECMA Script. Brendan Eich, the creator of JavaScript, said, "ECMAScript was always an unwanted trade name that sounds like a skin disease."

JavaScript flourished in the late 1990s and early 2000s with the adoption of AJAX, asynchronous JavaScript and XML. Coders realized they could use JavaScript in a programmatic way to send and receive structured data from the web browser to remote servers, turning the passive reading experience of the web into full-blown software applications. Jesse James Garrett was the first to coin the phrase AJAX and push the idea. Using JavaScript to turn the web browser into many different software applications is a natural fit for the language. Every time you click a Like button or submit a form with a web browser, chances are JavaScript code is involved.

Brendan Eich originally created JavaScript, first called Mocha then LiveScript before its current name, in 1995 while at Netscape. Sun Microsystems and Netscape announced JavaScript in December 1995 and Netscape 2.0 released in March 1996 was the first web browser to include JavaScript. The language is interpreted in the web browser or on the server. Script code included in web pages and on servers are interpreted at run time.

JavaScript has dynamic typing and first class functions where functions can be passed as arguments to other functions, returned as values from other functions, assigned to variables, or stored in data structures. JavaScript also includes many names and naming conventions from Java and its syntax is influenced by the C programming language. It supports object-oriented, imperative, and functional programming styles. Despite its many similarities to other languages, JavaScript is a scripting language, not a full-blown language like Java.

Today JavaScript and related software is maintained by the Mozilla Foundation, a group originally founded by Netscape but spun off into a foundation in 2003 to broaden funding and ensure future development of Mozilla projects, including JavaScript, the Firefox web browser, and other software projects.

How is JavaScript Used?

The language is amazing in the many ways it has been adapted. The most obvious implementation is in a web browser where parts of a web page are modified or updated with JavaScript. However, and mostly because of standards incompatibility across different web browsers, open source libraries like jQuery have been created to ensure code written once works on all web browsers. These libraries also make coding faster with a small trade-off in load times for the library files.

The language also is embedded in different software packages, for example, Acrobat PDF and Open Office where JavaScript is used for scripting in documents and presentations. The Unity game engine uses modified JavaScript to provide coders the ability to script games. And JSON (JavaScript Object Notation), a general purpose format used to transfer data, is a subset of JavaScript's syntax.

Another area of innovation around JavaScript has been with web browser engines that interpret JavaScript. Web browser makers have competed to interpret JavaScript code faster, as well as isolate individual instances of JavaScript to ensure code from one page does not impact activity on another page in a tab in the same browser.

Node.js also represents another extension of JavaScript, as a server with streamlined ability to send and receive data from web browsers. Originally, Node.js was an idea (a fast, streamlined way to synchronize data between web browsers and remote servers) in search of a language. When Google's V8 JavaScript Engine was released, the Node.js project switched to JavaScript to leverage the capabilities of the language.

Learn More

JavaScript

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
https://developer.mozilla.org/en-US/docs/Web/JavaScript/About_JavaScript
https://developer.mozilla.org/en-US/docs/Web/JavaScript
http://en.wikipedia.org/wiki/JavaScript
http://en.wikipedia.org/wiki/ECMA_Script

Object Oriented JavaScript Reference Card

http://refcardz.dzone.com/refcardz/object-oriented-javascript

JavaScript Turns 18

resin.io/happy-18th-birthday-javascript/

Also In The February 2014 Issue

Summer 2014 Code and Technology Camps

It may be the middle of winter in the Northern Hemisphere but now might be a great time to start thinking about technology summer camps if you're a kid or have kids.

An Interview with Susan Kare

You’ve looked at and used Susan Kare’s work, or work inspired by hers, every time you use a computer. The garbage can icon and other taken for granted icons can be traced back to Kare’s icons on the first Macintosh computers.

User Experience Designers

User experience design touches on all the ways people interact with software or hardware. This includes how people use technology, the hardware design, and documentation.

Database Design

How you store and retrieve data in a relational or NoSQL database depends on how well you design the database structure.

How to Create Color Palettes

Here are several ways to create a color palette that looks professional for web sites and interfaces. It's not as easy as you might think.

Fizz-Buzz and Other Odd Questions

There are at least two types of questions coders might face in job interviews, fizz-buzz and puzzle questions. Both can be learned ahead of time.

Interface Design Basics

Interfaces are the primary way people work with computers and websites. Here are concepts used to design human interactions with computers.

A Short History of Lorem Ipsum

No discussion of design is complete without the history of lorem ipsum. It's more than placeholder text you stuff into a visual design.

docstrings

Docstrings are special comments embedded in software code that survive compiling the code, for example, help text.

Database Normalization

Relational databases need to have their data organized a certain way.

What is Information Architecture?

When you think of architecture, you think buildings not information. However, information also needs careful design and structure in computing.

JavaScript

JavaScript is a programming language and an historical artifact from the early internet conflicts between Netscape, Microsoft, and Sun for open standards.

News Wire Stories for February 2014

Interesting stories about computer science, software programming, and technology for the months of December 2013 and January 2014. More stories can be found at the News Wire link at the top of of this site.

How to Build a (Simple) Website

Here is the simplest possible way to learn how to build a website, as well as how web pages and websites work.

A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.

Learn More Links for February 2014

Links from the bottom of all the February 2014 articles, collected in one place for you to print, share, or bookmark.