Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: David MENTRE <david.mentre@gmail.com>
To: Jon Harrop <jon@ffconsultancy.com>
Cc: caml-list@yquem.inria.fr
Subject: Feeding the OCaml GUI troll (was: Re: [Caml-list] Does LablTk have a future?)
Date: Wed, 31 Aug 2005 10:48:07 +0200	[thread overview]
Message-ID: <3d13dcfc05083101487092acd5@mail.gmail.com> (raw)
In-Reply-To: <200508302001.58080.jon@ffconsultancy.com>

Hello Jon,

2005/8/30, Jon Harrop <jon@ffconsultancy.com>:
> I had better clarify before continuing. I see two viable approaches here:
> 
> 1. Write OCaml bindings to the native GUIs and then an OCaml wrapper that
> abstracts the nativeness away.
> 
> 2. Write a new widget toolkit designed to render via OpenGL.
> 
> If we do (1) then it will handle skinning and the intersection of the sets of
> functionality of the native GUIs.
> 
> If we do (2) then customisation and skinning will be ignored but you have the
> advantage of real time 2D and 3D graphics.
> 
> Option (2) seems much easier and more useful to me. I've never cared about
> skinning...

Well, in option (1), as somebody else underlined it, it is a lot more
than just skinning. How do you handle i18n and l10n issues? How to
display bidirectionnal languages? How to write Arabic, Hebrew or
Chinese characters? How to take input in Japanese or Tamil? How to
handle copy/paste and drag & drop with other applications of the
platform? Or to print PDF with Arabic and Indian characters in the
same document?

Maybe you don't have those issues for you local market, Jon. But as
soon as you are writting graphical applications to be used worldwide,
those issues are coming out pretty quickly. This is at least a
requirement for my application.

I really fear your under estimate the amount of work needed to
accomplish such a job. And the OCaml community seems pretty fragmented
on this GUI front.

To improve on the situation, I see following options:

 1. improve Labgtk2 documentation and use Gtk2 on all patforms. As our
try on Win32 have shown, compiling Gtk2 on Windows seems pretty
complicated and a moving target, albeit not impossible to do. I don't
know for MacOS X. And Gtk2 behaviour is different on Win32 than native
Win32 applications;

 2. write a *simple* GUI front end, in OCaml, with only simple modules
and/or simple objects. No fancy use of OCaml type system. Stay close
to ML core. Use Labgtk2, native Win32 and MacOS X libraries to render
the GUI. However I don't know the complexity of handling gory details,
like encoding of strings;

 3. (Jon option) write a pure GUI from scratch, in pure OCaml. A
project similar to Qt or WxWidgets for C++. It seems doable to have a
basic GUI but handling all i18n and desktop interoperability issues
seems pretty complicated;

 4. Use Labltk. I can't really comment on it, as I have never used it
and can't say about its graphical behaviour or desktop integration
(copy/paste and drag&drop);

 5. drop OCaml to write GUI. Use other languages (usually C++) to make
front-ends and use OCaml code only as backend, communicating through
sockets or shared memory. Maybe the most viable long term solution.

Personnally, I don't know what decision to take. My current GUI code
is in Lablgtk2 but, as stated in other emails, use of Gtk2 is too
difficult for me. And I don't want to go into another reinvent the
wheel syndrom. (sigh)

