2011-02

David Herman on ECMAScript.next

[2011-02-24] esnext, dev, javascript
David Herman has posted a video of his talk on what he calls ECMAScript.next, the next version of JavaScript. Others call it “JavaScript Harmony”. It nicely complements my recent post on Brendan Eich’s ideas for Harmony [1], with a little overlap, but not much.

Roadmap for ECMAScript.next:

  • Spring 2011: proposal freeze (no more proposals allowed)
  • 2013 (roughly): spec finished, parts will be in browsers before that.
  • opt-in via MIME type in script tag: <script type="application/javascript;version=next"> (where “next” is a placeholder for something that has still to be determined)
Broad themes:
  • Fixes: removing quirks
  • Expressiveness: support better, more concise idioms
  • Power: doing what couldn’t previously be done

What should be on your business card?

[2011-02-23] howto, life, business
The business card is one paper-based product that is still useful in this digital age (that might change if near field communication becomes more popular and you can just tap devices together to exchange contact information). This post lists what you should put on your business card, with special considerations for online-dwellers.

Efficiently creating JavaScript objects: closures versus prototypes

[2011-02-19] dev, javascript, jslang
In “Closure Versus Prototypal Pattern Deathmatch”, Brendan Eich examines the question whether, when creating objects, the closure pattern or the prototypal pattern is more efficient.

JavaScript variable scoping and its pitfalls

[2011-02-17] dev, javascript, jslang
This blog post explains how variables are scoped in JavaScript. It points out two things that can cause problems if you are not aware of them: JavaScript variables are function-scoped and they can be captured in closures.

Six things JavaScript needs to learn from Java

[2011-02-13] dev, javascript, jslang, java
The amount of creativity currently happening the realm of JavaScript (JS) is simply amazing. People invent all kinds of nifty tools and extensions. But with that comes fragmentation and the proliferation of JS frameworks has turned JS into an assembly of incompatible sub-languages. In contrast, Java has standardized the following six things and JS should do the same. After listing them, this post points out consequences (tooling!) and future developments.

Choice is a paradox: there can be too much of it

[2011-02-09] psychology, life
This blog post is a summary of the talk “The Paradox of Choice – Why More Is Less” by Barry Schwartz (he has also written a book about it).

es5-shim: use ECMAScript 5 in older browsers

[2011-02-07] dev, javascript, jslang

Faceted navigation of data

[2011-02-06] dev, hci, computers, facets
Faceted navigation is an efficient way of exploring a set of entities via the values of their attributes. You have probably already used it, maybe without knowing its name. For example, with a music program or on a shopping website. This post explains what faceted navigation is and what benefits it brings.

Tom DeMarco on “The Collaborative Design Imperative”

[2011-02-01] dev, software engineering
Tom DeMarco has written some great books (“Peopleware” is one of my “Eight important books for software developers”). Thus, I was excited to have the opportunity to hear him speak. The following is a summary of a talk Tom DeMarco gave at the OOP Conference in Munich, on Jan 26, 2011. Comments in square brackets are mine.

2011-01

Does JavaScript have a bytecode, like Java?

[2011-01-30] dev, javascript, webdev, jslang
Update 2012-01-22:JavaScript myth: JavaScript needs a standard bytecode” is an updated version of this blog post.

The web and thus JavaScript is slowly turning into a great platform. Part of the allure of the (partially) competing Java platform is that it has a core that goes beyond “Java the language”: The Java Virtual Machine (JVM). There are now many languages that target the JVM, for example: Groovy, JRuby, Fantom, Jython, Scala, ABCL, Clojure, and Gosu. Java class files store JVM programs as Java bytecode, a compact binary format that source code is compiled to. Does JavaScript have something similar?