How it feels to learn JavaScript in 2016

classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

How it feels to learn JavaScript in 2016

J Decker

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Jordan Harband

On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss



_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

kai zhu
tc39 is partly to blame for promoting the perception of javascript
language instability, which promotes tooling instability.

generators, es modules, destructing, let, fat arrows have caused
tremendous harm to tooling stability, which has made
frontend-development hell for everyone.


On 10/27/17, Jordan Harband <[hidden email]> wrote:

> aka "how it feels to learn"?
>
> A decent response:
> https://medium.com/front-end-hacking/how-it-feels-to-learn-javascript-in-2017-a934b801fbe
>
> On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>
>> (humor?) https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-
>> d3a717dd577f
>>
>> It all seemed so simple....
>>
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Marky Mark
kai, what do you think would've been a better alternative? (Honestly curious)

On Fri, Oct 27, 2017 at 1:27 AM kai zhu <[hidden email]> wrote:
tc39 is partly to blame for promoting the perception of javascript
language instability, which promotes tooling instability.

generators, es modules, destructing, let, fat arrows have caused
tremendous harm to tooling stability, which has made
frontend-development hell for everyone.


On 10/27/17, Jordan Harband <[hidden email]> wrote:
> aka "how it feels to learn"?
>
> A decent response:
> https://medium.com/front-end-hacking/how-it-feels-to-learn-javascript-in-2017-a934b801fbe
>
> On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>
>> (humor?) https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-
>> d3a717dd577f
>>
>> It all seemed so simple....
>>
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

James Kyle
> generators, es modules, destructing, let, fat arrows have caused tremendous harm to tooling stability

The exact opposite is true. Features like ES modules have helped stabilize the ecosystem in many ways even if we're still figuring out interoperability.

On Fri, Oct 27, 2017 at 4:32 PM, Mark <[hidden email]> wrote:
kai, what do you think would've been a better alternative? (Honestly curious)

On Fri, Oct 27, 2017 at 1:27 AM kai zhu <[hidden email]> wrote:
tc39 is partly to blame for promoting the perception of javascript
language instability, which promotes tooling instability.

generators, es modules, destructing, let, fat arrows have caused
tremendous harm to tooling stability, which has made
frontend-development hell for everyone.


On 10/27/17, Jordan Harband <[hidden email]> wrote:
> aka "how it feels to learn"?
>
> A decent response:
> https://medium.com/front-end-hacking/how-it-feels-to-learn-javascript-in-2017-a934b801fbe
>
> On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>
>> (humor?) https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-
>> d3a717dd577f
>>
>> It all seemed so simple....
>>
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss



_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

kai zhu
In reply to this post by Marky Mark
tc39 should have staggered the release of so many high-impact changes
over es6/es7/es8/etc.

es6 is essentially javascript++, like c/c++.  you can't expect senior
c programmers to trivially transition projects to c++, or for existing
c toolings to automatically extend to c++.

On 10/27/17, Mark <[hidden email]> wrote:

> kai, what do you think would've been a better alternative? (Honestly
> curious)
>
> On Fri, Oct 27, 2017 at 1:27 AM kai zhu <[hidden email]> wrote:
>
>> tc39 is partly to blame for promoting the perception of javascript
>> language instability, which promotes tooling instability.
>>
>> generators, es modules, destructing, let, fat arrows have caused
>> tremendous harm to tooling stability, which has made
>> frontend-development hell for everyone.
>>
>>
>> On 10/27/17, Jordan Harband <[hidden email]> wrote:
>> > aka "how it feels to learn"?
>> >
>> > A decent response:
>> >
>> https://medium.com/front-end-hacking/how-it-feels-to-learn-javascript-in-2017-a934b801fbe
>> >
>> > On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>> >
>> >> (humor?)
>> https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-
>> >> d3a717dd577f
>> >>
>> >> It all seemed so simple....
>> >>
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> [hidden email]
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >>
>> >
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Naveen Chawla
kai zhu, why are you transitioning projects at all? As mentioned in a previous discussion, I recommend transitioning as you encounter code to be worked on, no need to transition in one go. Otherwise, just leave working projects as they are! After all, TC39 has a mission to "not break the web"!

On Fri, 27 Oct 2017 at 11:18 kai zhu <[hidden email]> wrote:
tc39 should have staggered the release of so many high-impact changes
over es6/es7/es8/etc.

