Funny thing about functional programming: it seems it only gets more relevant with time. For example, everyone in the client-side web world is totally into React now. React is basically this presentation in JS form.
I felt uncomfortable with that Facts slide this time. Last time I saw this talk, I didn't think much about that slide. Was more wondering where it was going. Then it took me a while to understand where it has gone. Wonderful talk! Very valuable.
The door is wide open for people to kick the competitions ass by using things like clojure and datomic to make simple systems that are easy to change and maintain, and truly transform the industry. This is still true today many 8 years later. We work around the OO ideas and PLOP ideas and give our customers slow expensive systems. Its ridiculous.
still, current computing machines are place based (memory addresses, registers) and mutability is required somewhere along the chain to achieve decent performance
It's not, it's a place, or a collection of places, which stores a value, but what's stored in the place can change, and so you can look at the same string at two different points in time, and see two different projections of the values stored inside.
I don't understand how a value is 'semantically transparent'. Perhaps if that value has a label then it could convey the meaning of the value but without it isn't a value just data without any meaning? For example, Rich says a string is a value if it's immutable and comparable. So the string "as23casd" could be a value, but what's its meaning? How is it 'semantically transparent'?
@Matthew Cochrane, What Rich refers here is "value" = " immutable data/value", example : { String JUNK= "as23casd"; } not the name or label. were in java except String, other types are by default mutable. to keep it simple if you alter/modify a String in java actually the old memory is dissociated, a new memory is created & associated to "JUNK". But this is not case with int, long, etc.. where the same memory is used but value is altered. Imagine "JUNK" is using memory address 0x6677 initially, after modification you may see different memory address 0x7788. But say, int i=0 and it got memory address 0x7878 ; now if we update with i++ or i=20, we will see same memory address after our update. If you ask why it matters, in concurrency immutable data helps avoid race condition & other problems while sharing data in multiple threads. So your value is "semantically transparent" with immutable data or value but with mutable date or variables (here variable mean not the name or label) you loose the transparency if any thread can modify it.
Space ? ... in Spanish a direct translation sounds limiting, weak ... how about Cosmos, or Universe ... the Universal Age !! ... la Era Universal !! ... WOW !! ;) :)
I, for one, would not like my future information systems to constantly consume more and more space because they "produce new facts". This is exteremely expansionist view of the world that assumes resources to be inifinite and infinitely cheap. Yes, the memory doesn't just "replace" something with something else in the "same place" - no, it, in fact, frequently "writes" other random and usually unrelated facts. Because space is not infinite, neither in memory nor in informations systems. Our own universe is the only thing known to man which resembles any kind of infinity properties, and even this might just be tricks our reasoning methods play on observed world.
As he said in the talk, we have garbage collection for memory and we'll probably get garbage collection for persistent memory as well. The brain does this. It's less "space" and more "space for all intents and purposes".
Rich Hickey is a genius. The Lisp and Java Communities are listening to him. I don't know anyone else who accomplished this before him.
Interestingly, a lot of the Java designers were big names in the lisp world, like Guy Steele.
@@greenfloatingtoad he co-designed Scheme, which is awesome!
Almost 5 years later... still extremely interesting. Thank you :)
Funny thing about functional programming: it seems it only gets more relevant with time. For example, everyone in the client-side web world is totally into React now. React is basically this presentation in JS form.
I came here on your Recommedation
@@rd_45 Awesome 😊
This talk is so on point.
I wasn't expecting much.. but @16:56 was really eye opening!
I felt uncomfortable with that Facts slide this time. Last time I saw this talk, I didn't think much about that slide. Was more wondering where it was going. Then it took me a while to understand where it has gone. Wonderful talk! Very valuable.
The door is wide open for people to kick the competitions ass by using things like clojure and datomic to make simple systems that are easy to change and maintain, and truly transform the industry. This is still true today many 8 years later. We work around the OO ideas and PLOP ideas and give our customers slow expensive systems. Its ridiculous.
When memory increases 1 million fold, everything will change! Nice talk!
Awesome talk. Thanks Rich.
still, current computing machines are place based (memory addresses, registers) and mutability is required somewhere along the chain to achieve decent performance
A very insightful talk.
Very insightful talk. I'm defintely sold on immutability.
Immutably sold on immutability
Really fascinating
Hears how to use this object on a napkin lol. Love Rich Hickey.
lol @ 18:21. Visible involuntary shudder at the thought of xml.
"I wouldn't touch it with a 10-foot pole. But whatever floats your boat."
If a string is mutable it's still a value... I"m so lost,if that's the presupposition that we're relying on.
It's not, it's a place, or a collection of places, which stores a value, but what's stored in the place can change, and so you can look at the same string at two different points in time, and see two different projections of the values stored inside.
Great talk!
The namespace is place. But hopefully it's legoland with moduled chains.
Rich knows how to sell its products. I would love to see Dr Tarver do the same for Shen.
Great talk! Are the slides available somewhere?
Thanks for sharing
I don't understand how a value is 'semantically transparent'. Perhaps if that value has a label then it could convey the meaning of the value but without it isn't a value just data without any meaning? For example, Rich says a string is a value if it's immutable and comparable. So the string "as23casd" could be a value, but what's its meaning? How is it 'semantically transparent'?
@Matthew Cochrane, What Rich refers here is "value" = " immutable data/value", example : { String JUNK= "as23casd"; } not the name or label. were in java except String, other types are by default mutable. to keep it simple if you alter/modify a String in java actually the old memory is dissociated, a new memory is created & associated to "JUNK". But this is not case with int, long, etc.. where the same memory is used but value is altered. Imagine "JUNK" is using memory address 0x6677 initially, after modification you may see different memory address 0x7788. But say, int i=0 and it got memory address 0x7878 ; now if we update with i++ or i=20, we will see same memory address after our update. If you ask why it matters, in concurrency immutable data helps avoid race condition & other problems while sharing data in multiple threads. So your value is "semantically transparent" with immutable data or value but with mutable date or variables (here variable mean not the name or label) you loose the transparency if any thread can modify it.
@@prabhugopalints are values
10:52 Rich doing the datomic logo with his hands, so your subconscious thinks it's great
I lost it LMAOOO
More like functional programming by wittgenstein
by the way, thanks for the keynote, it's AMAZING !! (Y) :)
So true: 15:40-16:10
so true: 00:00 - 31:34 xD
So troll ;)
Because the man doesn't want to let anything go to garbage collection.
This guy should be on hoarders...
aha nice
Wilson Kevin Moore Donald Hernandez Eric
lol why?
Space ? ... in Spanish a direct translation sounds limiting, weak ... how about Cosmos, or Universe ... the Universal Age !! ... la Era Universal !! ... WOW !! ;) :)
I, for one, would not like my future information systems to constantly consume more and more space because they "produce new facts". This is exteremely expansionist view of the world that assumes resources to be inifinite and infinitely cheap. Yes, the memory doesn't just "replace" something with something else in the "same place" - no, it, in fact, frequently "writes" other random and usually unrelated facts. Because space is not infinite, neither in memory nor in informations systems. Our own universe is the only thing known to man which resembles any kind of infinity properties, and even this might just be tricks our reasoning methods play on observed world.
As he said in the talk, we have garbage collection for memory and we'll probably get garbage collection for persistent memory as well. The brain does this.
It's less "space" and more "space for all intents and purposes".