Hacker News new | ask | show | jobs
by lucasmullens 3708 days ago
What happened to the year-based naming convention? I thought we switched to ES2015 and ES2016?
6 comments

I still don't understand why it's been renamed to ES2015. Reminds me of the Windows98 days. Gives software an air of "out-of-date"-ness for no reason. Just give it a version number and be done. Javascript versions don't need branding.
I'd think there are plenty of reasons to give software an air of "out-of-date"-ness. In this particular example, its a stigma to browser developers if it takes them until 2023 to implement ES2015.

It's a common thing in language standards to version by the year the standard was ratified, especially for ANSI languages such as C and C++, but there's a long history of it in language design including the ur-example off the top of my head of ALGOL68.

As for Windows 98. Would you seriously with a straight face want to admit to using a version of Windows that is old enough to vote? If anything, it's too bad they stopped that pattern with XP as it would have been a lot easier to shame people for still using Windows 2001 in 2015.

MySQL still hasn't implemented "with statements" and I miss them frequently when working with MySQL. The fact that "with statements" were added to the SQL standard in 1999 doesn't seem to bother anybody though, and MySQL continues to gain popularity.
I've been Team PostgreSQL for a long time in the FLOSS DB Wars, so take this with a grain of salt, but that MySQL hasn't managed to implement "ancient" standards certainly has bothered me over the years and there are certainly plenty of other people on Team PostgreSQL that have been pointing this stuff out for in some cases decades. So yes, shame on MySQL for failing SQL99 (and heck, shame on them for failing SQL86 in their basic [lack of] ACID compliance in their default DB storage for far too many years).

So yes, this certainly feeds my point that standards years can be useful to point out the quirky failings of software by potentially adding to their shame. It's 2016, are you using an SQL-1986-compliant database?

Common table expressions, not "with statements", sorry to be pedantic. Also, CTE's are awesome - I used them pretty heavily in massaging a self-referential table used to implement a hierarchy into something that doesn't piss off reporting tools (to make things worse it's a slowly changing dimension, oh the fun).
As I understand the reason they switched to the year based naming is because they plan to do yearly standards now, switching to a release date based model rather than a feature based model. C++ has kind of switched to this model too, where features that are ready to go for the release date are included, and ones that aren't quite baked enough will not hold up the release, to help avoid an ES6 type situation where the committee works for years and years without releasing an update.

So it's not that standards become out of date, especially as in both Javascript and C++'s case, the standards are generally additive. They just add stuff so your old software should continue to work and will not become "out of date".

Anyway, that's the reasoning I've been given behind the change and it makes sense to me. Hopefully that answers the question for you as well.

How about C++?

C++03

C++11

C++14

C++17

Ubuntu?

16.04

13.10

9.04

As pointed out below, technically "ECMAScript® 2015" is "ECMA-262 6th Edition", so the numbers still exist in some form. It's a really difficult balance between readability, matching most-common usage in the community (e.g. Kangax still uses ES6), and trying not to mix nomenclatures in the process.
IMO it's all a mess. Currently we have "ECMAScript® 2015", which is "ECMA-262 6th Edition".
ES6 is still somewhat more popular. It's like a lot of terms that catch on even when they're not officially accurate for what they describe (e.g. 'HTML5' covering things like WebGL) - it often pays to go with common usage.

If the end digit had matched, I suspect it would have worked out better, but with ES2015 and ES6 being equivalent, it's pretty confusing.

At least they could have waited a year, so ES6 = ES2016, ES7 = ES2017.
No one uses it.