On 11/08/16 03:34, Carsten Haitzler (The Rasterman) wrote: > On Wed, 10 Aug 2016 13:03:03 -0300 Gustavo Sverzut Barbieri > <barbi...@gmail.com> said: > >> On Wed, Aug 10, 2016 at 12:07 PM, Carsten Haitzler <ras...@rasterman.com> >> wrote: >>> On Wed, 10 Aug 2016 15:41:00 +0100 Tom Hacohen <t...@osg.samsung.com> said: >>> >>>> Hey there, >>>> >>>> Sorry it took me so long to get to this one. I've been dealing with >>>> other things, and every time I got back to this I had more clashes and >>>> hell. I'm finally at a stage I can merge most of it, so I'm happy, >>>> though I have one question before I push. >>>> >>>> At the moment I changed it as follows: >>>> Eo.Base -> Efl.Object >>>> Eo.Override -> Efl.Object.Override >>>> >>>> I'm quite OK with this change. The problem comes with the actual >>>> functions. At the moment they are: >>>> >>>> efl_ref() >>>> efl_add() >>>> efl_del() >>>> efl_finalize() >>>> efl_name_set() >>>> efl_parent_get() >>> >>> these. we know at this level of the base api namespace that efl_ here is >>> actually an efl OBJECT and we are doing something to it. that's >>> understood/implied. adding more wordiness doesnt help with any of that, just >>> makes code more verbose and adds more typing effort. >> >> isn't clear to me... at least not after coming back :-) > > then all those OO developers are horrible. i mean: > > window.name_set("hello"); > > how do i know name_set() method is operating on an object? gee. it had better > become > > window.object_name_set("hello"); > > or > > window->object_name_set("hello"); > > ok. now i know how it works! > > i'm being a bit snide :) but EFL/EO api *IS* AN OBJECT API. it's the BASIC > REQUIREMENT. they all take an object as parameter. adding object in the api > name is just repeating the information already there. it's like saying we > should name out functions in c > > y = function_malloc(c); > > because how could anyone know this is a function call? it's so confusing... > it's the basic tenet of the system that it IS a function just like the our efl > api it's a basic tenet of the functions that it is a method on an object. the > object is passed as first param. efl_ is the namespace to know that it is this > kind of function. eina_ is a separate namespace thats lower level like > malloc() > is lower level. > > you are used to the efl legacy api's where many exist that don't operate on > objects. that is not the case with eo. even class functions operate on an > object (the class is the object.. classes ARE Eo objects!). > > adding "object" adds NO information, just makes lines longer, more wrapping of > long lines, more typing, more reading, no extra value. > > ESPECIALLY with common things like del, add, ref, unref why type MORE than > needed? it's just a good way to annoy developers after a while. these > essentially are keywords in a language like delete() or "for" or "if" etc. - > efl > is a library but essentially as a FRAMEWORK it kind of defines a language > within its namespace (efl_*) and reality is if we COULD we'd not have the > initial namespace of efl_ref(obj) but make it ref(obj). but we can't we need > at > least a namespace to avoid symbol clashes and that's a hard reality of the > base > language. > >> if efl is all about the high-level end user API (ie: all that the user >> needs to know), then it may work if all is an object. Otherwise people >> may incorrectly assume efl_ref() could be used on an Eina_Binbuf or >> Eina_Stringshare and that won't be the case, even if they are also >> part of EFL. > > it's a different namespace. it's eina_* vs efl_* already... AND the compiler > will tell you because you CANT do this without the compiler giving you a type > mismatch warning (in c and in c++). in dynamic langs this is taken care of at > runtime too. in fact we have pretty much reduced to 2 namespace. eina_ and > efl_ > - efl_ is the object namespace as you describe above. eina_ is lower level > data > structures. i actually think we should consider renaming eina to maybe et_ or > something shorter and different for efl 2.0 just to one api and abi break away > (thats an easy sed operation to fix) and that then allows us to do any little > fixups. i think our lists should work more like arrays/hashes, and copying the > glib list style i think is a bit bad. anyway - long story short.. it would > still be a different namespace and not full efl objects for these. >
I tend to agree with you (that's why I originally did the change like this). Should I go on with this then? Any major objections to this rebuttal? -- Tom. ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. http://sdm.link/zohodev2dev _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel