“People writing class will go to their graves not knowing how miserable they were”

Youtube ESLint github


1. Programming deals with perfection more than any other discipline, what is not perfect does not work
2. We are not paid to use every feature of the language, we are paid to write programs that work well and are free of errors
3. You should not take unnecessary risks to write code
4. Responsibility hierarchy … user > developer > manager
5. Time taken to type the code is not a good way to estimate. Time taken to make code work right can be very long

(Bad) Arguments against good parts

1. It is not a matter of opinion if there is economic cost in terms of errors and delays
2. Reduce my keystrokes is not a good argument (programming is not typing)
3. It is an insult to suggest that I would ever make a mistake (thats silly)
4. There is a good reason those features were added (nope)

New Good parts in ES6

1. Tailcalls
2. Ellipsis
3. Module
4. Let / Const
5. Destructuring
6. Weakmap
7. String literals
8. Regex literals

Bad Parts is ES6

1. Proxies ( I disagree)
2. Generators (I disagree)
3. Symbols
4. Iterators
5. Reflect
6. arrow functions (returns undefined)
7. class

Good Parts Reconsidered

8. Don’t use new
9. Don’t use Object.create
10. Don’t use this
11. Don’t use null
12. Don’t use falsiness
13. No for
14. Object.keys(object).foreach
15. Prototypes are bad. Memory conservation is a bad idea. Compilers can’t optimise.

“It takes a new generation to use good ideas”

I disagree with this part of the talk. Goto is a great idea when used with dispatch tables and it is much better than exceptions. Objects are a horrible idea – extends is comefrom. Closures > Objects. You don’t need objects when you can roll your own vtable with maps. If you don’t know what a vtable is you should NEVER write classes.

New proposals

1. class-free programming / functional inheritance with closures as an alternate to classes and prototypes.
2. Better number type – Dec64


1. Advices against types (you still have to test)
2. Actor based language could be the next
3. Web assembly makes javascript a systems language, probably not a good idea.
4. System testing over unit testing


compose new post
go to top
go to the next post or comment
go to the previous post or comment
toggle comment visibility
cancel edit post or comment