Nordic.js 2014 • Douglas Crockford - The Better Parts
Nordic.js3 HN recommenders · recommended in 3 months, 2014-2023
73K views · 12 years ago · talk · evergreen
Douglas Crockford's Nordic.js 2014 talk on 'the better parts' of JavaScript and programming in general. He argues against `this`, `new` and ES6 classes, and for classless, composition-based object patterns, with some broader remarks on building better structures for the future.
HN commenters cite it whenever JavaScript classes, `this` or inheritance come up, as the clearest case for classless OOP from Crockford.
1:03:48JavaScript: The Good Parts
Google TechTalks
589K views • 17 years ago
1:42:09Crockford on JavaScript - Volume 1: The Early Years
YUI Library
252K views • 15 years ago
1:06:46Crockford on JavaScript - Section 8: Programming Style & Your Brain
YUI Library
111K views • 14 years ago
2:16Why We Should Stop Using JavaScript According to Douglas Crockford (Inventor of JSON)
CultRepo
737K views • 3 years ago
52:34The Next Programming Language - Douglas Crockford - code::dive 2022
code::dive conference
55K views • 3 years ago
49:26Douglas Crockford: The JSON Saga
YUI Library
81K views • 15 years ago
54:27Douglas Crockford: Monads and Gonads (YUIConf Evening Keynote)
YUI Library
67K views • 13 years ago
49:47Monads and Gonads
Google TechTalks
148K views • 13 years ago
44:35Object-Oriented Programming is Bad
Brian Will
2.6M views • 10 years ago
36:31Hey Underscore, You're Doing It Wrong!
InfoQ
141K views • 13 years ago
35:32Cheng Lou - On the Spectrum of Abstraction at react-europe 2016
ReactEurope
63K views • 10 years ago
52:23Nicholas Zakas: Scalable JavaScript Application Architecture
YUI Library
68K views • 15 years ago
1:29:27The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]
cpponsea
245K views • 7 years ago
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
1:32:47Data-Oriented Demo: SOA, composition
Jonathan Blow
201K views • 11 years ago
1:03:31Brian Goetz - Stewardship: the Sobering Parts
ClojureTV
39K views • 11 years ago
44:36Hacker Way: Rethinking Web App Development at Facebook
Meta Developers
900K views • 12 years ago
13:45A 10x faster TypeScript
Microsoft Developer
608K views • 1 year ago
46:18Om Next - David Nolen
ClojureTV
44K views • 11 years ago
1:00:58The Next Five Years of ClojureScript - David Nolen
Metosin
19K views • 10 years ago
9 comments from Hacker News
> Less that 10 years ago, JavaScript sucked bad. It had no imports, no classes, no async, no arrow functions No classes in JS was much better than with. As someone who used and contributed to CoffeeScript, I was initially excited by them but in retrospect, they've been a huge negative IMO. Douglas Crockford saw it immediately: ▶ this video
It's possible to write javascript without `this`, a style preferred e.g. by Douglas Crockford, explained in the video below. ▶ this video I've also started to write my code mostly without `this`, `class` or `new`, not looking back. Another related, highly recommend reading: link
Douglas Crockford might have some answers for you; ▶ this video . It makes the developer favor inheritance over composition.
I believe that switching to a stack machine is short-sighted and a big mistake: The AST format could open up new possibilities for software, some of which are observable in Lispy languages like Scheme (I won't list them here). Instead, we're looking at locking the software world back into this 1960's model for another 50 years out of a misguided concern for optimization over power. It's like foregoing the arch because it's more work to craft, and instead coming up with a REALLY efficient way to fit square blocks together. Congratulations, we can build better pyramids, but will never grasp the concept of a cathedral. To really grasp my point, I BEG you all to watch the following two videos in full and think hard about what Alan Kay & Douglass Crockford have to say about new ideas, building complex structures, and leaving something better for the next generation: link ▶ this video As Alan Kay states, what is simpler: something that's easier to process, but for which the software written on top of it is massive; or one that takes a bit more overhead, but allows for powerful new ways to model software and reduce complexity? I believe that an AST model is a major start in inventing "the arch" that's been missing in software, and with something that will proliferate the whole web ... how short-sighted it would be to give that up in favor of "optimizing" the old thing. Imagine if instead of JavaScript, the language of the web had been Java? Lambdas would not be mainstream; new ways of
It seems that dynamic or at least sloppily typed langauges like javascript and python have become more and more popular. Do you think typeless/dynamic languages are the future? I personally really like "classless OOP[0]". [0] ▶ this video
"Those people will go to their graves, never knowing how miserable they are" :-) See 5:30 into video (on ES6): ▶ this video I have been doing a fair amount of JS work in an app using Angular this year. I don't use much inheritance of any kind, mostly FP techniques and "objects" (associative arrays) as aggregates. If you use "closure" variables instead of "this", it's pretty easy to graft functions from one aggregate to another for code reuse.
Douglas Crockford says that classes were the single worst mistake in es6. So it's not really a face palm: ▶ this video
Crockford talks about the bad features added to ES6, one of them class which he said is most requested by Java developers programming javascript.At the end of the talk he show way how to move out of classes/new in javascript ▶ this video
I don't think a project is "wrong" if it is working. Also these a just opinions, but I think it's counterproductive. I feel it's the same as class systems with inheritance and lots of OO properties implemented. It's not wrong, but it's so much overhead, so easy to shoot one's foot, for so few returns. And there's a class syntax coming to ES6, so I'm clearly in the minority. For a discussion on the "this" use, there is an interesting talk[0] by D.Crockford on the subject, at about 8 min in (but I'd watch the whole thing). I don't agree with everything he is advising, but I think he has pretty compelling arguments overall. There's a lot of things in js that are not necessary to write good code, and avoiding them can reduce a lot of the complexity IMO. Some people are OK with complexity and want expressivity, I'd prefer basic and predictable easily behaviours. [0] ▶ this video