On Sun, 30 Dec 2012 13:24:06 -0200
Gustavo Sverzut Barbieri <barbi...@profusion.mobi> wrote:

> On Sun, Dec 30, 2012 at 12:51 PM, Carsten Haitzler 
> <ras...@rasterman.com>wrote:
> 
> > On Sun, 30 Dec 2012 09:55:10 -0200 Lucas De Marchi
> > <lucas.demar...@profusion.mobi> said:
> >
> > > On Sun, Dec 30, 2012 at 9:49 AM, Carsten Haitzler <ras...@rasterman.com>
> > > wrote:
> > > > On Sun, 30 Dec 2012 09:27:40 -0200 Lucas De Marchi
> > > > <lucas.demar...@profusion.mobi> said:
> > > >
> > > >> On Sat, Dec 29, 2012 at 10:32 PM, Carsten Haitzler <
> > ras...@rasterman.com>
> > > >> wrote:
> > > >> > On Sat, 29 Dec 2012 13:06:25 -0200 Henrique Dante <
> > hda...@profusion.mobi>
> > > >> > said:
> > > >> >
> > > >> >> On Sat, Dec 29, 2012 at 12:48 AM, Carsten Haitzler
> > > >> >> <ras...@rasterman.com> wrote:
> > > >> >> > On Fri, 28 Dec 2012 22:31:18 +0000 Michael Blumenkrantz
> > > >> >> > <michael.blumenkra...@gmail.com> said:
> > > >> >> >
> > > >> >> >> On Fri, 28 Dec 2012 20:17:14 -0200
> > > >> >> >> Lucas De Marchi <lucas.demar...@profusion.mobi> wrote:
> > > >> >> >>
> > > >> >> >> > 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.
> > > >> >> >>
> > > >> >> >> it does make me consider entering one of those code obfuscation
> > > >> >> >> contests...
> > > >> >> >>
> > > >> >> >> >
> > > >> >> >> >  - *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.
> > > >> >> >>
> > > >> >> >> backtraces with eo are the reason I don't see myself ever
> > switching
> > > >> >> >> to the 1.8 branch. as for benchmarks, I saw some supposed
> > numbers
> > > >> >> >> thrown around during early eo development which claimed that it
> > "was
> > > >> >> >> slower, but not that much slower, and worth it for the gains"
> > > >> >> >>
> > > >> >> >> >
> > > >> >> >> >  - 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
> > > >> >> >>
> > > >> >> >> not to mention the spam just from running e
> > > >> >> >>
> > > >> >> >> >
> > > >> >> >> >  - 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
> > > >> >> >> >
> > > >> >> >>
> > > >> >> >> depressing though it may be to think about, I have to agree
> > with your
> > > >> >> >> points. I'm not saying it needs to be reverted, but I don't see
> > any
> > > >> >> >> benefit to keeping it unless the goal was to reduce my commits
> > to the
> > > >> >> >> afflicted areas to near zero.
> > > >> >> >>
> > > >> >> >> while it's impressive that all of the eo stuff was added with
> > > >> >> >> relatively little breakage (as opposed to my expectations), the
> > idea
> > > >> >> >> of having to learn what is essentially a different programming
> > > >> >> >> language in order to work on efl internals again in trunk is
> > really
> > > >> >> >> demotivating. maybe I'll become the kwo of the 1.7 branch?
> > > >> >> >
> > > >> >> > fair enough. it's a change. it's not a change i wanted. it's a
> > change
> > > >> >> > that was NEEDED. needed because once you go beyond the scope of
> > us few
> > > >> >> > efl devs, you hit a wall of developers who can take our api -
> > > >> >> > documented or not, with examples or
> > > >> >>
> > > >> >>  Hello, from a new developer pespective, I think Eo is creating an
> > > >> >> unwelcome encapsulation of the API, that's usually neither expected
> > > >> >> nor wanted in C. It's replacing simple function calls with message
> > > >> >> building with handles and varargs. The way I see it, new C
> > application
> > > >> >> developers from the community (as opposed to employees required to
> > > >> >> work on EFL) which could potentially choose EFL as a toolkit, would
> > > >> >> avoid it, not be attracted to it.
> > > >> >>
> > > >> >>  While developing with Eo I also noticed that it breaks cscope
> > usage.
> > > >> >> Whenever I wanted to jump to the definition of some method call, I
> > > >> >> reached a macro in the include file instead. Then I had to use the
> > > >> >> method ID to do a new search, this time not by definition, but by
> > > >> >> usage in class definitions. The other way doesn't work well either:
> > > >> >> single stepping in gdb to find out the code path or looking at a
> > > >> >> backtrace are both polluted with Eo calls. In general single
> > stepping
> > > >> >> on an efl method call should take 5 seconds, but with Eo it may
> > take 5
> > > >> >> minutes. Main negative conclusion about this is that there's no
> > > >> >> trivial way to find out what an Eo call does, and this will
> > discourage
> > > >> >> new developers from reading code.
> > > >> >
> > > >> > if you see a bt with eo stuff - ignore the eo stuff and just skip
> > to the
> > > >> > bit that does the real work. can't fix that without patching gdb.
> > not
> > > >> > sure it'd be wise either. can't do much about cscope except write
> > better
> > > >> > tools or patch cscope itself.
> > > >> >
> > > >> > fyi - we plan to make better tools. we've been tossing about making
> > our
> > > >> > own ide. this is where we get to be able to solve things like this.
> > > >>
> > > >> People tend to work in several projects. Having one IDE for each one
> > > >> is just insane. I myself work in projects from bootloader and kernel
> > > >> to a handful of userspace projects. VIM fits my needs for all of them.
> > > >> You are not convincing anyone to use a shiny new IDE built with EFL
> > > >> just because EFL needs some weird tooling.
> > > >>
> > > >> >
> > > >> > the extra eo layer underneath a thin c call layer is unavoidable as
> > > >> > that's needed for compat (abi/api) anyway.
> > > >>
> > > >> but we have been told this is *only* for compat. Not for new calls.
> > > >
> > > > it's not for new calls AFTER 2.0 - until then we maintain an api that
> > looks,
> > > > feels and works like the existing. at 2.0 the current api will be put
> > out to
> > > > pasture. it will WORK, but it may also break and get nothing new.
> > > >
> > > >> >
> > > >> > the alternative is "rip all of eo out and don't do it" which imho is
> > > >>
> > > >> I like this alternative sooooo much :-)
> > > >>
> > > >> > unacceptable the other way - code using efl stays messy and
> > > >> > inconsistent. we
> > > >>
> > > >> so you are saying it has been messy all these years? And all the other
> > > >> similar libs are messy too, since they don't have anything similar to
> > > >> these macros.
> > > >
> > > > no - i'm saying that its messy because we dont have a consistent object
> > > > model from bottom to top. we don't have a consistent callback
> > mechanism. we
> > > > don't have a consistent way of gluing objects together for auto cleanup
> > > > that lives below evas (evas is way too high for this).
> > > >
> > > >> > have no path forwards to improve things and unify efl. reality is
> > day in
> > > >> > and
> > > >>
> > > >> we sure can improve things without eo. this is what we have being
> > > >> doing all these years.
> > > >
> > > > and in the end it'll result in what eo is. another layer in the
> > backtrace.
> > > > another object model. another layer of indirection. i spent time
> > looking at
> > > > gobject. i spent time looking at what we have in evas. i decided
> > gobject was
> > > > just not going to cut it. eo is a different take on the object thing.
> > this
> > > > was discussed both on irc and in mailing lists quite a long time ago
> > now.
> > > > the time for discussing it is over. you're too late.
> > > >
> > > > the thing to do now is ... how to IMPROVE it. how to move forward and
> > make
> > > > maximum use of the tools at hand.
> > > >
> > > >> > out people turn up looking at efl as a single unit. not as a
> > collection
> > > >> > of separate libraries. they expect it tobe a single unity with a
> > single
> > > >> > model and after years of that eo is a way of sliding that in without
> > > >> > breaking what we aleady have. it's a path forwards. there is an
> > eventual
> > > >> > idea that we can move to a single libefl.so (with
> > libeina.so/libevas.so
> > > >> > etc. being simply thin c api wrapper libs on top), because this
> > simply
> > > >> > is what people are asking for. maybe not YOU, but i'd say 9 out of
> > 10
> > > >> > think this way, and expect this and want it.
> > > >>
> > > >> We could very well ship a single libefl.so with NO need of eo for
> > > >> doing that. We could do this right now or have done this even before
> > > >> efl 1.0. This is no argument in favor or contrary to eo adoption.
> > > >
> > > > my point is they see a single unit that is fractured and vastly
> > different in
> > > > each area. and they complain. they can't recycle knowledge (callback
> > > > prototypes, apis' for adding/deleting callbacks, ability to bind
> > objects
> > > > together or not etc.). this puts in that model. we need to also place
> > in as
> > > > much of a single point of object allocation and management as we
> > possibly
> > > > can. eo does that. one of our big problems now after you take away
> > memory
> > > > used by image and font data is actually objects. edje objects. evas
> > object
> > > > and others. being able o track and detail who uses what. who is tied
> > to who
> > > > etc will help us lean this down. it will help us make existing objects
> > > > smaller. eo allows us now to make the larger objects like evas possibly
> > > > composite objects from smaller elements. with a pointer indirection
> > layer
> > > > (id's) we can also do memory compaction. i spent a while looking at
> > memory
> > > > allocation map dumps of e17 after it runs for a bit. fragmentation is a
> > > > major issue. we easily get to 50%+ fragmentation - half the memory in
> > terms
> > > > of pages we have resident, are unused. if we can compact that at
> > certain
> > > > intervals... we will gain memory. the id thing also allow for safety as
> > > > already mentioned.
> > > >
> > > > as i said - the time for discussing this is over. that time was like
> > 6-24
> > > > months ago.the time now is to see what we can do to make things better
> > and
> > > > make maximum use of our new tools.
> > >
> > >
> > > If you point me to a single mailing list thread on the matter of how
> > > this was designed with people giving opinions on it and concluding
> > > this was the way to go, you maybe can say I'm too late. IMO it's not
> > > too late until the day we release 1.8.
> >
> > i shall start with a single one: 'Subject: [E-devel] Eobj - Request for
> > review/comments' in april 2012.
> >
> > you were conspicuously absent from comments. so was gustavo. it's a bit
> > late now
> > to want to comment and change the course of everything. :)
> >
> > my irc logs show discussions in february 27 2012 about it on #edevelop.
> >
> > i know we've ben tossing about ideas of how to do some more unified oosin
> > efl
> > for long before that. it got a lot more concreat early last year.
> >
> 
> indeed i did not reply to ML, however I listed the problems that could
> happen, and happened, via IRC and in person many times. I was ignored, then
> I just did the wait-n-see, maybe I would be proved wrong and I was the
> naive, that didn't happen :-(

there definitely were people who said they were not in favor of this on IRC; I 
was one of them.

saying "discussion happened in IRC and mailing lists" and then misrepresenting 
the amount of opposition from these channels is not a great way to prove a 
point. and yes, I can provide logs if that's really necessary.

> 
> 
> 
> >
> > > I don't want to be the boring guy complaining on this. But I can't
> > > agree neither on the reasons why this went in, nor how it went in. For
> > > me eo is just raping C and all the problems pointed out should be
> > > fixed elsewhere.
> >
> > there was an rfc. it was not slid in quietly without your knowing. you
> > chose to
> > not look or participate. either way too late. i've already covered many
> > points
> > behind eo. there are a lot. eo is a result of real needs and problems.
> 
> 
> it's solving problems by creating more problems? :-/
> 
> 

there was no rfc. there was a SINGLE thread on the mailing list in early april 
titled "Eobj - Request for review/comments". and at that point, there were no 
use cases to review, only hypothetical cases.

------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_123012
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to