Live data from Hacker News

Lisp Flavoured Erlang 1.0 released after 8 years of development

github.com

31–40 of 96 posts

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#31

Earlier quoted context omitted.

I doubt it. IMO Erlang is fundamentally a different model of programming than JS and what about mutability and things such as pattern matching? It quickly becomes apparent that it would not be much like JS if it was to take advantage of all of Erlang's best bits.

Exactly, Erlang is a DSL for distributed applications. There is not much point to use it for anything else.

Erlang and related languages are applicable for most long-running applications.

The amount of people who actually use true distributed Erlang is probably small, because you get many of the benefits either way.

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#33

Earlier quoted context omitted.

> Compare how you bring up a repl: Elixir, type iex; LFE, cd into LFE dir, type ./bin/lfe. Is that a joke? > If you have installed LFE, then you may start the REPL from any location: $ lfe what you quoted is if you're running LFE straight from the git clone[0], and noted so. [0] because you may not want a system-wide LFE and LFE is being a nice citizen in explicitly supporting that use case.

In actual fact, the LFE installation experience was a breath of fresh air: $ brew install erlang $ git clone ...lfe.git $ cd lfe; make && make install $ lfe I miss make.

FWIW that can be further simplified to just `brew install lfe`: https://lfe.gitbooks.io/quick-start/content/1.html#1-2-1-hom...

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#34
post #6

Earlier quoted context omitted.

One obvious example is that AFAIK the VM doesn't support functions with a variable number of arguments (foo/1 and foo/2 are two separate functions). This means that you can't have CL-style &rest or &key arguments.

While &key is CL-specific (and if you don't have it, you can ad-hoc it if you have variable arguments) variadic functions are pretty important, and found broadly in Lisp dialects. If you're on a VM or other target that doesn't do them natively, it's worth fighting tooth and nail to somehow get the functionality. E.g. make an inefficient variadic type that at the VM level takes a single argument---a list or vector of…

>E.g. make an inefficient variadic type that at the VM level takes a single argument---a list or vector of the arguments. Or multiple types for different combinations of fixed arg arity plus variable list.

This would hurt interop with Erlang, which seems to be a goal of LFE.

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#35

I'd love to see a comparison with Clojure, anyone know of such a thing yet?

You can answer this from many angle:

- Clojure vs LFE

- JVM vs BEAM

- Lisp-1 vs Lisp-2

Etc, if you are interested only in the syntax differences, there is not much difference there (there are obviously some though!). I think generally speaking Erlang has fewer libraries than Java so that is a big difference in my opinion.

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#36

Earlier quoted context omitted.

I doubt it. IMO Erlang is fundamentally a different model of programming than JS and what about mutability and things such as pattern matching? It quickly becomes apparent that it would not be much like JS if it was to take advantage of all of Erlang's best bits.

Exactly, Erlang is a DSL for distributed applications. There is not much point to use it for anything else.

Erlang is a DSL for weeding out smart programmers from drone programmers.

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#37
post #14

Virding's YouTube presentation at a Clojure conference about this new lisp says this in the caption: >LFE (Lisp Flavoured Erlang) has been designed to run efficiently on the Erlang VM and at the same time be a "real lisp" providing Lisp's good bits. It also knocks Clojure a bit. What do you all think are the "good bits" of lisp that Clojure lacks?

   What do you all think are the "good bits" of lisp that Clojure lacks?
Compared to common lisp off the top of my head (correct me if I am misrepresenting Clojure from memory): condition system, multiple return values and &key, CLOS with all that entails, and I seem to remember that clojure had some fiddly issues with macros and reader macros.

Not intended as a knock on Clojure, btw, but the JVM is somewhat limiting, in the same way you can't do a "proper" common lisp on the CLR.

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#38
Elixir is really not similar to Ruby and the comparison wears thin.

Wasn't Elixir just created because 100%-Ruby-til-Death programmers refuse to learn any other non-ruby-like syntax? It's like their brains would shatter into a brillion pieces if they ever had to think about tail recursion.

have made the developer experience second to none

Except, LFE isn't a giant community and companies and organizations and conferences promoting its usage and building companies around it.

LFE is a nice project that grows as people use it without trying to form an army/cult around it like so many other languages do these days.

and, if you think 'cd' is a complex operation, your brain would explode at trying to start the LFE REPL for most of its life:

    erl -noshell -noinput -s lfe_boot start

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#39
post #6

Earlier quoted context omitted.

One obvious example is that AFAIK the VM doesn't support functions with a variable number of arguments (foo/1 and foo/2 are two separate functions). This means that you can't have CL-style &rest or &key arguments.

This is a feature to me more like a limitation. I do not like optional arguments &rest style. In Erlang you need to have explicit number of arguments and need to explicitly implement them. I really like that. Keep in mind that default values are trivial to implement when the smaller arity function calls the higher arity one with added values. Or you can call in yourself to the higher arity function and specify the pa…

In Erlang you need to have explicit number of arguments and need to explicitly implement them.

Or, you know, just use lists as parameters. That's the standard Erlang pattern for unknown parameters lengths (e.g. io:format("debug ~s because ~p~n", [SomeString, SomeType]))

Re: Lisp Flavoured Erlang 1.0 released after 8 years of development

#40
post #16
post #10

Earlier quoted context omitted.

It started in 2007 with the release of Clojure and there are still plenty of paren keys around.

The Lisp renaissance started in December 1999 with SBCL being forked from CMUCL.

Sadly, I am old enough to agree with this assertion. I went from SBCL to ECL at one point looking for a small Lisp t embed or make games with, purely a hobby. I have not left the Lisp renaissance since!
Post reply on HN