es6 is essentially javascript++, like c/c++.  you can't expect senior
c programmers to trivially transition projects to c++, or for existing
c toolings to automatically extend to c++.

On 10/27/17, Mark <[hidden email]> wrote:
> kai, what do you think would've been a better alternative? (Honestly
> curious)
>
> On Fri, Oct 27, 2017 at 1:27 AM kai zhu <[hidden email]> wrote:
>
>> tc39 is partly to blame for promoting the perception of javascript
>> language instability, which promotes tooling instability.
>>
>> generators, es modules, destructing, let, fat arrows have caused
>> tremendous harm to tooling stability, which has made
>> frontend-development hell for everyone.
>>
>>
>> On 10/27/17, Jordan Harband <[hidden email]> wrote:
>> > aka "how it feels to learn"?
>> >
>> > A decent response:
>> >
>> https://medium.com/front-end-hacking/how-it-feels-to-learn-javascript-in-2017-a934b801fbe
>> >
>> > On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>> >
>> >> (humor?)
>> https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-
>> >> d3a717dd577f
>> >>
>> >> It all seemed so simple....
>> >>
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> [hidden email]
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >>
>> >
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Bob Myers
In reply to this post by kai zhu
If you don't like those features or the associated tooling, then don't use them.
Meanwhile, other people will be using them to build reliable, well-engineered, large-scale, performant applications.
Bob

On Fri, Oct 27, 2017 at 10:57 AM, kai zhu <[hidden email]> wrote:
tc39 is partly to blame for promoting the perception of javascript
language instability, which promotes tooling instability.

generators, es modules, destructing, let, fat arrows have caused
tremendous harm to tooling stability, which has made
frontend-development hell for everyone.


On 10/27/17, Jordan Harband <[hidden email]> wrote:
> aka "how it feels to learn"?
>
> A decent response:
> https://medium.com/front-end-hacking/how-it-feels-to-learn-javascript-in-2017-a934b801fbe
>
> On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>
>> (humor?) https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-
>> d3a717dd577f
>>
>> It all seemed so simple....
>>
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

kai zhu
in frontend-development, the majority of use-cases are for
small/medium-scale applications, where es6 toolings are inappropriate
due to their complexity.

"reliable, well-engineered, large-scale, performant applications" are
a niche application of javascript.  tc39 should focus on making lives
of everyday javascript programmers easier (who mainly want simple and
stable tooling for simple/moderate webapps), instead of catering to
niche people wanting google/facebook-scale apps.


On 10/27/17, Bob Myers <[hidden email]> wrote:

> If you don't like those features or the associated tooling, then don't use
> them.
> Meanwhile, other people will be using them to build reliable,
> well-engineered, large-scale, performant applications.
> Bob
>
> On Fri, Oct 27, 2017 at 10:57 AM, kai zhu <[hidden email]> wrote:
>
>> tc39 is partly to blame for promoting the perception of javascript
>> language instability, which promotes tooling instability.
>>
>> generators, es modules, destructing, let, fat arrows have caused
>> tremendous harm to tooling stability, which has made
>> frontend-development hell for everyone.
>>
>>
>> On 10/27/17, Jordan Harband <[hidden email]> wrote:
>> > aka "how it feels to learn"?
>> >
>> > A decent response:
>> > https://medium.com/front-end-hacking/how-it-feels-to-learn-
>> javascript-in-2017-a934b801fbe
>> >
>> > On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>> >
>> >> (humor?) https://hackernoon.com/how-it-feels-to-learn-javascript-in-
>> 2016-
>> >> d3a717dd577f
>> >>
>> >> It all seemed so simple....
>> >>
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> [hidden email]
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >>
>> >
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Naveen Chawla
kai zhu, it sounds like you have a bad manager who is over eagerly pushing for a disruptive transition in a well established ES5 project to new features. The way to gracefully introduce the new features is incrementally in new code, not existing code, or when modifying existing code. If your manager is pushing to translate the whole code base and you are finding that a waste of time, then that is not the fault of TC39 or the language; that is the fault of the manager.

The features themselves are superior, more powerful and easier to use than the former ES5, so "everyday javascript programmers" will have a better time whether they are writing tiny or massive apps.

Yes, new apps should use those features immediately, and the developers will experience the benefits, sometimes very significant


On Fri, 27 Oct 2017, 11:52 am kai zhu, <[hidden email]> wrote:
in frontend-development, the majority of use-cases are for
small/medium-scale applications, where es6 toolings are inappropriate
due to their complexity.

