LEO’s influences

LEO is a new programming language i’m currently working on, as shows several articles in this blog. Of course, it does not come from nothing but is influenced by several languages. “Visiting” other programming languages are like visiting different counries. They have a different flavour, a different way of living, and most of the time you’ll notice remarkable things that you like and would carry with you. The same holds for programming languages. Thus, I will state here the main influences from other programming languages, in alphabetical in order to avoid jaleousy.

Erlang

In Erlang, despite of being very complete in itself, I especially like:

  • the generators and filters
  • that words are values by themeselves
  • …othter things I must explore, since this is the last language I picked up and am learning.

Haskell

In a few words, Haskell is elegant, sharp and sometimes a bit too terse.

I especially like:

  • full lazyness (thus, the order of your statements do not matter anymore, it becomes more descriptive) …what is funny though is that everyone tends to write with a monadic style which is kind of an emulation of statefull sequential programming. I find this a bit odd to what extend these are used.
  • where clauses. This seems really like a detail but putting the details inside a where clause helps you (in my sense) to better structure your code. In mainstream programming languages, you write your code bottom-up. Here you do it the other way round, the main task is outside and it is scrumbled down inside the where clause.
  • equality transitivity. The fact that you can replace the left hand side of an equality by its right hand side (and vice-versa) in the code is cool. It improves understandability.
  • Type classes!

What I’m not fond of:

  • Sometimes a bit terse and not always easy to understand
  • I am not yet convinced of partial function application
  • The fact that lists can only contain elements of the same type is both a blessing and a curse

Python

Pros:

  • It’s easy
  • It’s intuitive
  • It’s readable

Cons:

  • See what you can do in other languages and you’ll see there is a lot of space to cover
  • Too slow for computation intensive stuff

Scheme

Ah, this funny last one is pretty amusing. So minimalistic yet you can do absolutely everything with it. When I’m programming in it, I feel like a small boy playing around.

What I like a lot:

  • Program is data and data is program. Quoting things and evaluating quoted things.
  • Any identifier is valid 🙂
  • Incredibly simple, yet so extensible.
  • It’s simply neat.

What bugs me:

  • I don’t feel as productive as with others
  • I don’t find it as readable.

Smalltalk

Experience the IDE and you won’t want any other. Here you don’t have source code files. You have a program “image”. And the IDE understands it as a whole and let you navigate and interact with it in an unmatched way.

Also, the structure of the program is like assembling Lego blocks. They are all combined from small chunks and part of bigger chuncks. In the IDE, it is like playing with a looking glass where you zoom and back on different objects in the program.

Conclusion

So how would be my ideal languange? …Well, no one cares anyway.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: