JavaScript Weekly
Issue #48 - October 14, 2011

Welcome to issue 48 of JavaScript Weekly. An interesting week with the much anticipated unveiling of Google Dart just a few days ago. A special once-only section has been dedicated to it here today. If you wish to follow Dart long term, subscribe to our new sister newsletter: Dart Weekly :-)

Headlines

jQuery 1.7 Beta 2 Released
Hot off the momentum of the jQuery Conference in Boston earlier this month, and based on the community's feedback, the jQuery core team have released a new beta of 1.7 incorporating many fixes and stability improvements.

JavaScript++: New Language Offering JavaScript (Plus A Bit More)
JavaScript++ is a JavaScript-derived language that adds a Java/C# flavor of class-based OOP to JavaScript and it compiles down to regular JavaScript, a la CoffeeScript. It looks interesting but may have a battle on its hands against Google's Dart and JavaScript's trademark holder.

Google Dart Special Roundup

Google's Unveils New 'Dart' Language
At the 2011 GoTo Conference in Denmark, Google unveiled 'Dart', a new programming language that's being tipped to take on JavaScript in the Web-focused programming language space. See what it's all about at its official homepage.

Dart Compilation: Hello World in 17259 Lines of JavaScript
A humorous GitHub gist demonstrating how a simple "Hello World" script in Dart compiles down to 17,260 lines of JavaScript. The comments are complete with all the graphical memes and jokes we love to hate.

What Is Wrong About 17259 Lines Of JavaScript Code
So 'hello world' in Dart compiles into 17259 lines of JavaScript. Why and how? Andrea Giammarchi digs into it.

Dart; or Why JavaScript Has Already Won
Peter-Paul Koch thinks that Google Dart will fail miserably as a structured language for Web programming and explains why here.

Dart Weekly: My Forthcoming Weekly Newsletter for Dart
You're reading JavaScript Weekly and.. I'll soon be releasing Dart Weekly too. If you're interested, check it out and sign up. The first issue comes soon.

From Our Sponsor

Training: Beautiful Front End Code with Backbone.js and CoffeeScript
Want to build front end code you can love every bit as much as your server side code? Enjoy a 2 day intensive course being held in San Francisco, November 7-8, 2011, taught by Chris Nelson (a Backbone, CoffeeScript, and Rails expert).

Articles

Efficient Encapsulation of JavaScript Objects
Encapsulation is a key principle of object oriented programming. Ideally, an object exposes a limited public interface and keeps its data and implementation details private. In this post, Andrew Davey looks into some ways of achieving this in JavaScript.

A Tour of ECMAScript 5's Array Methods
Jimmy Cudara presents the last in a series of posts about ECMAScript 5 (the language spec behind JavaScript) focusing on the new high level array methods. There are some handy iteration and transformation functions covered here.

Scalable JavaScript Design Patterns by Addy Osmani

Organizing Your Backbone.js Application using Modules and require.js

Go-Flavored JavaScript
John Tantalo was intrigued by Google's Go language and decided to reimplement some Go code in JavaScript along with Go's 'goroutine' and channel features. The resulting JavaScript is unusual but potentially useful in other scenarios.

Videos and Media

The Future of JavaScript with David Herman of Mozilla
Mozilla's David Herman talks about ECMAScript.Next or, more practically, the future of JavaScript. He touches on modules, expressiveness, interruptible functions, and more. It clocks in at 36 minutes, there's plenty of code, and it's well recorded.

Chris Williams: An End to Negativity (at JSConf.eu 2011)

Code and Libraries

Kerning.js: CSS, Meet Kerning (and other type tweaks)
Kerning.js is a simple JavaScript library that adds extra functionality to your CSS to adjust the kerning of your text, individual letter sizing, arbitrary obliques, and word colors. I love this.

Isogenic Engine: A Modern Web-based MMO Game Engine
Isogenic Engine is a Web-based MMO game engine focused on rapid development of games. It uses HTML5 and uses Node.js behind the scenes to deliver MMO functionality in real-time persistent worlds.

money.js / fx() - A JavaScript Currency Conversion Library
money.js is a currency conversion library in JavaScript, 'done right.' It has no dependencies and comes in at just over 1KB. It works using the Open Source Exchange Rates API, also linked below.

Open Source Exchange Rates API - Free, Hourly-Updated JSON Currency Data
The Open Source Exchange Rates API project is a free and reliable source of exchange rate data for developers, all served up with JSON. It's used by the money.js library, linked above.

CoffeeScript Koans - Koans to Learn CoffeeScript
Koans are short code exercises designed to stretch your mind and let you solve a small code puzzle, all backed by passing an automated test. They're popular in the Ruby world but now you can learn some CoffeeScript with them too.

Bounce HTTP Requests Around with Bouncy (a Node-based HTTP Proxy)
Bouncy is a WebSocket and HTTPS-capable HTTP router, proxy, and load balancer written in Node.js. It "bounces HTTP requests around to where they need to go in an entirely transparent way." It's simple to use and looks a little similar to haproxy.

Cucumber-JS: Pure JavaScript Cucumber (A BDD Tool)
Cucumber is a popular BDD tool in the Ruby world that heavily leans on writing plain text stories which are then processed by regular expressions. Cucumber-JS is an official JavaScript port that's currently in progress.

dyn.js: A New invokedynamic-Based Javascript Implementation

Last but not least..

Logo.js: A Community Logo for JavaScript
Chris Williams, of JSConf fame, has put up a repository containing a community-developed JavaScript logo in various formats, as unveiled at JSConf EU 2011. You're free to use it however you like. I hope it (or something similar) catches on.