"reliable, well-engineered, large-scale, performant applications" are
a niche application of javascript.  tc39 should focus on making lives
of everyday javascript programmers easier (who mainly want simple and
stable tooling for simple/moderate webapps), instead of catering to
niche people wanting google/facebook-scale apps.


On 10/27/17, Bob Myers <[hidden email]> wrote:
> If you don't like those features or the associated tooling, then don't use
> them.
> Meanwhile, other people will be using them to build reliable,
> well-engineered, large-scale, performant applications.
> Bob
>
> On Fri, Oct 27, 2017 at 10:57 AM, kai zhu <[hidden email]> wrote:
>
>> tc39 is partly to blame for promoting the perception of javascript
>> language instability, which promotes tooling instability.
>>
>> generators, es modules, destructing, let, fat arrows have caused
>> tremendous harm to tooling stability, which has made
>> frontend-development hell for everyone.
>>
>>
>> On 10/27/17, Jordan Harband <[hidden email]> wrote:
>> > aka "how it feels to learn"?
>> >
>> > A decent response:
>> > https://medium.com/front-end-hacking/how-it-feels-to-learn-
>> javascript-in-2017-a934b801fbe
>> >
>> > On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>> >
>> >> (humor?) https://hackernoon.com/how-it-feels-to-learn-javascript-in-
>> 2016-
>> >> d3a717dd577f
>> >>
>> >> It all seemed so simple....
>> >>
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> [hidden email]
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >>
>> >
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Florian Bösch
In reply to this post by J Decker
I use a simple build script/requirement/module system I wrote myself in a few dozen lines that does things the way I like it. I find the permanent churn of pointless new flavors of the same thing annoying and distracting, whatever happened to writing code and be done with it, programming isn't spending time tweaking your super hip setup so long by the time you're done something new is now the new hotness.

On Fri, Oct 27, 2017 at 12:38 AM, J Decker <[hidden email]> wrote:

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss



_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Frederick Stark
Best response I've seen:
https://medium.freecodecamp.org/javascript-fatigue-fatigue-66ffb619f6ce

I'd just like to thank TC39 for not breaking compatibility. All the niche old libraries I use that were written in ES5 still work in my ES6+ projects with no issues.

The ability to take it or leave it when it comes to new features makes the changes easy as pie

On Oct 28 2017, at 8:26 am, Florian Bösch <[hidden email]> wrote:
I use a simple build script/requirement/module system I wrote myself in a few dozen lines that does things the way I like it. I find the permanent churn of pointless new flavors of the same thing annoying and distracting, whatever happened to writing code and be done with it, programming isn't spending time tweaking your super hip setup so long by the time you're done something new is now the new hotness.

On Fri, Oct 27, 2017 at 12:38 AM, J Decker <[hidden email]> wrote:

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

kai zhu
In reply to this post by Naveen Chawla
naveen, how are es modules or generators superior in getting a
frontend product shipped?  "powerful" does not equate superior.

success in shipping a product correlates highly to having maintainable
code (with consistent styguide) that's easy to debug.  generators are
a nightmare to debug (compared to callbacks and promises) when doing
integration and qa.  es modules have confusing async-magic that few
frontend devs really understand, and results in brittle module-loading
code nobody wants to touch and risk breaking after its written.

the es6+ projects i've worked on all have significant amounts of
brittleness which leads to them being difficult-to-ship as features
could not be added or modified without fear of code-changes breaking
something.  2016 and 2017 have been rough years for anyone trying to
get es6+ products shipped.  and i suspect it will remain the same for
2018.

if you're a product manager and your priority is to ship a frontend
product, then your safest bet is to avoid es6 altogether.

On 10/27/17, Naveen Chawla <[hidden email]> wrote:

