Quote:Original post by ApochPiQ You want to look at this. If you don't, I'll visit you in your sleep and suffocate you with a large fish.
Kinky. Now I have a new fantasy.
I checked out the intro page for Epoch. I'm somewhat familiar with Erlang so, apart from Epoch being procedural (right?) and Erlang being functional (kind-of), what is the difference between the two? I guess it's an ill-formed question but I get the feeling they are trying to address the same problem, to abstract away the hassle of writing parallel programs.
While both Epoch and Erlang approach the subject of parallel programming as a significant focus, that's about where the similarities end. Erlang is designed entirely around that concept (and protection against various forms of runtime failure); whereas for Epoch parallelism is "merely" a feature.
The analogy is a bit of a stretch, but comparing the two languages is like comparing a Porsche and a pickup truck. Yes, they're both vehicles, and they both perform the basic duty of moving you from A to B; but the philosophy behind those vehicles is radically different.
In any case, the real focus of Epoch is not "simply" parallelism - it's about using all of the available computation hardware in a modern machine, as effectively as possible. Erlang micro-threads will always run inside the Erlang environment, on primary CPU cores; Epoch, by contrast, could run literally anywhere in terms of hardware. Erlang achieves parallelism via abstraction; Epoch achieves parallelism through exactly the opposite - openly exposing the guts of the machine so you can put your code on any physical bit of silicon you like.
As the introduction page mentions, the real focus of Epoch isn't exactly a huge issue right now. My investment in Epoch isn't merely to solve a current problem - it's to make a preemptive strike on a problem that does not yet really affect much software.
Kinky. Now I have a new fantasy.
I checked out the intro page for Epoch. I'm somewhat familiar with Erlang so, apart from Epoch being procedural (right?) and Erlang being functional (kind-of), what is the difference between the two? I guess it's an ill-formed question but I get the feeling they are trying to address the same problem, to abstract away the hassle of writing parallel programs.
Cheers.