Settings

Theme

Ela Programming Language

code.google.com

11 points by kung-fu-master 15 years ago · 11 comments · 1 min read

Reader

I have found very interesting functional language from russian developers community (RSDN). Short description from language site: --------------------------------------------------------------------------------- Ela is a modern programming language that runs on CLR and Mono.

The language is dynamically (and strongly) typed and comes with a rich and extensible type system out of box. It provides an extensive support for the functional programming paradigm including but not limited to - first class functions, first class currying and composition, list/array comprehensions, pattern matching, polymorphic variants, thunks, etc. It also provides some imperative programming features.

Ela supports both strict and non-strict evaluation but is strict by default.

The current language implementation is a light-weight and efficient interpreter written fully in C#. The interpreter was designed to be embeddable and has a clear and straightforward API. The language comes with a command line utility (Ela Console) that supports interactive mode.

CodeMage 15 years ago

Where's the documentation? Wiki's empty and the "Docs" directory in the source repository contains only "OperatorPrecedence.txt". So where can I find more about:

1. distinguishing features of Ela (i.e. "why Ela?")

2. programming in Ela

3. standard library

4. interpreter API

vorov2 15 years ago

Ela is a strict dynamically typed impure functional language. Haskell is a non-strict statically typed pure functional language. Only 1 of four :)

Ela is not Haskell :)

And it does feel very different really. There are certain similaries in syntax - not by coincidence of course - mostly in the way how Ela supports function definition by pattern matching. I've experimented with syntax quite a lot, starting from C-style syntax but it really appears that ML-style syntax is more expressive if you take a functional language. IMHO of course. Also except of function definition Ela syntax is probably closer to OCaml\F#.

This is a pretty early stage of the project really, I can't even say that the concept is 100% finalized. The interpreter is fully functional but Ela really lacks some documentation, guides, how-tos and standard library. TBD.

swah 15 years ago

Looks like Haskell.

wccrawford 15 years ago

It's not often I come across a new language that I can't just read by looking at it.

And that's not a good thing for the language, as far as I'm concerned.

  • ekiru 15 years ago

    Why isn't that a good thing?

    That criterion would cause you to dismiss Haskell because it looks different from what you're used to; the example code in the link is quite similar to Haskell code.

    The most useful programming languages to learn are the ones most different from what you are familiar with. One would be much better off learning ML, C, and Smalltalk than Java, C#, and Python (in terms of their effect on one's understanding of programming; not necessarily on one's ability to find work). But a programmer knowing only C is unlikely to be able to read ML or Smalltalk with much understanding, nor would a Smalltalk-only programmer understand C or ML easily or a ML-only programmer Smalltalk or C.

    • nxn 15 years ago

      Yes, I completely agree with this. I don't see much advantage in knowing languages that all look and behave very similarly to each other. Why should the only reasonable choice be no choice at all? Though, I suppose, that's probably saying too much.

      On a side note, and perhaps I'm biased in believing this, but I find the given Haskell "expression" like syntax to be much easier to understand than reading imperative code. Of course, you have to know some fundamentals behind functional programming before it starts making much sense, but once that ground work is there, the experience of reading other people's code is quite enjoyable. To me, it just seems like the code is more concerned with the problem it's trying to solve than battling the nature of the machine that it is running on.

vorov2 15 years ago

I have added some documentation to WIKI: http://code.google.com/p/elalang/wiki/ElaOverview1 http://code.google.com/p/elalang/wiki/GettingStarted

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection