2011-05

Eich’s ECMAScript.next status update at JSConf: arrow function syntax, classes, transpilers

[2011-05-09] esnext, dev, javascript
Update 2011-06-17: ECMAScript.next: the “TXJS” update by Eich

At JSConf.US 2011, JavaScript creator Brendan Eich gave an update [1] on what features will make it into ECMAScript.next, the version after ECMAScript 5 [3].

Programming language variables: scope and extent

[2011-05-09] programming languages, dev, javascript, jslang
This post examines two aspects of how variables work in programming languages: The scope and the extent of variables. Example source code is given in JavaScript, but should simple enough to be universally understandable.

Google’s Traceur: compile ECMAScript.next to JavaScript on the fly

[2011-05-06] esnext, dev, javascript
Google’s Traceur allows you to use ECMAScript.next features right now: Write ECMAScript.next code and use a special script type. Then the first script you load is Traceur which ensures that all your new code is compiled to JavaScript on the fly.

New ways of playing old instruments

[2011-05-06] music, life, video
This post shows how some musicians do amazing things with pianos, guitars, and zithers. This is one of the few instances where you really have to watch how someone makes music, in order to really appreciate it. So it’s good that all of the following material is available on YouTube. Videos embedded after the break.

Why is the revenue of technical books declining?

[2011-05-01] life, media
Mark Pilgrim has written the post “The ‘book’ is dead” [via Daring Fireball] where he examines why revenue from technical books seems to be declining. It was triggered by a prior post from David Flanagan, in which he writes:
For 15 years I’ve been one of those lucky authors who has been able to support himself and his family almost entirely on book royalties. But the publishing industry has been in decline and my royalties checks have decreased more-or-less steadily since the dot-com bust, and I’ve now decided that I need to look for a salaried job.
Pilgrim’s post makes a few noteworthy points:

2011-04

Creating new programming languages is becoming easier ... and harder

[2011-04-29] programming languages, dev
In December 2010, Brendan Eich talked about Mozilla’s new programming language called Rust (that focuses on safety and concurrency, to replace C++ as Mozilla’s implementation language). He mentions that creating new languages is still important, because they can recycle old research, but repackage it so that it becomes more mainstream-compatible. One example is Clojure that continues the Lisp tradition, but on the Java Virtual Machine (JVM). There are two new aspects to modern language design:

ECMAScript.next features are taking shape

[2011-04-28] esnext, dev, javascript
The ECMAScript wiki has two pages with features that might make it into ECMAScript.next:

Patterns for modules and namespaces in JavaScript

[2011-04-27] dev, javascript, jslang
Update 2011-11-19: Bridging the module gap between Node.js and browsers

JavaScript does not come with support for modules. This blog post examines patterns and APIs that provide such support. It is split into the following parts:

  1. Patterns for structuring modules.
  2. APIs for loading modules asynchronously.
  3. Related reading, background and sources.

ECMAScript 5 spec: LexicalEnvironment versus VariableEnvironment

[2011-04-22] dev, javascript, jslang
This post examines some of the details of how environments are handled in the ECMAScript 5 (ES5) specification [1]. In particular, there isn’t a single “current environment” in ES5, but two: the LexicalEnvironment and the VariableEnvironment. A piece of code at the end exploits these ES5 internals to produce different results on Firefox and Chrome.

Iterating over arrays and objects in JavaScript

[2011-04-20] dev, javascript, jslang
This post explains three approaches for extracting information from arrays and objects:
  1. for loops,
  2. array methods (courtesy of ECMAScript 5 [1]),
  3. listing property keys.
It concludes with best practices for applying these approaches.