OO via first class enviroments: Bla

(Since SHEEP isn't out yet) The programming language Bla

"breaks with referential transparency and allows use of assignment as well"


"[via] '1st class environments', Bla integrates functional and object orientedness in a tiny language, in an elegant and natural way. However, on top of this core language, Bla adds quite a few concepts to make programming practical."

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


I didn't knew about Bla, an interesting language.

On a purely syntaxic level, I dislike all language which provide only
because you need to read back and forth to understand the expression..
let (value)
^ (expression)
is much better IMHO, first you build the value which are then used in the expression..

I like the 'where' style

I like the 'where' style when people are nice enough to name their variables nice. I like to just see "oh this is the product of this sum and that sum" and then I can look into the actual sums or whatever if i need to drill down lower.


Meaningful names are important no matter where you place them. The main thing I'm looking for in the variable declaration is the scoping.

The problem with the post where clause is that it is evaluated first. So you get an out of order view of the code. Of course, in functional languages the order is not nearly as important.

Perhaps both should be allowed???

Sometimes, code is better presented in a "top-down" structure, where the "big picture" is given first, and the sub-clauses are listed below. In that case, the "post where" makes more sense.

In other cases, the code is better presented in a bottom-up fashion, in which defining bindings syntactically prior to their use makes more sense.