From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 875FD820A1 for ; Wed, 11 Sep 2013 11:49:57 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of david.mentre@gmail.com) identity=pra; client-ip=209.85.217.173; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="david.mentre@gmail.com"; x-sender="david.mentre@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of david.mentre@gmail.com designates 209.85.217.173 as permitted sender) identity=mailfrom; client-ip=209.85.217.173; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="david.mentre@gmail.com"; x-sender="david.mentre@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-lb0-f173.google.com) identity=helo; client-ip=209.85.217.173; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="david.mentre@gmail.com"; x-sender="postmaster@mail-lb0-f173.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqICAGs7MFLRVdmtlGdsb2JhbABbFoMpUcN9CBYOAQEBAQcLCwkSKoImAQMCQAE4AQMMAQUFCzsfAxIBBQEOAQ0GExSHXAMPDKNNj1iETicNiTkBBQyTfgOOSokukAkYKYFhgmk6 X-IPAS-Result: AqICAGs7MFLRVdmtlGdsb2JhbABbFoMpUcN9CBYOAQEBAQcLCwkSKoImAQMCQAE4AQMMAQUFCzsfAxIBBQEOAQ0GExSHXAMPDKNNj1iETicNiTkBBQyTfgOOSokukAkYKYFhgmk6 X-IronPort-AV: E=Sophos;i="4.90,883,1371074400"; d="scan'208";a="26463477" Received: from mail-lb0-f173.google.com ([209.85.217.173]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 11 Sep 2013 11:49:56 +0200 Received: by mail-lb0-f173.google.com with SMTP id o14so7321163lbi.32 for ; Wed, 11 Sep 2013 02:49:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=wbSragI/S8YQR1G/lDjSxd3YK+tsQC1/PZGrDl0Y4eY=; b=k75hQLTxoWVKoP3ccELtYEc5tdBJ4ThFoQSaTFqDmS5T140iLIOQh17KRTfdV8+f3F VF7vEJgte/4LdqOizUOZY3c+MuwiKF9bclpjScgOxrsotbynHUVB6jofGUCEov/cOwwz BRl5x+nyBoo0NplhAucHo13eNRBn5Ep3ZrWAjEeMnc1tD10ZavB2teqGYnTdGJClHc1X 9iR7LRi86g2JV474qYKogGCdl6bZRjImAAEK/qA3GZReAdomOfIF6ktv9/Ft9gCTk8c/ Vxbs4AzExof7qMb+8LlgCmy25rq/Zit4j+qS/CtD0XHND1mz2O1vmxr2Lferv0lqxXp0 EBkw== X-Received: by 10.152.22.35 with SMTP id a3mr515360laf.45.1378892995924; Wed, 11 Sep 2013 02:49:55 -0700 (PDT) MIME-Version: 1.0 Sender: david.mentre@gmail.com Received: by 10.112.45.108 with HTTP; Wed, 11 Sep 2013 02:49:25 -0700 (PDT) In-Reply-To: <20130911052437.GA9514@notk.org> References: <20130910230928.2d51cd39@atmarama.noip.me> <20130911052437.GA9514@notk.org> From: David MENTRE Date: Wed, 11 Sep 2013 11:49:25 +0200 X-Google-Sender-Auth: uKoV_S7Tm_CtAgZf3U9wsjzu2vQ Message-ID: To: Adrien Nader Cc: Paolo Donadeo , OCaml mailing list Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [Caml-list] OCaml vs Ada and/or GUI options Hello Adrien, 2013/9/11 Adrien Nader : > 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