<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body dir="auto">
<div>FYI this thread honestly feels like you're trying to get more people to watch your video and use your library. I'm sorry not enough people are using/watching your stuff, but this mailing list isn't really the place to push it.</div>
<div><br>
On Jun 29, 2013, at 8:58, "Eric Elliott" <<a href="mailto:eric@ericleads.com">eric@ericleads.com</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>
<div dir="ltr">Hi Alex,<br>
<br>
Your response is extremely vague. It doesn't seem to say more than "I think you're wrong. Oh, and lots of other people think you're wrong too."<br>
<br>
1) Who are these "many" who disagree with the potential for harm? Can you cite some references?<br>
<br>
2) Have you watched the talk? <a href="https://vimeo.com/69255635">https://vimeo.com/69255635</a><br>
<br>
3) Are there specific points that you disagree with?<br>
<br>
- Eric</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Sat, Jun 29, 2013 at 7:11 AM, Alex Russell <span dir="ltr">
<<a href="mailto:slightlyoff@gmail.com" target="_blank">slightlyoff@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">
<p dir="ltr"><br>
On 28 Jun 2013 19:31, "Eric Elliott" <<a href="mailto:eric@ericleads.com" target="_blank">eric@ericleads.com</a>> wrote:<br>
><br>
> I'm not here to discuss the mechanics of what class does. I'm just saying we shouldn't do it in the spec.
</p>
</div>
<p dir="ltr">And many, including me, disagree with you: both in the potential for harm and for reasons that are about our own codebases.</p>
<div class="HOEnZb">
<div class="h5">
<p dir="ltr">> There are better alternatives that pose less threat to the JavaScript ecosystem.<br>
><br>
> A handful of libraries and JavaScript authors twisting prototypes to make them less useful is one thing. Getting a blessing from on-high for people to teach that it's "how to do inheritance in JavaScript" in teaching materials is quite another thing.<br>
><br>
> My arguments (and a few suggested alternatives) are in the video. <br>
><br>
> If you're going to blow off what I have to say about it because you don't have time to watch a video, I guess the conversation is over. =)<br>
><br>
> - Eric<br>
><br>
><br>
> On Fri, Jun 28, 2013 at 10:45 AM, Tab Atkins Jr. <<a href="mailto:jackalmage@gmail.com" target="_blank">jackalmage@gmail.com</a>> wrote:<br>
>><br>
>> On Fri, Jun 28, 2013 at 10:42 AM, Eric Elliott <<a href="mailto:eric@ericleads.com" target="_blank">eric@ericleads.com</a>> wrote:<br>
>> > I know this has been batted around already. I know everybody's totally<br>
>> > stoked about class sugar in ES6. I just wanted to register my protest. I<br>
>> > made my arguments in this talk at Fluent:<br>
>> ><br>
>> > <a href="http://ericleads.com/2013/06/classical-inheritance-is-obsolete-how-to-think-in-prototypal-oo/" target="_blank">
http://ericleads.com/2013/06/classical-inheritance-is-obsolete-how-to-think-in-prototypal-oo/</a><br>
>> ><br>
>> > I'm already seeing nasty codebase arthritis creep into JavaScript projects<br>
>> > thanks to things like Backbone.View.extend() being essentially mandatory.<br>
>> ><br>
>> > Providing sugar to extend classes in JavaScript proper is like officially<br>
>> > sanctioning that nonsense.<br>
>> ><br>
>> > I'm not the only one who feels that way. Here's an excerpt from one viewer's<br>
>> > comment on my presentation:<br>
>> ><br>
>> > "I think this will only get worse with ES6 and I am rather upset about it.<br>
>> > While 'class' will be elective of course, I can only imagine more and more<br>
>> > libraries adopting the ES6 class pattern, and then we will wind up facing<br>
>> > the same set of challenges that exist in the Java world."<br>
>> ><br>
>> ><br>
>> > In my opinion, the clamoring for class in JavaScript is because JavaScript<br>
>> > tries to hide prototypes, rather than make it easy to deal with them.<br>
>> > Instead of class, we should let library authors continue to experiment with<br>
>> > other inheritance patterns in JavaScript. Here's an example:<br>
>> ><br>
>> > <a href="https://github.com/dilvie/stampit" target="_blank">https://github.com/dilvie/stampit</a><br>
>> ><br>
>> > We do need a bit more object sugar in JS, but I think we should wait for<br>
>> > some patterns to gain a foothold in the wild, and only when popular patterns<br>
>> > emerge and have time to be tested and proven to be well-thought-out and a<br>
>> > valuable addition (unlike Backbone's .extend(), which is causing lots of<br>
>> > problems in the real world), only THEN should the idea be blessed by the<br>
>> > specification.<br>
>> ><br>
>> > Is class a good idea in JavaScript? I say, prove it. In fact, anything that<br>
>> > can have a reference implementation should be proven - not just by<br>
>> > implementing it to see if it can work, but if it can be polyfilled (or<br>
>> > something like it could be polyfilled), put it in a library and see if it<br>
>> > catches on before you add it to the spec, and everybody starts to write<br>
>> > about it in their "new JavaScript features" posts.<br>
>> ><br>
>> > So far, NO IMPLEMENTATION of class in JavaScript has become a de-facto<br>
>> > standard. I think we should set the bar a little higher where a new feature<br>
>> > could actually cause damage to the language ecosystem.<br>
>> ><br>
>> > Until Backbone came along and made .extend() the default way to create any<br>
>> > Backbone object, it was very easy for a JavaScript programmer to spend an<br>
>> > entire career having never extended from an existing class. And that was a<br>
>> > good thing.<br>
>><br>
>> Lots and *lots* of code already uses "the class pattern" is JS,<br>
>> because the class pattern is nothing more than:<br>
>><br>
>> function Foo(){...}<br>
>> Foo.prototype = ...;<br>
>> Foo.prototype.method1 = function(){...}<br>
>><br>
>> The class syntax just makes this super-common idiom easier to read and write.<br>
>><br>
>> ~TJ<br>
>> _______________________________________________<br>
>> es-discuss mailing list<br>
>> <a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
>> <a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> es-discuss mailing list<br>
> <a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
> <a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
><br>
</p>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<blockquote type="cite">
<div><span>_______________________________________________</span><br>
<span>es-discuss mailing list</span><br>
<span><a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a></span><br>
<span><a href="https://mail.mozilla.org/listinfo/es-discuss">https://mail.mozilla.org/listinfo/es-discuss</a></span><br>
</div>
</blockquote>
</body>
</html>