EFL (aka Exponential Frustration Levels)

So, I've finally got some time to experiment with the Enlightenment Foundation Libraries (EFL). And I have to say... the almost complete lack of any little documentation out there makes it hard to get started, only not that much.

Regarding the state of the existing documentation, most of it is outdated, but so far the concepts seems to apply still, so it's not as bad as it could be. Still, is quite some annoyance.

Thus, the only options left were looking through the really few actual examples (the Python-EFL bindings comes with a few examples, which were quite helpful), and reading both the bindings and the C source code.

Today I've played around a bit with the Ecore and Evas libraries, which are the "lower" level stuff. Ecore provides system interfacing, including mainloops, timers and such. And Evas is the stateful canvas.

Both are actually pretty simple to grasp, for abstracting quite a lot of things away, once you get around the problem of the lack of human-readable documentation. I specially liked the Evas way of doing things, not having to worry about rendering pipelines and optimizations, redrawing, and all those things really makes all the code a lot simpler, concise and sweet :3

Anyways, here's a simple pong game I've put together using the Python bindings for EFL. It's still a bit rough on the edges (and the collision handling is really awful), but should show a bit of how things work in the library. It's also somewhat well commented — for the parts regarding the libraries, at least.

https://github.com/killdream/pong

(log in to comment)

Comments

How experimental!

EFL doesn't seem to have non-Linux builds. It would probably work on OS X though if someone took the time to work it out. It can use OpenGL though, which is nice. :-)

Exciting stuff.
There are some ports for most of the *nix platforms (BSD/Solaris/OS/X), though Linux is the main platform. Not sure if there are actual binary builds for these, but you should be able to compile EFL in there at least.

There's also a support to Windows through the evil library (how fit is that name? ;-P), and pre-compiled binaries as well, but I haven't tried them yet.

http://trac.enlightenment.org/e/wiki/Operating_Systems