``Simple Made Easy" presentation has sparkled a vivid discussion about state, but many people seem to miss the point completely. They either think that state isn't complex at all and doesn't need to be fixed, or that the alternatives are inherently too slow and inefficient to be taken seriously.
In his another presentation Rich talks about this topic almost exclusively and I guess it's a required watch if you want to understand the first one thoroughly.
oh my god fuck off. Everything Rich Hickey does is crap.
Name:
Anonymous2011-10-22 9:53
>>2
That's just rude. Don't do it ever again, /prog/ is a polite community.
Name:
Anonymous2011-10-22 10:45
Rich Hickey is right about Lisp needing immutable entities, cause now we dont need Haskell anymore. The only useful feature of Haskell was shown to work well on Lisp even with slow-ass JVM.
Name:
Anonymous2011-10-22 10:49
Also, Hickey should consider eliminating global variables, so that instead each function would recieve `this` pointer to environment. Should greatly help with encapsulation and access control. For example, this would allow us to pass sandbox `this` pointer to a untrusted code, or unsafe `this`pointer to OS kernel code.
>>5 Also, Hickey should consider eliminating global variables, so that instead each function would recieve `this` pointer to environment. Should greatly help with encapsulation and access control.
This sounds vaguely similar to the state monad. Clojure has it in its standard library: https://github.com/clojure/algo.monads
Name:
Anonymous2011-10-22 11:25
>>7
Yeah! That would be horrifyingly awesome! And it'll scare the shit out of all retarded faggots.
>>13
It is about replacing (cons A B) with (this 'cons A B), where `this` is one function's arguments. That would allow precise control over which version of `cons` to call, so that parent function could attach spy or debugger on it.
That would allow precise control over which version of `cons` to call, so that parent function could attach spy or debugger on it.
That's called dynamic scope.
That sounds like java, with no static methods, and where every object implements an interface that consists of every function you'll ever use.
Name:
Anonymous2011-10-22 15:13
>>17
Nope. The idea is to completely replace packages/globals with lambdas, so everything will be clean and uniform.
>>18 every object implements an interface that consists of every function you'll ever use.
`this` is a function, not an object. It doesn't implement, it moderates it's continuation.
That sounds like java, with no static methods
staticness is evil.
Name:
Anonymous2011-10-22 15:15
>>19
Anyway, the idea requires good compiler to be efficient. Continuations aren't fast, if implemented directly through CPS.
>>20 Continuations aren't fast, if implemented directly through CPS.
CPS can be pretty efficient, if done well, and CPS continuations are actually the fastest implementation of continuations: they are free.
They either think that state isn't complex at all and doesn't need to be fixed, or that the alternatives are inherently too slow and inefficient to be taken seriously.
... "they" think that because those are both reasonable statements. The first statement is stronger than the second, but they are both valid.
>>30
Ok, can't sit through this video. I got to the part where he claimed that Java has more library support than C++ because C++ doesn't have GC and I can't really take anything else he would have said seriously. I think I have to take back anything nice I said about his first video, as well.
Name:
Anonymous2011-10-22 22:47
>>31
do you deny it?
Very few libraries are written in C++. C++ is just generally used for domain-specific stuff. Even libraries that are written in C++ tends to have a C front end.
>>32
All too often that's not the case. Any library that originates in C++ gets C bindings only for the sake of dynamic languages (since FFI into C++ is nearly impossible) and not well thought out at all.
Name:
Anonymous2011-10-23 3:11
>>30,31 "they" think that because those are both reasonable statements. The first statement is stronger than the second, but they are both valid.
They both are invalid and that's why I suggested to watch this video. He talks in detail why the current way of dealing with state in almost all languages isn't adequate (especially if there's parallelism involved) and explains how an alternative can be efficiently implemented using immutable persistent data structures and time management operators.
I got to the part where he claimed that Java has more library support than C++ because C++ doesn't have GC and I can't really take anything else he would have said seriously.
Why would the part which is absolutely true scare you away? The library ecosystem for C++ is very poor. On the other hand, Java has an abundance of libraries.
My only problem with Clojure and Haskell are the maturity of the implementations. I wish the developers of the compilers and toolkits for both languages cared more about perfecting performance at this point in time. Until then, I'm stuck with C/C++ and rolling my own sexpr DSLs for data.
Name:
Anonymous2011-10-30 12:15
>>28 Well, yes, just like any other programming language.
Other languages use "statements". Still assembly is comparable to Lisp, cuz it uses instruction pointer as a "continuation", but most compilers dont that every assembly instruction is a lambda in itself.
Other languages use "statements". Still assembly is comparable to Lisp, cuz it uses instruction pointer as a "continuation", but most compilers dont that every assembly instruction is a lambda in itself.
Holy shit are you stupid.
Name:
Anonymous2011-10-30 14:25
>>40
Byt why Haskell uses retarded buzzwords everywhere? For examle, why it calls lists "tuples"? Why Haskell calls fuctions "polymorphisms"?
Name:
Anonymous2011-10-30 14:27
>>43
Because Haskell has no real lists or functions, instead it has these limited surrogate substitutes.
>>45 functions can be polymorphic in Haskell.
In Lisp every function is "polymorphic", that is why Lisp considered minimalistic and uniform language, while Haskell considered overengeneered piece of shit.