>
> 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)...
>

Reloading a whole namespace on an evaluation doesn't seem like a
show-stoppingly bad idea though, does it? We're only talking during
interactive use at the REPL, if it takes 100ms to evaluate a form I don't
think anyone is going to care that much. I mean, at the REPL no-one
complains about how long require takes except in extreme cases, and that's
generally reloading many namespaces. Of course, in a reload-entire-ns model
you're likely to have to reload namespaces that depend on the one you're
reloading as well, but I'm still not sure it's so horrible.


On 27 April 2016 at 12:45, 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 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 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.

Reply via email to