> kai zhu, it sounds like you have a bad manager who is over eagerly pushing
> for a disruptive transition in a well established ES5 project to new
> features. The way to gracefully introduce the new features is incrementally
> in new code, not existing code, or when modifying existing code. If your
> manager is pushing to translate the whole code base and you are finding
> that a waste of time, then that is not the fault of TC39 or the language;
> that is the fault of the manager.
>
> The features themselves are superior, more powerful and easier to use than
> the former ES5, so "everyday javascript programmers" will have a better
> time whether they are writing tiny or massive apps.
>
> Yes, new apps should use those features immediately, and the developers
> will experience the benefits, sometimes very significant
>
>
> On Fri, 27 Oct 2017, 11:52 am kai zhu, <[hidden email]> wrote:
>
>> in frontend-development, the majority of use-cases are for
>> small/medium-scale applications, where es6 toolings are inappropriate
>> due to their complexity.
>>
>> "reliable, well-engineered, large-scale, performant applications" are
>> a niche application of javascript.  tc39 should focus on making lives
>> of everyday javascript programmers easier (who mainly want simple and
>> stable tooling for simple/moderate webapps), instead of catering to
>> niche people wanting google/facebook-scale apps.
>>
>>
>> On 10/27/17, Bob Myers <[hidden email]> wrote:
>> > If you don't like those features or the associated tooling, then don't
>> use
>> > them.
>> > Meanwhile, other people will be using them to build reliable,
>> > well-engineered, large-scale, performant applications.
>> > Bob
>> >
>> > On Fri, Oct 27, 2017 at 10:57 AM, kai zhu <[hidden email]> wrote:
>> >
>> >> tc39 is partly to blame for promoting the perception of javascript
>> >> language instability, which promotes tooling instability.
>> >>
>> >> generators, es modules, destructing, let, fat arrows have caused
>> >> tremendous harm to tooling stability, which has made
>> >> frontend-development hell for everyone.
>> >>
>> >>
>> >> On 10/27/17, Jordan Harband <[hidden email]> wrote:
>> >> > aka "how it feels to learn"?
>> >> >
>> >> > A decent response:
>> >> > https://medium.com/front-end-hacking/how-it-feels-to-learn-
>> >> javascript-in-2017-a934b801fbe
>> >> >
>> >> > On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>> >> >
>> >> >> (humor?)
>> >> >> https://hackernoon.com/how-it-feels-to-learn-javascript-in-
>> >> 2016-
>> >> >> d3a717dd577f
>> >> >>
>> >> >> It all seemed so simple....
>> >> >>
>> >> >> _______________________________________________
>> >> >> es-discuss mailing list
>> >> >> [hidden email]
>> >> >> https://mail.mozilla.org/listinfo/es-discuss
>> >> >>
>> >> >>
>> >> >
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> [hidden email]
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Naveen Chawla

I like ditching the intricacies of function prototypes and using classes. Intricacy leads to less maintainability because there is a greater surface area for mistakes and bugs. Arrow functions make this even better because you can reliably move code that uses `this` into and out of them without having to create any `self = this` references. And then `await` `async` - logical algorithms in async world are more straightforward to implement and read. This, again, feeds into maintainability. The foundations of these abstractions are rock solid and their usage is straightforward - there isn't a loss, only gain, for using them.

