Mailing list archives : pcb-rnd

ID:3436
From:ge...@igor2.repo.hu
Date:Sat, 12 Oct 2019 08:48:02 +0200 (CEST)
Subject:Re: [pcb-rnd] Why focus on gtk? (was: experimental windows port -
in-reply-to:3435 from Mychaela Falconia <my...@gmail.com>
replies: 3439 from Mychaela Falconia <my...@gmail.com>
Hi Mychaela,
 
On Fri, 11 Oct 2019, Mychaela Falconia wrote:
 
>On 10/11/19, gedau@igor2.repo.hu <gedau@igor2.repo.hu> wrote:
>> (FYI, gtk2 and its dependencies are implemented in about 2 million SLOC,
>> while pcb-rnd with libfawk and scconfig included is about 121k SLOC. So in
>> 2019 it takes about 16x more code to draw buttons on the screen than to
>> have a modular, interactive, graphical scriptable printed circuit board
>> editor)
>
>Now this is the part which I don't understand: why has all of the
>focus been on gtk as opposed to lesstif? As I understand it, when
>pcb-rnd forked off from geda-pcb, the two HIDs (gtk2 and lesstif) had
>equal quality of support, didn't they? Why has the gtk version been
>chosen as the "good" one for pcb-rnd? 
 
Sorry, you are wrong, this has not happened. We did not "choose the gtk 
hid as the good one". We did not abandon the lesstif hid. We do fully 
support the lesstif HID and it did get a lot of upgrades recently. 
Compared to gEDA/pcb, both the gtk HID and the lesstif HID got major 
upgrades and by now they are both rather far away from the original source 
(especially on the DAD API side).
 
There is no special focus on the gtk HID. I am trying to get both the 
lesstif and the gtk HIDs to equal level in functinality and stability. We 
even have a few core features which are currently blocked by waiting for 
the lesstif HID to catch up on some APIs/features (e.g. tree-tables).
 
There is a slight bias: 99% of our users are using the gtk HID so we get 
most of the bug reports and testing on that. 
 
(We used to have an experiment with gtk3+cairo HID for a short time, and 
that showed users were not interested. In other words: given the choice 
between motif and gtk, most users clearly go for gtk; given multiple 
versions of gtk, users are indifferent. Version (being latest/greatest) 
doesn't matter much, but things like rendering speed matters a lot).
 
Now about lesstif. Before we go further into this: there are a lot of 
debugging and development currently looking for developer hours in our 
lesstif HID. Are you willing to invest 4..8 hours a week in that? If so, 
we will have more progress on lesstif. If not, then are you willing to 
invest money in it, paying someone to get those bugs in the lesstif HID 
fixed? If no to both, then I have to ask: what do _you_ do for getting 
more focus on hid_lesstif?
 
If you meant the windows port: lesstif (motif) heavily depends on X11, and 
there's no native X11 support in the windows API. In other words: getting 
motif to work _natively_ on windows is not a cross compilation work, but  
real porting (partial rewrite) of the motif library for windows. If you 
want to spend your time on that, go ahead - I have better things to do, so 
I went for the easier path, which was cross-compiling gtk, since gtk/gdk 
does have explicit, native win32 support.
 
>Igor2 doesn't seem like the kind
>of person who likes to chase after the latest and greatest cool GNU
>thing - instead I see Igor2 as more of a minimalist, using scconfig
>instead of autotools, minimizing other dependencies and all that. So
>if the project prefers to be more minimalist, then why is that gtk2
>monster still the primary and best-supported HID in pcb-rnd and indeed
>in all of ringdove?
 
Yup, I am not interested in the latest/greatest/coolest GNU or GUI thing. 
For me, GUI is a necessary bad in pcb-rnd. You'd be surprised to see how 
much of the actual development/bugfixing of pcb-rnd happens without GUI.
 
The gtk HID is being "best supported" because of user preferences. But 
again: lesstif is equally available, but it gets much less user pull.
 
Availability of the lesstif HID will be true for all ringdove apps: once 
you compile the hidlib with whichever HIDs you prefer, those HIDs will be 
_equally_ available for all ringdove apps. Yes, this means we will 
have a gerber(-and-more) viewer that (also) works on lesstif/motif. 
 
If you want this to happen faster, you'll need to invest developer time 
or money in it.
 
>Why has the opposite decision not been made,
>namely ditching or deprecating gtk and adopting lesstif as the primary
>HID instead? 
 
Sorry, this makes no sense. Please try to stick to facts. There has been 
no decision to ditch or deprecate the lesstif HID. Nor the opposite.
 
Both the gtk2 HID and the lesstif HID work fine, I don't think we would 
deprecate or ditch either of them any time soon. 
 
Due to the (3rd party) libraries under the HIDs, on different systems 
different HIDs may be available. For example you don't want to compile gtk 
on IRIX5.1, so the "de facto primary HID" there is lesstif. And you 
probably don't want to compile motif for windows, so you will tend to use 
gtk there.
 
The only real difference on code level is: at the moment the lesstif HID 
is lagging far behind in some low level functionality. If you want it to 
develop faster, you should invest in it.
 
>Surely lesstif is much lighter and less scary than gtk -
>or is not? This is a real question, I am genuinely trying to
>understand.
 
Absolutely, and some of the API of lesstif is more reasonable than GTK. 
I find the glib objects, glib signals and async parts especially annoying 
in GTK. Some API in lesstif, tho, is PITA; for example implementing a 
new widget is unreasonably complicated.
 
The quest for a simple and stable solution:
 
Long term, I plan to have an SDL2 based HID. (I wanted to have that 
earlier, but other pcb-rnd subprojects took over. Now I see having a 
schematics editor is more critical than having another HID so it gets 
delayed again.) The dependency tree under SDL2 is much smaller than the 
one under GTK, and SDL2 does have native support for a wide variety of 
systems (including X11 and win32).
 
Once the SDL2 based HID will be ready, it will take some time to get 
tested out and get mature. Once that happens, I will declare the SDL2 HID 
as the primary HID. But remember: "primary" only means the most 
recommended, most tested HID. It does not mean we will rush to remove gtk 
or lesstif.
 
HTH,
 
Igor2
 

Reply subtree:
3436 Re: [pcb-rnd] Why focus on gtk? (was: experimental windows port - from ge...@igor2.repo.hu
  3439 Re: [pcb-rnd] Why focus on gtk? (was: experimental windows port - from Mychaela Falconia <my...@gmail.com>
    3440 [pcb-rnd] non-graphical schematics, layout (was: Why focus on gtk?) from John Griessen <jo...@cibolo.com>
      3441 Re: [pcb-rnd] non-graphical schematics, layout (was: Why focus on gtk?) from Mychaela Falconia <my...@gmail.com>
        3442 Re: [pcb-rnd] non-graphical schematics, layout from John Griessen <jo...@cibolo.com>