Yours,
d.


  parent reply	other threads:[~2005-08-31  8:48 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-28 15:38 Does LablTk have a future? Matt Gushee
     [not found] ` <aefe758210f7fa0b9846b0ea4278cf3a@rouaix.org>
2005-08-28 23:21   ` [Caml-list] " Matt Gushee
2005-08-29 22:33 ` Jon Harrop
2005-08-30  4:39   ` Matt Gushee
2005-08-30 11:39     ` Yaron Minsky
2005-08-30 11:48     ` Jon Harrop
2005-08-30 12:22       ` David MENTRE
2005-08-30 13:45         ` Jon Harrop
2005-08-30 15:47           ` David MENTRE
2005-08-30 16:08             ` Jon Harrop
2005-09-01  4:25               ` Matt Gushee
2005-09-01 11:20                 ` Matt Gushee
2005-09-01 11:26                   ` Matt Gushee
2005-09-01 14:09                 ` Chris Campbell
2005-08-30 16:21           ` Bardur Arantsson
2005-08-30 17:47           ` [Caml-list] " David Thomas
2005-08-30 18:06             ` Tyler Eaves
2005-08-30 19:01             ` Jon Harrop
2005-08-30 22:55               ` Chris Campbell
     [not found]               ` <c22844d10508301553b54841b@mail.gmail.com>
2005-08-30 22:56                 ` Fwd: " Chris Campbell
2005-08-30 23:04                   ` Doug Kirk
2005-08-31  0:08                   ` Fwd: " Jon Harrop
2005-08-31  0:31                     ` Olivier Andrieu
2005-08-31  8:48               ` David MENTRE [this message]
2005-08-31  9:06                 ` Proposal a GUI from Ocamlsdl Christophe Raffalli
2005-08-31 14:39                   ` [Caml-list] " Jon Harrop
2005-09-01 19:27                     ` Nathaniel Gray
2005-08-31 14:27                 ` Feeding the OCaml GUI troll (was: Re: [Caml-list] Does LablTk have a future?) Jon Harrop
2005-09-01  4:49                 ` Feeding the OCaml GUI troll Matt Gushee
2005-09-01 13:15                   ` [Caml-list] " skaller
2005-09-01 13:28                     ` David MENTRE
2005-09-01 13:50                       ` skaller
2005-09-01 14:43                     ` Chris Campbell
2005-09-02  7:40                     ` Ville-Pertti Keinonen
2005-09-02 12:39                       ` skaller
2005-09-03 10:34                         ` Damien Bobillot
2005-09-03 12:30                           ` skaller
2005-09-04 14:08                           ` Richard Jones
2005-09-03 11:10                         ` yoann padioleau
2005-09-03 11:30                           ` Jonathan Roewen
2005-09-03 17:23                           ` Doug Kirk
2005-09-04 14:01                         ` Richard Jones
2005-09-01 19:23                 ` Feeding the OCaml GUI troll (was: Re: [Caml-list] Does LablTk have a future?) Nathaniel Gray
2005-09-01  4:31             ` [Caml-list] Does LablTk have a future? Matt Gushee
2005-09-01  4:17       ` Matt Gushee
2005-09-01 13:25         ` Jon Harrop
2005-08-30  7:16   ` GUI for OCaml (was: Re: [Caml-list] Does LablTk have a future?) David MENTRE
2005-08-30  9:53     ` GUI for OCaml Christophe Raffalli
2005-08-30 10:28       ` [Caml-list] " David MENTRE
2005-08-30 13:04         ` Bünzli Daniel
2005-08-30 17:13         ` David Thomas
2005-08-30 11:18       ` Mark Shinwell
2005-08-30 14:22       ` Jacques Carette
2005-08-30 23:12         ` Pietro Abate
2005-08-30 14:14     ` GUI for OCaml (was: Re: [Caml-list] Does LablTk have a future?) Richard Jones
2005-08-30 15:33       ` mmzeeman
2005-08-30 15:44         ` Jon Harrop
2005-08-30 22:34         ` yoann padioleau
2005-09-01  4:58           ` Matt Gushee
2005-08-30 16:01       ` Jon Harrop
2005-08-30 16:25         ` Chris Campbell
2005-08-30 22:49           ` yoann padioleau
2005-08-30 16:03       ` Chris Campbell
2005-08-30 22:31     ` yoann padioleau
2005-08-31  8:19       ` About Lablgtk2 (was: e: GUI for OCaml) David MENTRE
2005-09-03 11:41         ` yoann padioleau
2005-08-30 17:35   ` [Caml-list] Does LablTk have a future? Olivier Andrieu

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=3d13dcfc05083101487092acd5@mail.gmail.com \
    --to=david.mentre@gmail.com \
    --cc=caml-list@yquem.inria.fr \
    --cc=jon@ffconsultancy.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