ES6 is introducing two new concepts: fat arrow
=> and skinny arrow
->. While useful, the perception of how these terms would be viewed was overlooked. They are not the most flattering.
With ES9, a new arrow will be introduced:
Sexy arrow will be similar in functionality to fat arrow and skinny arrow, but it will throw far fewer errors. This is because the code will be more forgiving… due to its sexiness.
ES6 will have the new
We are excited about Variable level scoping. For engineers concerned about memory usage in their programs, they should consider Variable scoping, as the garbage collector will clean it up as soon as it is created.
Self Equality (otherwise known as the Selfie)
The only items that will result in true will be those that are compared to themselves. At first, it may at first be confusing to find 2 does not equal 2, unless 2 was the original 2.
Uber equality brings a whole new level of comparison. It is so strict, that nothing is equal.
As you can probably guess, Quantum equality is equal or not equal, or both equal and not equal at the same time… but you never know for sure since when you test it, it changes. Unfortunately, there are still some bugs in that when testing for equality, the code is often found to be dead.
bind() to work along with
apply() to assist with setting the context of a function. While useful, these functions do not have the versatility to work on a global scale like the new, ultimate binding function:
Boson is simple: it binds everything to everything.
We had been using Deferreds, and more recently Promises to help us with our asynchronous callbacks. ES6 will introduce Futures. Seeing the limitations of these helpers, ES9 will provide tools that will not only assit in asynchronous coding, but will make it faster. The first:
The other asynchronous helper is:
Wormholes are very fast and convenient, and they may return your async call, or might just dump you into a completely different program… or perhaps another dimension.
Finally, the TC39 committee remains vigilant in helping you keep you code terse and compact. ES6 will have fat and skinny arrows and optional parenthesis. In keeping with this trend, there will be more options in ES9:
x 2 2 // x = 2 + 2
Subtraction is done the same way, only you reverse the numbers!
x 2 2 // x = 2 - 2
(The above example is more clear when different numbers are used)
Multiplication is done by stacking the numbers, as in a 4th grade math assignment:
// x = 2 * 2
Division is not supported in ES9.
In addition to optional operands, there are more optional features in ES9: curly braces, semicolons, line breaks, tabs, quotes, and even spaces are all optional. Now you can write code without superfluous symbols to distract from what really matters. As an example:
As you can see, the new syntax allows for maximum expressiveness and moves well beyond jQuery and its rudimentary “chaining”.
Additional tech note:
As of ES9, the committee has yet to agree on a standard for inheritance. Perhaps by ES 10.