Thanks for the detailed write up! I guess a carefully chosen subset of Clojure can make sense then, but definitely not all of Clojure.
On Tue, Apr 26, 2016 at 5:45 PM, Timothy Baldridge <tbaldri...@gmail.com> wrote: > >> would you consider a Clojure port to Erlang VM a viable idea for > production workloads? I know Elixir comes pretty close, but I still prefer > Lisp : ) . > > I looked into that at one point, but sadly the Erlang VM is a really poor > platform for a Clojure port. Here are a few reasons why: > > Unit of compilation is the module, not sure how that all plays out with > the Elixir repl, but it's not optimal. From what I can tell, re-deffing a > defn would require re-loading an entire namespace (module) or require > one-defn-per-module. > > No native polymorphism. Elixir fakes it with structs (think defrecords) > with a custom hidden field, then looks up functions in a hash map on that > field to dispatch. > > Total lack of shared state. This one doesn't sound like a problem till you > think of how to do things like a REPL that can re-def defns at runtime. > Also, clojure makes fairly liberal use of atoms, vars, and volatile! cells. > Even stuff like lazy seqs leverage limited mutability and set-once > behaviors. You don't have any of that in BEAM, just actors. And converting > all those things to actors would be a major mistake. > > So can you have a lisp flavored Erlang? Sure. But what you're left with > would not be Clojure. > > Timothy > > > > > > On Tue, Apr 26, 2016 at 3:55 PM, Rangel Spasov <raspa...@gmail.com> wrote: > >> tbc++ - given your experience, would you consider a Clojure port to >> Erlang VM a viable idea for production workloads? I know Elixir comes >> pretty close, but I still prefer Lisp : ) . >> >> On Monday, April 25, 2016 at 1:50:45 PM UTC-7, tbc++ wrote: >>> >>> As someone who has spent a fair amount of time playing around with such >>> things, I'd have to say people vastly misjudge the raw speed you get from >>> the JVM's JIT and GC. In fact, I'd challenge someone to come up with a >>> general use, dynamic language that is not based on the JVM and comes even >>> close to the speed of Clojure. >>> >>> A LLVM/C++/RPython based version of Clojure would on a good day come in >>> at about 1/10 the speed of Clojure on the JVM for general use cases. >>> >>> >>> On Mon, Apr 25, 2016 at 2:18 PM, Raoul Duke <rao...@gmail.com> wrote: >>> >>>> > The main motivation would be performance gains. >>>> >>>> blah? so many impedance mismatches and layers of indirection that i >>>> don't think it will gain much? i mean, it would probably be better to >>>> spend time tuning gc parameters or something. just a rant / guess. >>>> e.g. robovm is for some use cases perfectly fine performance wise >>>> believe it or not. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clo...@googlegroups.com >>>> Note that posts from new members are moderated - please be patient with >>>> your first post. >>>> To unsubscribe from this group, send email to >>>> clojure+u...@googlegroups.com >>>> For more options, visit this group at >>>> http://groups.google.com/group/clojure?hl=en >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+u...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> “One of the main causes of the fall of the Roman Empire was that–lacking >>> zero–they had no way to indicate successful termination of their C >>> programs.” >>> (Robert Firth) >>> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > “One of the main causes of the fall of the Roman Empire was that–lacking > zero–they had no way to indicate successful termination of their C > programs.” > (Robert Firth) > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to a topic in the > Google Groups "Clojure" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojure/8DUkKiXV77U/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.