News for hackers. Stuff that matters.
Re:Thoughts on replacement languages by tuxychandru on Tuesday January 13, 2015 @08:44AM (#8879715)
I was wrong about synchronous communication. Since most rust example use async channels, I missed the existence of sync_channel.

However, even if that exists, rust's concurrency doesn't follow CSP as much as go's. Like I mentioned in my previous comment, it doesn't have a way to do everything the select statement in go does. This is not necessarily a bad thing, but rust definitely doesn't share the same concurrency concepts as go. It offers everything that Java/C++ does along with data race protection.

Speaking of data race protection, the current type system rejects a lot of very common "non-racy" code too. There is work in progress to address some of them and may be most of them will be addressed eventually.

Re:Thoughts on replacement languages by bascule on Tuesday January 13, 2015 @12:09PM (#8881080)
> doesn't follow CSP as much as go's

Because it supports asynchronous messaging too? As if CSP were some concept that emerged fully formed from Tony Hoare's head like Athena from Zeus?

I'm sorry you see dichotomies where others see dualities.

Re:Thoughts on replacement languages by tuxychandru on Tuesday January 13, 2015 @12:16PM (#8881129)
I was referring to select statement, not async messaging support.
Re:Thoughts on replacement languages by bascule on Tuesday January 13, 2015 @12:44PM (#8881341)
You mean like the select! macro in Rust?
Re:Thoughts on replacement languages by tuxychandru on Tuesday January 13, 2015 @01:46PM (#8881693)
No the select statement of go. It is way more capable that rust's select macro.

The tone of your previous comment made me feel that this thread is going in an unproductive direction, so I'll stop here.

Re:Thoughts on replacement languages by bascule on Tuesday January 13, 2015 @10:08PM (#8884050)
Considering you've backpedaled from "Rust isn't CSP" (because you misunderstood Rust channels) to "Rust doesn't have select" (which it does, and you didn't realize) to "Rust's select isn't as mature as Go's", that's probably for the best.

Perhaps you should try to be more informed about Rust before you try to have an argument about it in the future!

Re:Thoughts on replacement languages by tuxychandru on Tuesday January 13, 2015 @11:12PM (#8884253)
I said 2 things in very first comment. I never claimed rust doesn't have select. This is quoted from my very first comment in this thread,

AFAIK, rust also doesn't allow selecting between a send and receive on channels. It only allows selecting over a set of receivers and even there it doesn't offer something like the default clause of Go's select statement.

Perhaps you should try to read my comments in their entirety before making accusations.

Yes I missed sync_channel, but if that is all CSP was, Java does CSP too. It has Threads and SynchronousQueue exactly like rust 1.0 will.

Re:Thoughts on replacement languages by bascule on Tuesday January 13, 2015 @11:47PM (#8884359)
I thought you were done? Apparently not!

This is where I again point out that neither Java nor Go ensure that state sent over channels is actually isolated, and both allow data races.

With Rust that is not the case. You have true isolation (unless you explicitly opt not to)