Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

Are We There Yet?

Name: Anonymous 2011-10-22 4:37

``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.

http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey

Name: Anonymous 2011-10-22 7:54

oh my god fuck off. Everything Rich Hickey does is crap.

Name: Anonymous 2011-10-22 9:53

>>2
That's just rude. Don't do it ever again, /prog/ is a polite community.

Name: Anonymous 2011-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: Anonymous 2011-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.

Name: Anonymous 2011-10-22 10:53

>>3
fuck you faggot

Name: Anonymous 2011-10-22 11:02

>>5
No, that would be horrifying.

Name: Anonymous 2011-10-22 11:06

>>6
Fuck you, ``faggot''.

Name: Anonymous 2011-10-22 11:13

>>8
go fuck [b]an[/u]d[u] autistic nigger[/b]

*African American

Name: Anonymous 2011-10-22 11:14

>>8
go fuck and autistic nigger

*African American

Name: Anonymous 2011-10-22 11:24

>>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: Anonymous 2011-10-22 11:25

>>7
Yeah! That would be horrifyingly awesome! And it'll scare the shit out of all retarded faggots.

Name: Anonymous 2011-10-22 11:31

>>11
Nope. That's unrelated to monads.

Name: Anonymous 2011-10-22 11:35

>>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.

Name: Anonymous 2011-10-22 11:37

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.

Name: Anonymous 2011-10-22 11:49

>>15
Nope.

Name: Anonymous 2011-10-22 12:11

>>14
Half-assed first class environments?

Name: Anonymous 2011-10-22 13:07

>>14

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: Anonymous 2011-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: Anonymous 2011-10-22 15:15

>>19
Anyway, the idea requires good compiler to be efficient. Continuations aren't fast, if implemented directly through CPS.

Name: Anonymous 2011-10-22 15:28

>>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.

Name: >>21 2011-10-22 15:30

Also, I don't see how this idea requires continuations/CPS. You're just passing the environment to functions.

Name: Anonymous 2011-10-22 15:35

>>21
CPS continuations are actually the fastest implementation of continuations: they are free.

it's a matter of how much are continuations actually used in practice. Not even in Scheme are they used that often...

Name: Anonymous 2011-10-22 15:37

>>23
In CPS, they're just a function call. They're pretty cheap.

Name: Anonymous 2011-10-22 15:44

>>24
Everything becomes function call. Without some optimization it'll kill CPU.

Name: Anonymous 2011-10-22 15:46

>>22
To allow redefintion of functions, like with normal environment.

>>23
If you use them to implement loops, they'll be everywhere. It all depends on your coding style.

Name: Anonymous 2011-10-22 15:46

>>24
Function calls are shittier than GC.

Name: Anonymous 2011-10-22 15:47

>>25
Well, yes, just like any other programming language.

Name: Anonymous 2011-10-22 16:59

>>24
but everything else is slower with CPS. That's what I'm saying.

speed, sorted fastest to slowest:

non-continuation-using code in a non-CPS implementation
all code using a CPS implementation
continuation-using code in a non-CPS implementation


so the amount that you actually use continuations is relevant.

Name: Anonymous 2011-10-22 17:07

>>1
I'll watch your other video, Hickey, but...

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.

Name: Anonymous 2011-10-22 17:38

>>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: Anonymous 2011-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.

Name: Anonymous 2011-10-23 1:17

>>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: Anonymous 2011-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.

Name: Anonymous 2011-10-23 3:38

Try running Google's matrices without state.

Name: Anonymous 2011-10-23 5:01

>>35

DUDE

no one says you can get rid of state

the goal is to manage it so that it doesnt fuck shit up

Name: Anonymous 2011-10-23 5:13

>>23
except scheme is implemented as a continuation. programs are just collections

Name: Anonymous 2011-10-30 9:12

If it's not Haskell, it's shit.

Name: Anonymous 2011-10-30 10:11

Again this thread.

Name: Anonymous 2011-10-30 11:31

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: Anonymous 2011-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.

Name: Anonymous 2011-10-30 13:23

>>41

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: Anonymous 2011-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: Anonymous 2011-10-30 14:27

>>43
Because Haskell has no real lists or functions, instead it has these limited surrogate substitutes.

Name: Anonymous 2011-10-30 14:28

>>43
Because tuples are not lists, and functions can be polymorphic in Haskell.

Name: Anonymous 2011-10-30 14:42

>>45
Yay! Tuples are crap!

Name: Anonymous 2011-10-30 14:43

>>46
Go back to reddit or /g/.

Name: Anonymous 2011-10-30 14:44

>>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.

Name: Anonymous 2011-10-30 14:45

>>47
or
nondererminism doesnt exist.

Name: Anonymous 2011-10-30 14:48

Name: Anonymous 2011-10-30 14:49

>>50
Your answer shows that you're out of viable arguments. I will interpret it as your surrender.

Name: Anonymous 2011-10-30 14:52

>>51
You're back! I missed you so much. Please, don't ever leave me alone again, I can't live without you.

Name: Anonymous 2011-10-30 17:01

Lisp is shit.
Haskell is worse.

Name: Anonymous 2011-10-30 17:56

>>52

I'm getting a restraining order on you tomorrow.

Name: Anonymous 2011-10-30 21:21

Are we check 'em?

"Dubs made easy"

Don't change these.
Name: Email:
Entire Thread Thread List