3 ms·
I want an implicitly parallel programming language. Write code that looks single threaded, doesn't have any mutex/spawn/channel stuff in it, that runs on one co
by JonChesterfield 4y ago
I want an implicitly parallel programming language. Write code that looks single threaded, doesn't have any mutex/spawn/channel stuff in it, that runs on one core locally or the nearby cluster with the same behaviour and lower wall clock time.
- JohnHaugeland 4y agothis is called "erlang"
- engineerDave 4y agoAlso achievable with elixir (via erlang)
- JonChesterfield 4y agoNot so much. Erlang does the one machine or many feature but only by writing your program as a bunch of objects communicating by message passing. Elixer seems to be the same. I'm thinking more along the lines of Id or parallel Haskell.
- marssaxman 4y agoI developed such a language, about a decade ago; though it was also happy to run on multiple cores locally. Alas, the gap between an operational language core and a useful development tool was too large for one person to bridge in their free time, and there is no business model for programming languages.
- JonChesterfield 4y agoDo you have any documentation left over? Curious which design tradeoffs you made.
- marssaxman 4y agoI'm afraid I don't. There came a point where I had to accept that the project was not going anywhere, and move on; I let the blog & web site expire. I did eventually post the code on github, though it's missing most of its history, and the work is stalled out mid-transition from one code generator backend to another, so it doesn't actually run; but you can get a sense of the language style from the 'samples' and 'validation' directories: https://github.com/marssaxman/radian https://github.com/marssaxman/radian In a nutshell, name-rebinding and an indirection operator provided the flavor of a mutable, object-oriented language over immutable datastructures and functional semantics. Loops were all range-based, and the dataflow graph was decomposed into maps & reduces; maps were applied in parallel, via work-stealing. Were I to do it over again, I might be a little less opinionated about the syntax - but I was having fun at the time.