7 ms·
jvm jvm jvm. Flink. Storm. Spark. Beam. projectreactor. Reactors. Samza. How spoiled are Java/Scala programmers but is there anybody doing anything similar in d
by vegabook 10y ago
jvm jvm jvm. Flink. Storm. Spark. Beam. projectreactor. Reactors. Samza. How spoiled are Java/Scala programmers but is there anybody doing anything similar in distributed computing frameworks that targets something other than the Java Virtual Machine? Go? Erlang? C? Ocaml? Anyone? Why always the JVM? Sure I understand that business loves java, but every single one?
- jonaf 10y agoI'm confused. What's the problem here?
- vegabook 10y agowell, there has to be, even in minority, a subset of people who would like to use something other than the JVM languages? For example, I personally like using C, Python/Numpy, Erlang, and Ocaml. Personally I hate object oriented programming, and my only serious candidate on the JVM is Clojure in that case, which appears to be poorly supported by all of the above except Storm maybe.
- pron 10y agoYou can run all of the languages you mentioned on the JVM.
- vegabook 10y ago...in often distant second-class-citizen form, and a cursory glance at the docs of any of the big-hitting data flow platforms will show you that it's Java/Scala or bust (with some Python/R sure but to get serious you have to speak to them in their native tongues).
- pron 10y agoThis will change with the availability of Graal as a library in OpenJDK 9.
- eyelidlessness 10y agoAlso by Storm. There's some low-level stuff available in the form of the `defspout` and `defbolt` macros, but using any of the newer APIs requires extensive and gross Java interop.
- infinite8s 10y agoWhat about Pony for the erlang vm?
- vegabook 10y agoaha! Thank you! I will check it out. [ edit: Object Oriented though. My personal beef with the JVM is that its primary languages are object oriented, which is a programming model many people dislike, Clojure notwithstanding ]
- acjohnson55 10y agoBesides Java, most other JVM languages let you opt out from OOP pretty thoroughly. At least the worst parts of it. Sure, most operations would still be written as methods on some object, but that's the least offensive aspect of OOP, IMO.
- tekacs 10y agoPony (ponylang.org) is really interesting but it is a compiler with its own target and doesn't run on the Erlang VM. (Perhaps you meant 'or'? Apologies if so.)
- infinite8s 10y agoAh you are correct. I'm not sure why I thought Pony ran on the BEAM VM.
- spriggan3 10y agoAFAIK Erlang OTP makes the need for a specific distributed framework less relevant. And it's built with fault-tolerance in mind too.
- dragonwriter 10y ago> Erlang OTP makes the need for a specific distributed framework less relevant. As I understand it, OTP is (among other things) a specific distributed framework.
- karmajunkie 10y agoI don't think that's really true. The things that make BEAM good at distributed systems like processes and network "translucency" (because let's face it, no network is transparent) are all built into BEAM itself, not OTP. OTP sits a layer or two above those features and certainly is great for building distributed systems. But you could build a distributed system on erlang or its brethren without using OTP at all.
- dragonwriter 10y ago> > As I understand it, OTP is (among other things) a specific distributed framework. > I don't think that's really true. But, nothing you said contradicts it: it just argues for why BEAM is still a good platform for building distributed systems on even without OTP, not anything about OTP not being a specific distributed computing framework.
- karmajunkie 10y ago>> The things that make BEAM good at distributed systems like processes and network "translucency" (because let's face it, no network is transparent) are all built into BEAM itself, not OTP. Maybe I'm in the minority but I read that as a direct contradiction. I'm not sure what definition of a "distributed framework" you're working from, but if you're going to apply that label to something you ought to at least know what aspects of it specifically target the distributed use-case, and if it doesn't add anything to make the "distributed" part of that easier, then you can't very well claim its a distributed framework. OTP is a platform for state management and fault tolerance. Everything "distributed" is already present in BEAM.
- iLoch 10y agoThere sure is! Check out Orleans by Microsoft Research. It's built for .NET, and is being used in production by large companies. We're currently evaluating it for our own infrastructure. It looks very promising.
- ebcode 10y agoYou might check out http://actor-framework.org/ http://actor-framework.org/
- vegabook 10y agoActors for openCL?? Color me sold, immediately. Not a huge fan of OO but wow this is exactly what I've been looking for -> GPU integration into an actor framework.
- yawaramin 10y agoCheck out http://getakka.net/ http://getakka.net/
- marianoguerra 10y agoErlang per se, but also: * riak_core: http://efcasado.github.io/riak-core_intro/ http://efcasado.github.io/riak-core_intro/ and http://marianoguerra.github.io/little-riak-core-book/ http://marianoguerra.github.io/little-riak-core-book/ * lasp: http://lasp-lang.org/ http://lasp-lang.org/ * Weave Mesh: https://github.com/weaveworks/mesh https://github.com/weaveworks/mesh
- di4na 10y agoI would had that the new experimental GenStage by the Elixir team may be of interest for event driven and Reactive people... https://github.com/elixir-lang/gen_stage https://github.com/elixir-lang/gen_stage