But, if you prefer ES5 (I don't) then just use it


On Sat, 28 Oct 2017, 1:49 pm kai zhu, <[hidden email]> wrote:
naveen, how are es modules or generators superior in getting a
frontend product shipped?  "powerful" does not equate superior.

success in shipping a product correlates highly to having maintainable
code (with consistent styguide) that's easy to debug.  generators are
a nightmare to debug (compared to callbacks and promises) when doing
integration and qa.  es modules have confusing async-magic that few
frontend devs really understand, and results in brittle module-loading
code nobody wants to touch and risk breaking after its written.

the es6+ projects i've worked on all have significant amounts of
brittleness which leads to them being difficult-to-ship as features
could not be added or modified without fear of code-changes breaking
something.  2016 and 2017 have been rough years for anyone trying to
get es6+ products shipped.  and i suspect it will remain the same for
2018.

if you're a product manager and your priority is to ship a frontend
product, then your safest bet is to avoid es6 altogether.

On 10/27/17, Naveen Chawla <[hidden email]> wrote:
> kai zhu, it sounds like you have a bad manager who is over eagerly pushing
> for a disruptive transition in a well established ES5 project to new
> features. The way to gracefully introduce the new features is incrementally
> in new code, not existing code, or when modifying existing code. If your
> manager is pushing to translate the whole code base and you are finding
> that a waste of time, then that is not the fault of TC39 or the language;
> that is the fault of the manager.
>
> The features themselves are superior, more powerful and easier to use than
> the former ES5, so "everyday javascript programmers" will have a better
> time whether they are writing tiny or massive apps.
>
> Yes, new apps should use those features immediately, and the developers
> will experience the benefits, sometimes very significant
>
>
> On Fri, 27 Oct 2017, 11:52 am kai zhu, <[hidden email]> wrote:
>
>> in frontend-development, the majority of use-cases are for
>> small/medium-scale applications, where es6 toolings are inappropriate
>> due to their complexity.
>>
>> "reliable, well-engineered, large-scale, performant applications" are
>> a niche application of javascript.  tc39 should focus on making lives
>> of everyday javascript programmers easier (who mainly want simple and
>> stable tooling for simple/moderate webapps), instead of catering to
>> niche people wanting google/facebook-scale apps.
>>
>>
>> On 10/27/17, Bob Myers <[hidden email]> wrote:
>> > If you don't like those features or the associated tooling, then don't
>> use
>> > them.
>> > Meanwhile, other people will be using them to build reliable,
>> > well-engineered, large-scale, performant applications.
>> > Bob
>> >
>> > On Fri, Oct 27, 2017 at 10:57 AM, kai zhu <[hidden email]> wrote:
>> >
>> >> tc39 is partly to blame for promoting the perception of javascript
>> >> language instability, which promotes tooling instability.
>> >>
>> >> generators, es modules, destructing, let, fat arrows have caused
>> >> tremendous harm to tooling stability, which has made
>> >> frontend-development hell for everyone.
>> >>
>> >>
>> >> On 10/27/17, Jordan Harband <[hidden email]> wrote:
>> >> > aka "how it feels to learn"?
>> >> >
>> >> > A decent response:
>> >> > https://medium.com/front-end-hacking/how-it-feels-to-learn-
>> >> javascript-in-2017-a934b801fbe
>> >> >
>> >> > On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>> >> >
>> >> >> (humor?)
>> >> >> https://hackernoon.com/how-it-feels-to-learn-javascript-in-
>> >> 2016-
>> >> >> d3a717dd577f
>> >> >>
>> >> >> It all seemed so simple....
>> >> >>
>> >> >> _______________________________________________
>> >> >> es-discuss mailing list
>> >> >> [hidden email]
>> >> >> https://mail.mozilla.org/listinfo/es-discuss
>> >> >>
>> >> >>
>> >> >
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> [hidden email]
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Alexander Jones
In reply to this post by kai zhu
This appears to be borderline trolling.

I can assert with confidence that ES6+ is bringing clear wins in maintainability and developer efficiency. If your colleagues are writing ‘brittle’ code in ES6 I’d argue it’d be worse in ES5 on average.

(Also a mailing list is a great way to get FUD into a discussion without fear of downvotes. Who knew?)

 — The Silent Majority



On Sat, 28 Oct 2017 at 09:19, kai zhu <[hidden email]> wrote:
naveen, how are es modules or generators superior in getting a
frontend product shipped?  "powerful" does not equate superior.

success in shipping a product correlates highly to having maintainable
code (with consistent styguide) that's easy to debug.  generators are
a nightmare to debug (compared to callbacks and promises) when doing
integration and qa.  es modules have confusing async-magic that few
frontend devs really understand, and results in brittle module-loading
code nobody wants to touch and risk breaking after its written.

the es6+ projects i've worked on all have significant amounts of
brittleness which leads to them being difficult-to-ship as features
could not be added or modified without fear of code-changes breaking
something.  2016 and 2017 have been rough years for anyone trying to
get es6+ products shipped.  and i suspect it will remain the same for
2018.

if you're a product manager and your priority is to ship a frontend
product, then your safest bet is to avoid es6 altogether.

On 10/27/17, Naveen Chawla <[hidden email]> wrote:
> kai zhu, it sounds like you have a bad manager who is over eagerly pushing
> for a disruptive transition in a well established ES5 project to new
> features. The way to gracefully introduce the new features is incrementally
> in new code, not existing code, or when modifying existing code. If your
> manager is pushing to translate the whole code base and you are finding
> that a waste of time, then that is not the fault of TC39 or the language;
> that is the fault of the manager.
>
> The features themselves are superior, more powerful and easier to use than
> the former ES5, so "everyday javascript programmers" will have a better
> time whether they are writing tiny or massive apps.
>
> Yes, new apps should use those features immediately, and the developers
> will experience the benefits, sometimes very significant
>
>
> On Fri, 27 Oct 2017, 11:52 am kai zhu, <[hidden email]> wrote:
>
>> in frontend-development, the majority of use-cases are for
>> small/medium-scale applications, where es6 toolings are inappropriate
>> due to their complexity.
>>
>> "reliable, well-engineered, large-scale, performant applications" are
>> a niche application of javascript.  tc39 should focus on making lives
>> of everyday javascript programmers easier (who mainly want simple and
>> stable tooling for simple/moderate webapps), instead of catering to
>> niche people wanting google/facebook-scale apps.
>>
>>
>> On 10/27/17, Bob Myers <[hidden email]> wrote:
>> > If you don't like those features or the associated tooling, then don't
>> use
>> > them.
>> > Meanwhile, other people will be using them to build reliable,
>> > well-engineered, large-scale, performant applications.
>> > Bob
>> >
>> > On Fri, Oct 27, 2017 at 10:57 AM, kai zhu <[hidden email]> wrote:
>> >
>> >> tc39 is partly to blame for promoting the perception of javascript
>> >> language instability, which promotes tooling instability.
>> >>
>> >> generators, es modules, destructing, let, fat arrows have caused
>> >> tremendous harm to tooling stability, which has made
>> >> frontend-development hell for everyone.
>> >>
>> >>
>> >> On 10/27/17, Jordan Harband <[hidden email]> wrote:
>> >> > aka "how it feels to learn"?
>> >> >
>> >> > A decent response:
>> >> > https://medium.com/front-end-hacking/how-it-feels-to-learn-
>> >> javascript-in-2017-a934b801fbe
>> >> >
>> >> > On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>> >> >
>> >> >> (humor?)
>> >> >> https://hackernoon.com/how-it-feels-to-learn-javascript-in-
>> >> 2016-
>> >> >> d3a717dd577f
>> >> >>
>> >> >> It all seemed so simple....
>> >> >>
>> >> >> _______________________________________________
>> >> >> es-discuss mailing list
>> >> >> [hidden email]
>> >> >> https://mail.mozilla.org/listinfo/es-discuss
>> >> >>
>> >> >>
>> >> >
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> [hidden email]
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

T.J. Crowder-2
On Sun, Oct 29, 2017 at 9:57 AM, Alexander Jones
>
> This appears to be borderline trolling.

Sadly, I have to agree with that.

> I can assert with confidence that ES6+ is bringing clear wins in
> maintainability and developer efficiency. If your colleagues are
> writing ‘brittle’ code in ES6 I’d argue it’d be worse in ES5 on
> average.

And with that.

Kai Zhu, I think the problem is you see JavaScript has a scripting language for web pages. It is not. It is a fully-fledged language for writing full-stack applications, desktop applications, embedded applications, tools, and more. It is evolving and will continue to evolve. TC39 ensures -- and it's NOT easy -- that it remains backward-compatible. So as many, many have said: If you don't like the new stuff, don't use the new stuff. If others are using the new stuff and you're unhappy with that, I suggest you take it up with them, not this list.

Separately: I find your repeated claim to be speaking for people other than yourself to be...not useful. You can have your opinion. Claiming it's more than that, however, weakens rather than strengthening your argument. (In _my_ opinion.)

-- T.J. Crowder

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Wes Garland
In reply to this post by kai zhu
On 27 October 2017 at 01:48, kai zhu <[hidden email]> wrote:
es6 is essentially javascript++, like c/c++.  you can't expect senior
c programmers to trivially transition projects to c++, or for existing
c toolings to automatically extend to c++.


Really?  I was in that particular boat at one point in my career.   I typed extern "C" { ............ } a lot.  No big deal.

Similarly, as a JS developer, both front and back end, I have figured out how to transition my projects from ES5 to ES6 in the most efficient way possible: I have done absolutely nothing, and they continue to work perfectly.  In fact, I have ES3 code still running in the wild.....

Wes

On 10/27/17, Mark <[hidden email]> wrote:
> kai, what do you think would've been a better alternative? (Honestly
> curious)
>
> On Fri, Oct 27, 2017 at 1:27 AM kai zhu <[hidden email]> wrote:
>
>> tc39 is partly to blame for promoting the perception of javascript
>> language instability, which promotes tooling instability.
>>
>> generators, es modules, destructing, let, fat arrows have caused
>> tremendous harm to tooling stability, which has made
>> frontend-development hell for everyone.
>>
>>
>> On 10/27/17, Jordan Harband <[hidden email]> wrote:
>> > aka "how it feels to learn"?
>> >
>> > A decent response:
>> >
>> https://medium.com/front-end-hacking/how-it-feels-to-learn-javascript-in-2017-a934b801fbe
>> >
>> > On Thu, Oct 26, 2017 at 3:38 PM, J Decker <[hidden email]> wrote:
>> >
>> >> (humor?)
>> https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-
>> >> d3a717dd577f
>> >>
>> >> It all seemed so simple....
>> >>
>> >> _______________________________________________
>> >> es-discuss mailing list
>> >> [hidden email]
>> >> https://mail.mozilla.org/listinfo/es-discuss
>> >>
>> >>
>> >
>> _______________________________________________
>> es-discuss mailing list
>> [hidden email]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss



