From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 2D19DBC5B for ; Wed, 24 Nov 2010 00:32:18 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArIBADbe60zUGyoDkWdsb2JhbACiahUBAQEBCQsKBxEDH740hUsEil6DDxo X-IronPort-AV: E=Sophos;i="4.59,244,1288566000"; d="scan'208";a="80816478" Received: from smtp3-g21.free.fr ([212.27.42.3]) by mail2-smtp-roc.national.inria.fr with ESMTP; 24 Nov 2010 00:32:06 +0100 Received: from [192.168.0.10] (unknown [78.192.0.38]) by smtp3-g21.free.fr (Postfix) with ESMTP id 0A466A61DE; Wed, 24 Nov 2010 00:31:59 +0100 (CET) Message-ID: <4CEC4EF0.30805@lexifi.com> Date: Wed, 24 Nov 2010 00:32:00 +0100 From: Alain Frisch User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101027 Lightning/1.0b2 Thunderbird/3.1.6 MIME-Version: 1.0 To: Martin DeMello Cc: OCaml List Subject: Re: [Caml-list] Desktop GUI toolkits - current state of the art? References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; frisch:01 frisch:01 lexifi:01 ocaml:01 lablgtk:01 gtk:01 lablgtk:01 bindings:01 syntax:01 lexifi:01 guis:01 higher-level:01 guis:01 ocaml:01 compiler:01 On 11/23/2010 3:19 PM, Martin DeMello wrote: > What are the actively developed options for writing desktop GUI apps > in OCaml? Anything other than lablgtk2 (which, at least from a brief > look through the examples, looks rather ugly, codewise, compared to, > say, vala or ruby/gtk)? I'll use lablgtk2 in a pinch, but I'm curious > as to whether anyone has been experimenting with toolkit bindings with > an eye towards better syntax and APIs. If you're under Windows, you might be interested in the CSML tool. It allows you to build quite easily your own binding to .Net libraries. The CSML distribution contains an example of a mini-binding to Windows Forms; you can also see that in screenshots: http://www.lexifi.com/csml LexiFi uses CSML to build Windows Forms application, but most of our GUIs are managed by a higher-level layer, not direct calls to Windows Forms. As a matter of fact, we generate most of the GUIs that are intended to show or edit structured values, automatically from OCaml type definitions. We have a few local extensions to the OCaml compiler that makes it easier to build nice APIs for GUI toolkits, with a functional flavor: implicit subtyping and generalized recursion. Hopefully, I'll be able to blog about these extensions and how they are used for GUI programming some day. Alain