Hello,

In the following email, we (Simon and Hisham) will explain why we
decided to create Etk. We will mainly organize the email into two
parts. The first part will explain what we dont like about Ewl, and
the the second part will explain our philosophy.

We have noticed that Ewl lacked (at the time of creating Etk) in the
following departments:
1- Menus:
Ewl menus do not function like one would expect. This is partially due
to an incomplete implementation, and partially to several existing
functionality bugs and unexpected behaviour (no mouse / keyboard
grabs, improper submenu popups requiring mouse clicks, size
calculation problems, and screen location problems; in or off screen).

2- Themeing / Look and Feel:
Ewl tends to re-use a lot of parts for several "similar" tasks but
eventually ends up looking bad. For example, buttons are used for
column headers for trees and for scrollbar drag buttons. Combining
this with a lot of scaling and size calculation problems yields bad
visual results. The entire look and feel of Ewl applications feels
strange and clunky. This has been commented on by the likes of Raster,
Vrln, and several other people. A lot of work needs to go on how Ewl
applications feel and react to and with the user.

3- Alignment, Clipping and Size Calculation:
Labels and buttons are not properly aligned (refer to labels next to
checkboxes or radio buttons). Buttons with an empty label have no height
no height. Simple things like size calculation and clipping for atomic
widgets do not work properly. Resizing any Ewl application is expected
to generate undesired clipping and size calculation (look at
e_util_eap_edit or ewl_test and notice how resizing the window
rigorously causes this).

4. Keyboard Navigation:
Ewl has been missing keyboard navigation and general keybindings that
are normally expected among toolkits. Until recently this has not been
present, we noticed some code about focus / keyboard navigation, but
nothing works so far.

5. Fill policy:
The fill policy system seems to be too complicated and new behaviour
is noticed on a regular basis. This has been shown by the countless
times applications like Entropy had to deal with that and simply
"tried" until something worked the way it should.

6. Tree Widget:
The tree widget needs a serious rewrite. Nathan has recently mentioned
fixing it.  For now, all the rows are composed of several widgets,
including the hidden rows. This means that when you have 3000 items in
the tree, you have over 3000 widgets created, and so thousands of
Evas_Object's created. Evas was not designed to handle so much
objects, even with the widget pool it will not work so well. Ewl's
tree widget insists on maintaining the ability to hold any type of
widget. We disagree with that concept and would rather have our tree
hold only specific types of widgets to allow for extremely optimized
performance.

7. Rewrites:
Ewl has been re-written and patched up for quite a while. With all
those iterations, a lot of extra complication and overhead has been
introduced. What is currently being noticed is that entire widgets are
being re-written from the ground up, or fixed massively. Since all
that effort is being put in, and we already have problems, there's no
reason we this cant all start from scratch and become better.

In regard to our philosophy and why we decided not to fix Ewl, we will
say the following:

We will start with a simple example (the author knows himself) which
we like to call the chocolate example. If someone owned a chocolate
factory and has been producing chocolate for sometime, and one day you
tried his chocolate and didnt really like its taste, or sweetness, or
feel on your tongue, you shouldnt have to eat that particular brand of
chocolate. You shouldnt have to put some more sugar on it, or salt, or
anything else to make his chocolate fit your taste. You do have
several options though. You can make your own chocolate (based on our
own ingedients or his), or simply buy another factory's chocolate.

In that same spirit, we believe that just like Nathan (working on
Ewl), Dan (working on Ewl), Tilman (working on Euphoria), Chaor
(working on Entropy), CodeWarrior (working on Efm), Maxwell (working
on an Ewl based media player) or any other developer in the E
community, we have the right to say that we dont like this current
library or implementation and write a different one. We might write it
purely for the sake of learning how to do so. Others before us have
learned, why dont we look at their work, their good and bad points,
combine it with what we would like to see and how we think things
could be done better, and simply write what it is we want to write?

We wrote Etk because we wanted to learn more about how to write a
toolkit,  because we wanted to do things our way, and because we
believe we can do a pretty good job at it (and our work proves it so
far). If Etk is ever to see the light of day, and it turns out to be a
good toolkit, then we would have done nothing but help the E community
get a solid stable fast toolkit, and if it were to fail, then we would
have tried and learned a lot in the process.

We admit to the mistake of not having discussed this in the open. That
was our mistake, but it was our choice to make, and it was fine with
Raster so we proceeded in that fashion. This does not make it the
right thing to do, for perhaps a discussion could have been better,
but even with a discussion, we were determined to create a new widget
library because our ideas were very far from those used in Ewl. You
dont need to support something just because it was started before you,
there is no mistake in trying on your own.

To conclude, we hope that we have gotten our message through to you
and all those who demanded an explanation about Etk and its creation,
and also hope that both Etk and Ewl can live and develop in harmony in
a positively competitive environment.

Best Regards,

Simon 'MoOm' Treny
Hisham 'CodeWarrior' Mardam Bey


-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.
Get Certified Today * Register for a JBoss Training Course
Free Certification Exam for All Training Attendees Through End of 2005
Visit http://www.jboss.com/services/certification for more information
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to