Live data from Hacker News

Understanding Javascript OOP

killdream.github.com

11–20 of 23 posts

Re: Understanding Javascript OOP

#11
I was just looking for something like this last week, this is a great tutorial, thanks for posting it up here.

When Anders was discussing the new TypeScript release, he was mentioning how it more clearly mimicked the ES6 specification. Looking at some of the examples posted by joubert, you can see the similarities.

TypeScript transpiles down to ES5 much like Harmonizr does as well.

Very interesting stuff.

Re: Understanding Javascript OOP

#13
post #6

Thanks for that. In my mind I've been calling C++, C#, etc. "class-based" programming since the design/programming phase is really focussed on classes. I've not much experience with prototype-based programming other than the occasional blurb. This is a nice intro.

If you have the time, go look at an explanation of NewtonScript then Self. NewtonScript takes the concepts of Self and created a pretty nice little language that is a little more accessible than Self (unless you know Smalltalk, then go with Self first).

I like prototype-based languages and really wish that NewtonScript had a little better syntax. On the other hand, I have never been fond of Javascript and don't know why.

http://selflanguage.org

http://en.wikipedia.org/wiki/NewtonScript and http://waltersmith.us/wp-content/uploads/2005/12/OOPSLA95.pd...

Re: Understanding Javascript OOP

#15
post #5

Earlier quoted context omitted.

The MooTools library implements declarative class syntax for regular javascript: http://mootools.net/docs/core/Class/Class

The next trick is for libraries to make sure their homegrown class systems are migrated to ES6 classes, or interop with consistent semantics.

MooTools has always aimed to be compliant with the next version of Ecma. In a lot of ways it is a shim for whatever is next.

Re: Understanding Javascript OOP

#16
post #2

The ES6 draft spec now includes the (maximally minimal) class spec that was hashed out at the July TC 39 meeting. You can read the spec here: http://wiki.ecmascript.org/doku.php?id=harmony:specification... and see some examples here: http://wiki.ecmascript.org/doku.php?id=strawman:maximally_mi... There's a cool project, Harmonizr ( https://github.com/jdiamond/harmonizr ) which transpiles ES6 to ES5, which you can lev…

thank the lord, i can't imagine something as ubiquitous as javascript still has no syntactically intuitive class system

Why not? Classes are just one implementation/realization of OOP. They're the most common, to be sure, but they're by no means the only way to do objects, nor are they necessarily the best.

“There is more to OOP, Horatio, than is dreamt of in your philosophy.”

Re: Understanding Javascript OOP

#17
post #6

Thanks for that. In my mind I've been calling C++, C#, etc. "class-based" programming since the design/programming phase is really focussed on classes. I've not much experience with prototype-based programming other than the occasional blurb. This is a nice intro.

If you have the time, go look at an explanation of NewtonScript then Self. NewtonScript takes the concepts of Self and created a pretty nice little language that is a little more accessible than Self (unless you know Smalltalk, then go with Self first). I like prototype-based languages and really wish that NewtonScript had a little better syntax. On the other hand, I have never been fond of Javascript and don't know…

Cognitive dissonance, likely. It doesn't look like what it is, no matter which part of it you're using at the time. Its selfish features aren't Self, its speech impediment isn't really a Lisp, its coffee-flavouring isn't Java... No matter which door you open, you get a preliminary sense of déja vu, then realise that you haven't actually been there before; it's just something that reminds you of something else. It takes a while to settle into JS mode, where the language is just what it is, and not "sort of like X, but completely different". (Once I'm there, I like to stay there—but there's always something else to do that drags me into another language, and when I come back, I experience the same cycle process again.)

Re: Understanding Javascript OOP

#19
post #6

Thanks for that. In my mind I've been calling C++, C#, etc. "class-based" programming since the design/programming phase is really focussed on classes. I've not much experience with prototype-based programming other than the occasional blurb. This is a nice intro.

> This is a nice intro.

... with a misleading title since it's about "Prototypical inheritance".

Post reply on HN