--
Wesley W. Garland
Director, Product Development
PageMail, Inc.
<a href="tel:(613)%20542-2787" value="+16135422787" target="_blank">+1 613 542 2787 x 102

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

kai zhu
In reply to this post by Frederick Stark
On 10/28/17, Frederick Stark <[hidden email]> wrote:
> I'd just like to thank TC39 for not breaking compatibility. All the niche
> old libraries I use that were written in ES5 still work in my ES6+ projects
> with no issues.

introducing the new typeof Symbol() === 'symbol' does break backwards
compatibility with many es5 libraries that default to 'object' type if
typeof is not 'boolean', 'number', 'string', 'function', or
'undefined'.

fortunately symbols are not used by everyday programmers (and rightly
so), so its rarely encountered by these libraries.  if tc39 did really
care about backwards-compat, they should've treated it as an 'object'
type with a Symbol.isSymbol subtype-check like Array.isArray.

this brings up another backwards-compat issue - what's the typeof for
proposed BigInt / Int64 / Decimal?  i prefer treating them as 'number'
or 'object' with subtype-checks BigInt.isBigInt et al., but Symbol has
dangerously broken that precedent.  in general my opinion is tc39
should freeze the existing set of typeofs (and use subtype-checks) for
sake of backwards-compat and library/tooling stability.
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Logan Smyth
Kai, that's not what backward-compatibility means though. It doesn't mean that new code automatically works with older code, it means existing code doesn't break when used alongside other existing code. Yes, adding new features to the language means that assumptions made by old code may not hold when used with new code. There is no way for existing code to break due to the introduction of a new `typeof` return value, unless there's actually new code introduced that _uses_ symbols. There is no way in the world, in the general case, to introduce a change that will never invalidate assumptions that someone has made at some point in the history of an entire language. All TC39 can do is entire that new features are exposed in such a way that assumptions made won't break as they are currently used.



