Why enlightenment?

Pander pander at users.sourceforge.net
Tue Apr 21 13:46:46 CEST 2009


Carsten Haitzler (The Rasterman) wrote:
> On Tue, 21 Apr 2009 12:05:44 +0200 Bram Neijt <bneijt at gmail.com> said:
> 
> i'm going to keep it short as i really dont have time to go into al the details.
> 
> 1. i am not interested in c++. this gets rid of qt, fltk and a bunch of other
> toolkits. i know there are enough devs also not interested in c++.
> 2. this (in terms of major toolkits) gets you down to gtk or "something else".
> 
> so i'll focus on gtk vs efl.
> 
> 1. gtk's theme engine is limited. it is limited by the code that lays out
> widgets. you cannot make a theme have extra padding in a widget. yo cannot add
> layering, text effects or many other things. gtk has no concept of layering
> between widgets. widgets are laid out flat and should/cannot overlap.
> 2. gtk is slower. even just start times. try an app that uses efl and one that
> uses gtk (and that have equivalently complex-looking themes/ui setups). see
> which one pops up your window first. i have gotten it from developers doing
> embedded evices to the point where they laughed at how slow gtk was. once they
> used evas/efl - their apps came up seconds sooner. and efl was playing no
> tricks to get there. even when they played the dlopen() tricks that maemo does
> to launch gtk fast - efl still beat gtk - and it was going the long way around.
> i have, in the meantime added a similar hack to elementary. and it now starts
> even faster. this is anecdotes directly from people using it. their managers
> are pressuring them to get apps to appear instantly. or as instantly as
> possible. they hit a wall with gtk they couldnt - for months, improve. someone
> decided to try efl and suddenly they were incredibly happy and moving forwards
> again. gtk - if you begin to do anything "interesting" with the theme and ui
> (theme engine) becomes pretty slow with redraws. visibly so on a slow old
> device. keep your gtk to "grey bevels" or solid colors with simply looks and it
> goes fine. get fancy and it comes to a crawl.
> 
> 3. gtk has no ability to do blending in, aroudn or between widgets sanely
> because it uses child windows (you would need to introduce compositing to gtk
> or remove all child windows which will break its api)
> 4. try do a ui that INST just plain normal widgets with gtk. see where you get.
> try do "xmms" (winamp etc.). efl drops into this kind of ui seamlessly as it
> provides a canvas as the core drawing layer. making such custom ui;s (which
> many people are rather fond of and make sense in specific cases). try this in
> gtk (to the point of it being easy):
> 
> http://www.rasterman.com/files/wp2.avi
> 
> (i'm not done with it yet).
> 
> 5. rendering. gtk uses cairo. cairo is full of floating point. the samsung 2442
> has NO floating point unit. it's slow as arse without a fpu. many embedded
> systems have no fpu. add to this rendering other than fp.. this means simple
> pixel pushing (blending, scaling, etc.). cairo has a software engine of its own
> - but normally uses xrender. both of these are significantly slower than evas's
> software engine. by more than a factor of 2. doing the same operations. evas
> has an xrender engine. it even once had a cairo engine. here i clocked the
> cairo engine in at being 1/20th the speed of evas's existing software engine.
> evas also has a OpenGL engine, DirectFB, Quartz, win32, wince, (and here in my
> own sources i also have a OpenGLES 2.0 engine - sadnly the 3d GLES chipsets
> i've tested it on simply run at about 1/4 the speed of evas's software
> engine.. on the same platform... so it's awaiting some miracle to make it
> speed up to the point of it being useful). it can render to the FB directly
> (with no x11 involved). flipping between x and fb is a single line of code the
> app selects on init. thus a 1 liner to have your app work in fb to x11.. or both
> even without a single recompile or patch. there's an SDL engine, direct3d,
> memory-buffer renderer direct-draw and even qtopia engine. thats a hell of a
> lot of display targets. you can switch them simply by varying the init line.
> gtk does not go here.
> 
> 6. there are existing meta-object abstraction libraries on top - edje. this
> allows you to define a "complex object" and layout in a data file. it splits
> the look/theme/feel away from the programmer a bit allowing non-programmers to
> generate them. it allows for defining interactions from events (mouse etc.)
> signals (virtual events from the app) and animations. thus you can very easily
> define a more custom layout for an app (eg a whole winamp skin) in a single
> data file... and just load it - place it where you want and "let it go". edje
> handles the rest for you. the animation, interaction and abstractions for
> layout. no - it's not perfect. it has limits. but it's something gtk doesnt
> even vaguely offer. sure you have libglade and to an extent you can begin to do
> some.. but not all. not as easily.
> 
> yes. i am saying it wasn't good enough. i started evas and efl because nothing
> else DID it. and still toolkits are playing catch up. if all you want is your
> usual grey boxy normal widget ui - gtk is fine. but if you want to get
> interesting. if you want do do imaginative things with layout and layering and
> compositing... efl has it. it was built for it. no one stops you from using gtk
> - it still works and is there. you are free to use it if you simply prefer it
> or love it and wont try something else.
> 
> yes. i didnt bring qt in (i eliminated it due to c++ and earlier at the start
> it was eliminated due to licensing).
> 
> now what other major toolkits are there. fltk is pretty minor and most others
> are too so there you are not going to be choosing your toolkit by "popularity"
> as they are all more niche.
> 
> note - i was invited to openmoko so i didnt CHOOSE efl. there was already deep
> interest before i came. i didn't just join then "make it all e".
> 

Carsten,

Thanks that you took the time to explain it more in depth. Could you (or
others) give me some advise ragarding the following. I'm working on an
application that was written by others in PyGTK. I like it because I can
write in Python. Advantage of this GTK application is that I and others
can run it easily on an Ubuntu desktop.

Does something like 'PyEnlightenment' exist? Is this Paroli? If I was to
port the application to Paroli or a 'PyEnlightenment', would it also
work for noob users on desktops, i.e. can such a toolkit be installed
via apt-get from the default Linux distribution repository?

Thanks,

Pander

>> Effectively you are saying "nothing else was good enough". But that is
>> what everybody says when you ask them why they created something, they
>> say "I needed it, and it wasn't there already".
>>
>> Could you be more specific on which features you want, and why other
>> toolkits can not deliver them? Or give an example of where other
>> libraries where just to slow?
>>
>> Bram
>>
>> On Sun, 2009-04-19 at 11:28 +1000, Carsten Haitzler wrote:
>>> On Thu, 16 Apr 2009 17:11:37 +0200 Bram Neijt <bneijt at gmail.com> said:
>>>
>>> as such the choice of enviornment, thanks to it running x, is not limited,
>>> you can use qt, gtk, sdl, fltk etc. e is a window manager - it happens to
>>> also have spawned toolkits that lend themesleves to unique custom ui's and
>>> much more flexibility than the larger toolkits. trust me on this - gtk's
>>> theme system comes courtesy of me - i wrote it years ago. i know how far
>>> you will be able to push gtk (without breaking it and effectively creating
>>> a new incompatible toolkit). qt until a few months ago has a major license
>>> issue - GPL for a library forces ALL apps to effectively be GPL. for the
>>> entire development of gta02 it was GPL. GPL inherently restricts the
>>> freedom of app developers to NOT make software GPL (MIT, BSD< or any other
>>> license they choose). if you chose to ship with a GPL toolkit - then you
>>> limit what app developers can do. so qt was right out (and i know a whole
>>> bunch of developers who simply dont want todo c++ in order to use qt - they
>>> want to use c or something else).
>>>
>>> so gtk has its limits - also i have heard enough complaints of it being
>>> slow - and that is from commercial developers in big electronics houses.
>>> they really are not squeakingly happy with gtk and are hunting for other
>>> solutions. qt had the license problems until a few months ago.
>>>
>>> so what other choices do you have if you have eliminated qt for license
>>> reasons and you think gtk is just not up to snuff and is unlikely to get
>>> there easily without major breaks?
>>>
>>>> True, I expected to like the Freerunner as a phone and thought the whole
>>>> freedom would just be an added bonus. If the phone isn't that good, I
>>>> could always fix small bugs and help out.
>>>>
>>>> However, it turns out that I can't understand the direction the
>>>> mainstream development is going, and with this small community, the bugs
>>>> in other distributions are not small at all.
>>>>
>>>> So I seem have to make a choice: put in allot of time, or stick with a
>>>> product that I can't understand. The last option is just to sell the
>>>> thing before the value drops to much and buy something else.
>>>>
>>>> As you say, choices had to be made and this is it. I don't think I'm
>>>> closer to understanding the reasoning behind choosing for e, but maybe
>>>> this is just an opinion, and we should leave it at that. In the meantime
>>>> I think I'll just have to reset my expectations, and decide what I want
>>>> to do with this phone.
>>>>
>>>> Thank you for your reply.
>>>>
>>>> Bram
>>>>
>>>>
>>>>
>>>> On Thu, 2009-04-16 at 15:02 +0200, arne anka wrote:
>>>>>> So what if the company decided to use that money for something you do
>>>>>> not want to be part of, or you think they are throwing away your money
>>>>>> doing stupid things. Well, I think at that moment you should pawn the
>>>>>> product, not endorse it (maybe even publicly denounce it) and then
>>>>>> find another company or product you can be happy with.
>>>>> that's a constellation you have to cope with in every commercial
>>>>> product (and even in others, too, though you might not measure your
>>>>> investments in terms of money).
>>>>> what's more, with most companies you don't neither have a saying in
>>>>> what the money is spent for nor do you actually get information about
>>>>> what that company plans are at all.
>>>>>
>>>>> the difference with the freerunner is, that you can install what  
>>>>> environment you want and that you are not limited by the decisions the  
>>>>> company makes after you bought.
>>>>> with the amount of freedom available, openmoko as company in question  
>>>>> cannot be supposed to invest in all and every available technology, be
>>>>> it a desktop environment or merely a toolkit, but instead one way has
>>>>> to be chosen.
>>>>> but om having their money on e does not mean, you are forced to use e.
>>>>>
>>>>> if, on the other hand, you demand that you have a saying in what the  
>>>>> company does with your money, clinging to the merely ficitional
>>>>> conception of splitting your money in a part for the actual hardware, a
>>>>> part for development done and a part for development to come -- there
>>>>> won't be many things left you could purchase.
>>>>>
>>>>> btw: that whole question is not at all about e or gtk or qt, but what
>>>>> to expect from a frre device -- and that question in turn has been
>>>>> discussed in extenso already.
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Openmoko community mailing list
>>>>> community at lists.openmoko.org
>>>>> http://lists.openmoko.org/mailman/listinfo/community
>>>>
>>>> _______________________________________________
>>>> Openmoko community mailing list
>>>> community at lists.openmoko.org
>>>> http://lists.openmoko.org/mailman/listinfo/community
>>>>
>>>
>>
>> _______________________________________________
>> Openmoko community mailing list
>> community at lists.openmoko.org
>> http://lists.openmoko.org/mailman/listinfo/community
>>
> 
> 





More information about the community mailing list