Hi Fergal, This is great news! Even more so since I'm currently working at Inaka (a company acquired by Erlang Solutions last year). Also, I've been working in a project that uses ClojureScript/Om in the FrontEnd and Elixir/Plug/Erlang in the backend and it has been great.
Regards, Juan On Thu, Sep 17, 2015 at 1:05 PM, Fergal Byrne <fergalbyrnedub...@gmail.com> wrote: > Hi Juan/Frank, > > Elixir has taken the key features of Clojure (especially macros, > protocols) and used them to build a wonderful language on the BEAM. I'd > take a look at Elixir if I were you - it's just too much for too little to > try shoehorning Clojure notions into a BEAM-hosted system. > > That being said, Francesco, CEO of Erlang Solutions was here in Dublin > last week, and after our chats he'll hopefully soon be in touch with people > at Cognitect about interfacing between Erlang/Elixir and Clojure/Datomic. I > see a big opportunity for a ClojureScript/Om front end, a > Phoenix/Elixir/Erlang server, and a Datomic persistence layer. > > Regards, > > Fergal > > > > -- > > Fergal Byrne, Brenter IT > > Author, Real Machine Intelligence with Clortex and NuPIC > https://leanpub.com/realsmartmachines > > Speaking on Clortex and HTM/CLA at euroClojure Krakow, June 2014: > http://euroclojure.com/2014/ > and at LambdaJam Chicago, July 2014: http://www.lambdajam.com > > http://inbits.com - Better Living through Thoughtful Technology > http://ie.linkedin.com/in/fergbyrne/ - https://github.com/fergalbyrne > > e:fergalbyrnedub...@gmail.com t:+353 83 4214179 > Join the quest for Machine Intelligence at http://numenta.org > Formerly of Adnet edi...@adnet.ie http://www.adnet.ie > > > On Wed, Sep 16, 2015 at 3:34 PM, juan.facorro <juan.faco...@gmail.com> > wrote: > >> Hi Frank, >> >> I'm wondering why no one ever posted a question/comment/reponse to this >> thread. Personally I think Clojure is a great language and the Erlang VM is >> a feat of engineering. I would love to think what other think about this >> thoughts and about the possibility of having Clojure on the Erlang VM in >> general. >> >> There are some language features that don't quite map from Clojure to >> Erlang though, which are a challenge to implement. For example it is my >> understanding that all of Clojure abstractions rely either on Java >> interfaces (on the JVM) or on protocols (ClojureScript). So I guess a good >> implementation for the protocol mechanism would be needed for Clojure's >> implementation on the Erlang VM. >> >> In my head this means: >> >> 1. Values would need to have a type tag, in order to be able to >> figure out if they do or do not implement a certain protocol. >> 2. A possible implementation would be a tuple whose first element is >> an atom which represents the type (i.e. {type_whatever, ...}) >> 3. All functions that support this scheme and also the ones that >> participate in the protocol mechanism need to "wrap/unwrap" values for >> "type checking". >> 4. Previous points make interop with Erlang more complicated, since >> Erlang code would need to account for this wrapping & unwrapping. Although >> there could be a macro that figures some of these things automatically, >> but >> it would still not be a seamless Erlang/Clojure interop. >> >> There is also the matter of *namespaces* and *vars*, Clojure's bread and >> butter :P. >> >> In ClojureScript *namespaces* are not a thing you can manipulate [1] >> (you can't use **ns** for example), which could be a possible workaround >> to avoid maintaining runtime information about namespaces. >> >> *Vars* on the other hand are not reified in ClojureScript [2] (they map >> to regular JavaScript variables). Vars either have a *root value*, are >> *unbound >> *or (when they are dynamic) might have a *thread bound value*. The first >> two are global state related to a var while the last one is local to each >> process (when talking about the Erlang VM). There are ways of implementing >> this in the Erlang VM, just to name one (which is probably not be the best >> one) using an ETS for global vars state and the process dictionary for the >> processes bindings (maybe implementing something analogous to Clojure's >> frames approach). >> >> Anyways... >> >> These are just a couple of challenges in a possible implementation on the >> Erlang VM, which I think are key. >> >> Cheers! >> >> [1] At least not the last time I checked, although ClojureScript is on >> its way to being self-hosted so, who knows? >> [2] The *var* special symbol provides compile time information though in >> ClojureScript. >> >> On Friday, July 13, 2012 at 2:15:18 PM UTC-3, FrankS wrote: >>> >>> Just became aware of this effort: "http://erlangonxen.org/" >>> >>> which shows off some impressive properties: >>> >>> * Startup time of a new instance is 100ms >>> * Instances are provisioned after the request arrival - all requests get >>> handled >>> * No instances are running waiting for requests - the cloud footprint is >>> zero >>> * the size of infrastructure is proportional to the maximum load - 8 >>> servers may be enough >>> * … >>> >>> All that begs the Q: would Clojure on an Elang-VM be feasible and make >>> sense? >>> >>> -FrankS. >>> >>> >>> -- >> 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. >> > > -- > 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/A6LPAYjmjbY/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. > -- Juan Facorro -- 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.