On Fri, Nov 24, 2017 at 10:09 PM, kai zhu <[hidden email]> wrote:
On 10/28/17, Frederick Stark <[hidden email]> wrote:
> I'd just like to thank TC39 for not breaking compatibility. All the niche
> old libraries I use that were written in ES5 still work in my ES6+ projects
> with no issues.

introducing the new typeof Symbol() === 'symbol' does break backwards
compatibility with many es5 libraries that default to 'object' type if
typeof is not 'boolean', 'number', 'string', 'function', or
'undefined'.

fortunately symbols are not used by everyday programmers (and rightly
so), so its rarely encountered by these libraries.  if tc39 did really
care about backwards-compat, they should've treated it as an 'object'
type with a Symbol.isSymbol subtype-check like Array.isArray.

this brings up another backwards-compat issue - what's the typeof for
proposed BigInt / Int64 / Decimal?  i prefer treating them as 'number'
or 'object' with subtype-checks BigInt.isBigInt et al., but Symbol has
dangerously broken that precedent.  in general my opinion is tc39
should freeze the existing set of typeofs (and use subtype-checks) for
sake of backwards-compat and library/tooling stability.
_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
Reply | Threaded
Open this post in threaded view
|

Re: How it feels to learn JavaScript in 2016

Oriol _
In reply to this post by kai zhu

It was kind of obvious that checking whether some value is an object by ensuring that it's not any of the existing primitives would stop working if a new primitive was added, which effectively happened with symbols. If some library used that, I think it is to blame. Instead, I would recommend something more simple and reliable like


```js
function isObject(value) {
  return Object(value) === value;
}
function isObject(value) {
  return new function(){ return value } === value;
}
```

--Oriol

_______________________________________________
es-discuss mailing list
[hidden email]
https://mail.mozilla.org/listinfo/es-discuss
12