From: David MENTRE <dmentre@linux-france.org>
To: Adrien Nader <adrien@notk.org>
Cc: Paolo Donadeo <p.donadeo@gmail.com>,
OCaml mailing list <caml-list@inria.fr>
Subject: Re: [Caml-list] OCaml vs Ada and/or GUI options
Date: Wed, 11 Sep 2013 11:49:25 +0200 [thread overview]
Message-ID: <CAC3Lx=b6Ty-a=Su-cw6PWA9ad0=p6H=McfuC4a8d_MeSHwsb1Q@mail.gmail.com> (raw)
In-Reply-To: <20130911052437.GA9514@notk.org>
Hello Adrien,
2013/9/11 Adrien Nader <adrien@notk.org>:
> I'm trying to get a list of things that people find bad in (labl)gtk.
> Would you be able to put clear words on what you dislike?
From past experiment, GUI of demexp OCaml application
(http://www.linux-france.org/~dmentre/demexp/latest-src/demexp-book-0.8.2.pdf
, look at part IV p. 90), about 5-8 years ago:
1. Lack of documentation. LablGTK doc says "look at C GTK doc". But
the lablgtk binding changes things compared to the C API, so this not
a one-to-one mapping neither. And the "obvious" changes weren't so
obvious to me. A tutorial made by a Korean guy IIRC helped a lot;
2. Verbosity of GTK: it takes a lot of code to put 2 buttons
together (probably not GTK specific). At one point I used the GTK
graphical tool (can't remember its name) to design the GUI graphically
and load it into OCaml as XML file. It improved a lot my productivity;
3. As other said, GTK is dead end: bad support of non-Linux
platforms, not a lot of developers, etc. It was very difficult to get
my labgtk application working on Windows. A windows developer helped
me a lot: picking the good versions of libraries, solve Windows
specific issues, etc. I couldn't have compiled my OCaml GTK GUI on
Windows without him.
4. The use of callbacks everywhere looks to me like writing
spaghetti code. I still hope somebody will write an
API/Framework/whatever were one writes declaratively how the GUI
should react and interact with application code, and all the needed
code is generated automatically. Adobe had such a tool at one point
for its internal use (i.e. for its applications). I don't know if
reactive approaches would help in that regard.
To answer original Gour question: I don't think anything in the OCaml
world fits the bill (safe, available at long term, documented, big
user community, ...). Should I do the same thing, I would write the
GUI as an external process (probably in C++ Qt) and use a
communication protocol to control it from my OCaml program. Or maybe
use the binding with Tk, if the graphical aspect has improved.
I still hope that somebody will propose a sane environment to write
GUI apps. :-)
Best regards,
david
next prev parent reply other threads:[~2013-09-11 9:49 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-10 21:09 Gour
2013-09-10 21:38 ` Paolo Donadeo
2013-09-11 5:24 ` Adrien Nader
2013-09-11 7:21 ` Kakadu
2013-09-11 8:21 ` [Caml-list] " Gour
2013-09-11 8:14 ` Gour
2013-09-11 18:17 ` Adrien Nader
2013-09-11 19:31 ` Gour
2013-09-11 19:53 ` Adrien Nader
2013-09-11 20:41 ` Gour
2013-09-11 21:01 ` Adrien Nader
2013-09-12 5:44 ` Gour
2013-09-12 6:31 ` Adrien Nader
2013-09-12 5:36 ` Gour
2013-09-12 6:48 ` Adrien Nader
2013-09-12 7:26 ` Gour
2013-09-11 20:06 ` Jon Harrop
2013-09-11 20:48 ` Anthony Tavener
2013-09-11 21:04 ` Adrien Nader
2013-09-12 14:40 ` [Caml-list] " Jon Harrop
2013-09-12 14:51 ` Alain Frisch
2013-09-12 14:57 ` Lukasz Stafiniak
2013-09-12 15:04 ` Alain Frisch
2013-09-14 3:05 ` Jon Harrop
2013-09-14 7:10 ` Kakadu
2013-09-14 11:37 ` Jon Harrop
2013-09-15 8:32 ` Kakadu
2013-09-14 23:51 ` Francois¡¡Charles Matthieu¡¡Berenger
2013-09-11 22:17 ` [Caml-list] " Richard W.M. Jones
2013-09-12 13:49 ` [Caml-list] " Jon Harrop
2013-09-12 13:58 ` Richard W.M. Jones
2013-09-11 9:49 ` David MENTRE [this message]
2013-09-11 10:14 ` Kakadu
2013-09-11 15:21 ` David MENTRE
2013-09-12 1:31 ` Francois Berenger
2013-09-11 18:43 ` Adrien Nader
2013-09-11 18:36 ` Adrien Nader
2013-09-11 19:34 ` [Caml-list] " Gour
2013-09-11 19:45 ` Adrien Nader
2013-09-11 22:06 ` [Caml-list] " Jacques Garrigue
2013-09-12 3:25 ` Ivan Gotovchits
2013-09-12 6:41 ` Adrien Nader
2013-09-12 11:49 ` Gerd Stolpmann
2013-09-11 19:17 ` [Caml-list] " Gour
2013-09-11 22:03 ` [Caml-list] " Jacques Garrigue
2013-09-12 8:16 ` Alain Frisch
2013-09-11 12:26 ` Jon Harrop
2013-09-11 18:48 ` Adrien Nader
2013-09-11 13:22 ` Paolo Donadeo
2013-09-11 13:33 ` Kakadu
2013-09-11 14:09 ` Paolo Donadeo
2013-09-11 19:36 ` Jon Harrop
2013-09-11 19:45 ` [Caml-list] " Gour
2013-09-12 12:55 ` [Caml-list] " Jon Harrop
2013-09-11 18:57 ` Adrien Nader
2013-09-11 19:01 ` Rudi Grinberg
2013-09-11 19:15 ` Adrien Nader
2013-09-11 8:10 ` [Caml-list] " Gour
2013-09-11 1:00 ` [Caml-list] " Francois Berenger
2013-09-11 5:07 ` rixed
2013-09-11 8:26 ` [Caml-list] " Gour
2013-09-11 9:23 ` rixed
2013-09-11 12:54 ` Leo White
2013-09-11 12:59 ` Gour
2013-09-11 19:06 ` Adrien Nader
2013-09-11 8:16 ` Gour
2013-09-11 9:00 ` Francois Berenger
2013-09-11 19:19 ` Gour
2013-11-17 20:12 ` [Caml-list] " Gour
2013-09-11 7:38 ` Gabriel Kerneis
2013-09-11 8:20 ` [Caml-list] " Gour
2013-09-11 11:42 ` Gerd Stolpmann
2013-09-18 11:42 ` [Caml-list] " Gour
2013-09-18 12:24 ` Gerd Stolpmann
2013-09-20 4:47 ` Gour
2013-09-19 8:11 ` Alain Frisch
2013-09-19 8:30 ` Daniel Bünzli
2013-09-19 8:47 ` Andreas Rossberg
2013-09-20 4:51 ` Gour
2013-09-20 12:04 ` Gerd Stolpmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAC3Lx=b6Ty-a=Su-cw6PWA9ad0=p6H=McfuC4a8d_MeSHwsb1Q@mail.gmail.com' \
--to=dmentre@linux-france.org \
--cc=adrien@notk.org \
--cc=caml-list@inria.fr \
--cc=p.donadeo@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox