Тёмный
No video :(

"Are We There Yet?" (w/ slides) - Rich Hickey (2009) 

Bobbi Towers
Подписаться 1,4 тыс.
Просмотров 13 тыс.
50% 1

Опубликовано:

 

28 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 18   
@ericnormand4210
@ericnormand4210 5 лет назад
Thanks Bobby for putting this together.
@williamwesner4268
@williamwesner4268 5 лет назад
Buddhism goes into extreme detail on this topic, for anyone willing to put the time and effort to learn the unique language it uses.
@bmillare
@bmillare 10 месяцев назад
RH predicted the issues of concurrency will cause a major shift in lang design but in my experience, concurrency capabilities of software remain largely untapped. Most code is just single threaded. Only a few specialized libaries utilize parallelism. We've simply avoided concurrency as much as possible. I haven't seen good concurrent first implementations in the small, only something larger like building a microservice from the start.
@CalvaTV
@CalvaTV 2 года назад
After some days of intense problem solving I feel like I have been rubbing my brain directly all over everything I have come across that day. Maybe that's what I am doing wrong. 😀
@mathildemarger5105
@mathildemarger5105 6 лет назад
thank you very much :)
@1210divs
@1210divs 4 года назад
Don't rub your brain on Fred, kids.
5 лет назад
Is the Value type Java will introduce, it's attemp to "Reconciliate Epochal Time Modle with OO"?
@willmcpherson2
@willmcpherson2 5 лет назад
1:08:23 Simon Peyton Jones?
@UnicornLaunching
@UnicornLaunching 5 лет назад
18:01
@KevinBeal
@KevinBeal 6 лет назад
Observables in Javascript solve many of these problems and model state and time well.
@ManuelMontoyaRdz
@ManuelMontoyaRdz 5 лет назад
So bad JS is a horrible language.
@sergeysmyshlyaev9716
@sergeysmyshlyaev9716 5 лет назад
I think this video describes the differences between reactive programming and epochal time model somewhere towards the end.
@johnhabib289
@johnhabib289 5 лет назад
About halfway through the talk it falls apart... he so grossly underestimates how much practical programs rely on individual states, and how much of a problem copying everything each time you had to "perceive" something or change a value would cost. Parallelism isn't "saved" by having multiple copies, it's made that much worse because instead of one logic which could be wrong, you now have N things all coming to different conclusions! It's good practice to make your reads and writes as small and non-distributed as possible, but if you're going parallel, functional is fundamentally broken.
@acobster
@acobster 5 лет назад
I'd guess that you're talking about the performance comparisons he makes around 44:20 and the slides leading up to that? I don't think he underestimates anything. I think you're misunderstanding the "path copying" step he describes around 41:47 - we're not "copying everything," we're just making a new reference to some new state, plus most of the old state. We're using references the way they're supposed to be used. The concurrency primitives in Clojure provide exactly the semantics (immutable values, discrete states, no in-between state that "could be wrong" as long your application logic is actually sound) he's talking about, _and they're really fast._
@fredoverflow
@fredoverflow 5 лет назад
How do you have "N things all coming to different conclusions"? The whole point of Clojure's reference types is to *prevent* that from happening.
@matthiasschuster9505
@matthiasschuster9505 5 лет назад
You have no idea what you are talking about. Functional programming is superior especially when it comes to parallel and distributed programming and you have no idea how "copying" is implemented in functional languages, see persistent data structures.
@fredoverflow
@fredoverflow 2 года назад
@Pa Ka But you're not supposed to do that according to 28:09 ;)
@PatternShift
@PatternShift 11 месяцев назад
it doesn't seem like you paid attention to the persistent data structure model in the talk. it is, however, true that you do have to reconcile divergent outcomes, but with time-aware history-preserving programming and transactional reconciliation you have much better tools for doing this. there is some overhead, so this kind of programming works best when you're io bound, in a situated system -- not when you eg need things to go as fast as possible on one machine and your rate limiting step is data structure memory layout. But almost everything else Rich says still applies in that context, re: object skepticism. If you look at people like mike acton, casey muratori, jonathan blow w/jai, etc who write high performance interactive code in games, or what ML frameworks like jax aim for (a good example that links the two worlds -- immutable data structures, referentially transparent pure functions, w/a built-for-purpose jit compilation path that produces the correct device specific memory layout for high perf code), you will see that the shortcomings of OO and principles of pure functions on plain data structures apply broadly, even if persistent data structures and transactions are only the optimal solution in a few domains.
Далее
Keynote  The Value of Values - Rich Hickey
58:54
Просмотров 9 тыс.
Are We There Yet - Rich Hickey
1:10:05
Просмотров 18 тыс.
WELCOME TO THE FAMILY, MOE! (Brawl Stars Animation)
00:40
🎙ПОЮ ВЖИВУЮ!
3:17:56
Просмотров 1,5 млн
Chelsea gym be like.. 😅⚽️
00:20
Просмотров 14 млн
Clojure Concurrency - Rich Hickey
2:32:39
Просмотров 69 тыс.
Design, Composition, and Performance - Rich Hickey
55:25
Maybe Not - Rich Hickey
1:03:29
Просмотров 158 тыс.
The Value of Values with Rich Hickey
31:44
Просмотров 133 тыс.
Datomic with Rich Hickey
51:22
Просмотров 18 тыс.
Hammock Driven Development - Rich Hickey
39:49
Просмотров 290 тыс.
Solving Problems the Clojure Way - Rafal Dittwald
1:02:26
The Language of the System - Rich Hickey
1:02:50
Просмотров 163 тыс.
Database as a Value • Rich Hickey • GOTO 2012
56:23
"Uncle" Bob Martin - "The Future of Programming"
1:18:21
WELCOME TO THE FAMILY, MOE! (Brawl Stars Animation)
00:40