Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think the problem is ES6 classes just aren't very flexible or expressive, compared to systems like Ruby, Smalltalk, or CLOS. For a lot of programmers, half-assed classes are worse than no classes, even when they can help with organizing state and behavior.


This is backwards. Even in ES6, classes already too flexible and expressive: they allow you to express a bunch of things that don't make sense.


They are as expressive as SELF, maybe time to learn how to use them?


Javascript's prototypes are more expressive than its classes, but still come short of Self on a few levels:

1. Self's prototypes support multiple delegation while JS objects only have one prototype (can be fixed with Proxies).

2. Javascript objects lack a universal clone method.

3. Self is entirely message based, while JS is property based.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: