From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 92FB4BDCB for ; Sun, 28 Aug 2005 17:37:43 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j7SFbh9x016236 for ; Sun, 28 Aug 2005 17:37:43 +0200 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id RAA18767 for ; Sun, 28 Aug 2005 17:37:42 +0200 (MET DST) Received: from mz2.forethought.net (mzpi4.forethought.net [216.241.36.13]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j7SFbeZG016232 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sun, 28 Aug 2005 17:37:42 +0200 Received: from [216.241.35.41] (helo=[10.0.0.2]) by mz2.forethought.net with esmtp (Exim 4.51) id 1E9PE2-0004lx-On for caml-list@inria.fr; Sun, 28 Aug 2005 09:37:39 -0600 Message-ID: <4311DA63.4010104@havenrock.com> Date: Sun, 28 Aug 2005 09:38:11 -0600 From: Matt Gushee User-Agent: Mozilla Thunderbird 1.0 (X11/20050108) X-Accept-Language: en-us, en MIME-Version: 1.0 To: caml-list@inria.fr Subject: Does LablTk have a future? X-Enigmail-Version: 0.86.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 4311DA47.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 4311DA44.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; labltk:01 labltk:01 ocaml:01 ocaml:01 ocaml's:01 api:01 widget:01 modestly:01 api:01 revive:98 compensated:98 wrote:01 interfaces:01 usable:01 widgets:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 Hello, list members-- I've been thinking about GUI toolkits lately, and particularly Tk. I know there are a lot of people who believe Tk is dead, or should die. Personally, I'm not so sure. If you look at the features of Tk 8.5, and the development roadmap for future versions--perhaps it's too little, too late--but it is clear that the core Tcl/Tk developers are far from giving up. Indeed, they seem lately to have gotten a clue about what is needed to keep Tk a viable GUI toolkit. Regardless of the status of Tk itself, LablTk seems to be going nowhere (note that I am not implying any criticism of the OCaml team--they have other, quite legitimate, priorities). It is poorly documented and is not keeping up with the recent improvements in Tk. Those who try to use it often run into trouble, and have difficulty getting their questions answered. Yet, for whatever reason, it remains the default GUI toolkit for OCaml. I believe that Tk, while certainly not an ideal GUI, is still adequate for many applications, and if the above deficiencies are remedied, could still serve as OCaml's default GUI library for some time to come. And it occurs to me that, having several years' experience with Tk in various forms, and having studied much of the LablTk source code, I am in a position to do several things that might help revive LablTk. My purpose today is to inquire whether there is enough interest in the community to justify any or all of these projects. If there is, I am prepared to work on one or more of them--preferably with collaborators, but alone if necessary. If there is little or no interest, maybe it is time to consider (again) dropping LablTk entirely. Who wants to maintain code that isn't used or usable? 1) A Quick Reference This document would outline (with little or no explanation) the complete LablTk API, including all widget commands and the possible values of all LablTk-specific types. Currently the latter information can only be obtained by digging through the source code. Actually, I wrote a LablTk quick reference some time ago. It may need a bit of work, but no more than a couple of hours, I'm sure. So I *will* do this if there is any interest at all in it. 2) A Book This would be an in-depth tutorial on how to develop useful applications with LablTk. It would assume some programming experience, but it would not require advanced knowledge of OCaml, nor any knowledge of Tcl. I'm thinking to publish both a print edition and an inexpensive electronic edition. Though I need to research the costs a bit more, I believe I can offer the print edition--self-published using Print On Demand--at a reasonable price, comparable to what you pay for programming books at a bookstore (no, I don't hope to get rich off this--just to be modestly compensated for my efforts ;-). 3) A Community-based Modernization Project The idea here is to provide a Tk-based GUI library that is complete and in sync with the latest stable version of Tk. Other features that would be nice to have include (a) support for a few Tcl commands that are not strictly part of Tk, but are useful and commonly used in Tk programs--in particular I'm thinking of the 'after' command; and (b) a framework that allows downstream developers to create custom widgets with interfaces analogous to the builtin widgets. I'm not sure if (b) is feasible or not within the constraints of the OCaml type system--I've tried and failed in the past--but I imagine there's some way to do it. Two other interrelated questions are whether this project should be done in parallel with LablTk or as a replacement, and whether the LablTk API should be preserved or something new designed. But it's probably not necessary to decide these questions immediately. I eagerly await your comments. -- Matt Gushee Englewood, CO, USA