Hey!

I'd like to start a discussion about eo and its usage in EFL. I got
very frustrated on how it was merged regardless the opinion of the
other EFL developers. IMO it could make some sense in elementary, but
not in the core like ecore, evas, edje.

Asking around I discovered I was not the only one.... rather the
opposite - everyone I asked hates how it's done.  Recently I had to
review some patches to elementary, adding the systray support. My eyes
were bleeding. I will enlist here some reasons in no particular order.
Surely there are more... others are welcome to fill them here.

 - We replaced the function calls with eo_do(func()). Now, take an
application and imagine all ecore_*, evas_*, elm_* functions replaced
with eo_do(func()). This is not just ugly... it's impractical to use.

 - eo_do() is the userspace incarnation of ioctl() - search on LKML to
see how it's hated there.

 - *every* "function" in a backtrace comes with the
_eo_dov_internal()/_eo_op_internal() companion - besides polluting the
bt, for sure they have a cost. And I saw no benchmarks on mailing list
after the addition of eo.  One might think that since *I* am
complaining, *I* should provide them, but I think it's exactly the
opposite - people who added this thing should make sure it's now the
same or better than it was before.

 - If we really needed this level of OO in ecore, evas, edje, we'd be
better off using C++ or inventing our own language to fit our needs
instead of doing what we are doing now.

 - why is it any better than the smart object we had all these years?
Why not improve that instead of replacing with eo?

 - run elementary_test with EINA_LOG_LEVELS=5 and see the
construction/destruction party

 - Despite raster arguing this is not an API break, I strongly believe
it is. It broke compilation of lots of c++ applications (I'll not
repeat myself here... in the mailing list there are my other arguments
why it is an api breakage)



My opinion is to revert the whole thing, but I'm sure this would be a
major task after the surgery to put it in was made.  I'd at least like
the people responsible for it to answer the points above, and people
who like me think this is all crap to step up and say so.



Lucas De Marchi

------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to