The future of "ES6"?

So, is there any thought to the future of how we think of ES6? I mean, it’s more than 5 years old now, and ES11 is out. At what point do we stop thinking of ES6 as something “extra” and just think of it as part of JS? Also, there are things that JS developers use that are post ES6.

I think thinking of ES6 as an optional expansion pack of JS does it a disservice and perhaps fuels some of the “do I need to learn this” attitude. Granted, it’s not just FCC that does this, but I think it would be something good to think about.

Would it be good to call them “Basic JS” and “Modern JS”, or “Pre-ES6 JS” and “Post-ES6 JS”? Should we be appending to the second curriculum as new features come out? Maybe just for the most likely to be encountered ones?

I don’t know, just thinking out loud.

4 Likes

the new curriculum is using current standards, it does not make a difference betwern ES5 and ES6, it’s just JavaScript, and it seems the updates to arrive to its release are progressing

example

do you mean something different?

1 Like

As soon as ES6+ will stop popping up in job ads :smirk:

I agree with you on this. I spent the longest time under the assumption there were 2 versions of JavaScript, and that there were compatibility issues between them.

However, going back to the fCC curriculum, we have 2 issues:

  1. The ES6 section was developed during the height of the ES6 ‘movement’. I have not spent any time checking what comes from which version, but I assume there is at least no ES8 in the ES6. This goes to issue 2
  2. Currently, the ES6 version does not teach ES7+ (majority, anyway). So, calling anything else would make even more Campers upset that the curriculum is outdated, and they would feel lied to that, by the end of the section, they had not learnt about all of the later features.

I am unsure how the next version of the curriculum is going to be structured/names, but I assume it will be appropriately thought through.

1 Like

It’s a funky thing to discuss, right? ES6 (and beyond) is somewhat apart from basic/traditional/old JavaScript, because it’s mostly syntactic sugar. It all can be reproduced with “basic” JS and the higher level of abstraction makes it harder for newbies to grasp. But also, it’s not really optional if you are going to work (professionally or not) with other people. These are the new standards and you should use them.

2 Likes

I mean, I suppose there could be an extra section for each ESx… That seems a bit messy to me. I suppose another option would be to just have everything JS and break it apart differently (if we need to), maybe around subject areas (strings, math, flow control, etc.).

And maybe you’re right - maybe this has already been thought of and accounted for - I’m not good about keeping track of what’s coming down the pipe.

But it always seemed like an odd distinction and will keep getting more and more dated as time goes on.

As soon as ES6+ will stop popping up in job ads

I understand the point, but just because hirers make a distinction, I don’t know that the curriculum has to be organized around that increasingly irrelevant distinction. (And an incorrect one as people often include post ES6 features under that umbrella.) I think we could organize more logically and just have a brief explanation about the history or the distinction. And/or as the features are introduced, it can be said with which version it entered the language.

Yeah, that’s a good point. Perhaps it should be separated that way. But it’s mainly the label of “ES6” that bothers me. ESNext? Again, maybe something like “Modern JS (ES6 and Beyond)” - that might make it clearer that this is core JS and is the standard and that it extends beyond the specific category of “ES6”.

1 Like

If I was part of a brainstorming session, I might suggest something like “JavaScript Standards and Best Practices” where we would cover widely used (and universally adopted) ES6+ syntax as well as some other content about subjects like reusable code, readability, etc.

2 Likes

I would like to offer up my perspective as a beginner.

When I first started learning javascript a few months back, it seemed like es6 was this big new thing that you should learn.

Then I realized it has been out for a while and is now the norm.

But it also invites other questions like should I learn es7,8,9,10,11?
As a beginner, I don’t know if you just learn those other version updates on the job or should read up on documentation, or not worry about it that much.

I like that idea of calling it Modern Javascript.

or @ArielLeslie 's suggestion of “JavaScript Standards and Best Practices”

3 Likes

I agree with this so much.
Calling it something like Modern Javascript also helps prevent feeling like it’s just something else that could be easily skipped and glossed over too

Yeah, that’s part of my concern - we make it sound like something “extra”, like it’s TypeScript or something that’s optional. No, it’s just normal JavaScript and it gets separated out for historical reasons. At some point it’s going to have to shift and people will stop making the distinction - the question is just when and how.

1 Like

Speaking as a professional developer: now that Internet Explorer is in the dumpster of history where it belongs, the time has come to teach people to use modern Javascript.

The core concepts to being productive are, I believe, these:

  • async / await and Promises.
  • const and let, and enough about variable scope to know what var does if we use it.
  • Arrow functions.
  • Classes.
  • Something about modules, without making new students figure out webpack and all that.
  • Did I mention async / await ?
1 Like

Yeah, async/await should have some coverage, maybe even generator functions. There is a little bit of coverage of Promises, but in a perfect world, I would want that expanded. Async is such an important topic in JS and it is so confusing for learners - I really think that should have it’s own section and go through the different ways more thoroughly, but that’s getting off topic.

Yeah, I know it’s tough because JS is kind of a moving target, and it’s hard to generate material that will fit a moving target. But I do think that getting away from the concrete dividing line tied to “ES6” will help allow it to be more agile. And I think we need to remember that things will keep changing. React is another good example - it’s changed a lot since those materials were made. (But again, I’m getting off topic.)