Hacker News new | ask | show | jobs
Efene - a programming language with C-like syntax that runs on the erlang vm (github.com)
30 points by iamaleksey 6006 days ago
6 comments

Hi, I'm the creator of the project, as some comments say, the idea is to make it easier for people that find the erlang syntax confusing to be able to start coding with the fundamental concepts that erlang provides and by doing it making more likely to jump to erlang (or keep coding in efene if they want :). the code can be compiled to bytecode or translated to erlang to see how the code would look like, so it can be a learning exercise to jump to erlang too.
What reference would you recommend for a compiler developer targeting the Erlang VM?
I've read from various mailing lists that the technical specifications of the Erlang VM are kept internal at Ericsson as well as "in the minds" of the language's developers.

Personally, I'd love to get a hold of some documents that clearly describe the finer details of BEAM.

There seems to be more than one group trying to associate a language with nicer syntax with Erlang's virtual machine. Another attempt is Reia, a language more inspired by Ruby and Python: http://wiki.reia-lang.org/wiki/Reia_Programming_Language
Reia is pretty interesting because he does some interesting stuff like make objects out of Erlang processes.
While I welcome all Erlang-spreading efforts, I quite like the Erlang syntax.

It initially looked more ridiculous than managed C++, but after about seven months of daily Erlang programming it's the most natural thing ever.

The problem with C-style syntax is that it encourages the diversity of coding conventions. Python makes everyone's code look about the same because of its ingenious whitespace-handling rules. Erlang's syntax appears to achieve a similar result because of its ... weirdness.

That's an interesting development.

I'm pretty sure that the syntax of Erlang is one of its main stumbling blocks, it is very far off the beaten path (and imo ugly), which means an immediate shortage of people that can program in it.

Grafting a C like language on top of the Erlang VM should theoretically give you the same kind of stability and scalability without the drawback of having to fish in a pool with all of 5 programmers in it (and they'll be working for a telco somewhere anyway).

While I don't particularly like Erlang syntax either, what I find with learning new languages is: the syntax bothers you the most at first because 1) you don't know anything about the language. 2) It's the most obvious and easy thing to pick on first.

After you get into it, I've found that syntax is usually the least of my grievances in a new language. It usually has to do with features missing from other languages.

Lately, I've been doing javascript a lot more, and at first, I didn't like typing "function() {" all the time (and still don't). But now, I find that javascript doesn't have method_missing (only FF implements non-standard __noSuchMethod__), nor can you override the subscript operator. Gah! So then a thing like typing "function() {" fades into the background.

Indeed. Ugly syntax is such an obvious thing to complain about, but ugly semantics and ugly design are a bigger problem in the long run. (I really like Erlang's programming model, but find the syntax a bit scruffy.)

Erlang's syntax seems a lot less weird if you're familiar with Prolog, FWIW. It was a originally a DSL built on top of SICSTus Prolog, but seems to have accumulated some extra syntax along the way. Same with a lot of its other quirks.

Yes, Erlang's syntax is something you can still complain about a little bit even after having gotten comfortable with it. It's just not one of the language's strong points in my opinion. Of course, for a competent programmer, it's nothing more than a minor annoyance and is no reason not to use Erlang for projects where it would be a good fit.
There's a lot more to erlang than a funky syntax. I don't think making it superficial look like something else will increase the number of people how can program it
Absolutely, but it certainly doesn't help either.

It's like with foreign languages, if you have to learn a new language but at least their pronunciation rules and alphabet are the same as the one that you already know how to use the barrier is a lot lower than if they use a different script as well.

It serves as a bridge from the known in to the unknown.

As soon as that bridge isn't there the number of people that will be able (or willing) to make the jump drops dramatically.

If this step-in-between will make the concepts behind Erlang easier to bring to the masses then more of them will eventually make the step to Erlang itself as well.

I think the idea is not to increase the number of people who can, but to increase the number who want to.
The problem with minority syntaxes always seems to be that if you don't know the real language you won't be able to read any of the existing code (especially in tutorials/books) out there.
At some point I started caring more about the quality of the implementation than the syntax...
Efene appears to be purely(or almost so) an alternative syntax for Erlang, and includes an Efene-to-readable-Erlang translator.

Some people have internalized the syntax of Erlang, and there are certainly aspects of its syntax that I prefer to the C-style syntax(",", ";", and "." are not among that list). I don't regularly program Erlang, only very occasionally dabbling and writing a toy program in it, but every time I try to dabble, I'm frustrated a little by needing to look up again when to use which of ",;.". Efene seems intended(among other things) to eliminate that problem. On the other hand, I like Erlang's syntax for control structures and for function definitions and for tuples, which I doubt Efene preserves.