From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id OAA10100; Sat, 19 Jul 2003 14:29:30 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id OAA26035 for ; Sat, 19 Jul 2003 14:29:29 +0200 (MET DST) Received: from mwinf0202.wanadoo.fr (smtp7.wanadoo.fr [193.252.22.29]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h6JCTST11368 for ; Sat, 19 Jul 2003 14:29:28 +0200 (MET DST) Received: from ptit-gallu.home.net (AVelizy-112-1-7-160.w81-49.abo.wanadoo.fr [81.49.175.160]) by mwinf0202.wanadoo.fr (SMTP Server) with ESMTP id B8FDAA400159; Sat, 19 Jul 2003 14:29:27 +0200 (CEST) Received: from gallu.home.net ([192.168.0.12] helo=gallu) by ptit-gallu.home.net with smtp (Exim 3.35 #1 (Debian)) id 19dqq3-0006Hg-00; Sat, 19 Jul 2003 14:29:23 +0200 Received: by gallu (sSMTP sendmail emulation); Sat, 19 Jul 2003 14:32:05 +0200 From: "Sylvain LE GALL" Date: Sat, 19 Jul 2003 14:32:05 +0200 To: Chris Clearwater Cc: caml-list@inria.fr Subject: Re: [Caml-list] Roadplan for world domination (or constructive criticism of ocaml facilities) Message-ID: <20030719123205.GB11016@gallu> References: <20030718212114.GA31599@pyramid.twistedmatrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030718212114.GA31599@pyramid.twistedmatrix.com> User-Agent: Mutt/1.5.4i X-Loop: caml-list@inria.fr X-Spam: no; 0.00; gall:01 le-gall:01 caml-list:01 criticism:01 gui:01 toolkits:01 widgets:01 practicality:01 31.:99 mingw:01 msdn:01 pricing:99 binaries:01 ocamlmake:01 python's:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hello, On Fri, Jul 18, 2003 at 04:21:14PM -0500, Chris Clearwater wrote: > I have come across the Ocaml language several months ago and after much > investigation and trial coding I have come to several conclusions. Most > importantly I think Ocaml is a wonderful language to program in. It has all > the features I would expect from a modern language and on top of that it's > compiled native code appears to rival that of C in many areas. It truly is > the language of the future. Well said, you get the essence of the a powerful language, which is ocaml. > Now that I have expressed how much I am growing > to love Ocaml I would like to share with you my initial experiences as a new > user. First I would like to single out some issues that I believe threaten > Ocaml from being taken seriously and then i would like to offer some > solutions that would improve the usability of ocaml greatly. > > - Support on win32 could certainly be much better > - Compiling and distributing Ocaml source is a very delicate process > - There exists much fragmentation among usage of different GUI toolkits > and they are limited to C/C++ conventions. (Is it possible to create your > own custom GTK widgets within ocaml?) > > And without further ado I present to you 10 steps to world domination: > > 1) Support for Ocaml on win32 (both as a development and target enviroment) is > very crucial for the adoption and practicality of Ocaml. For example, look at > the trouble some developers must go through to get their application running > under win32: http://groups.yahoo.com/group/unison-hackers/message/31. > Forutnately this doesn't have to be the case. The mingw32 toolset allow > compilation and linking to be done very similarily to how it is done on Unix. > Also, it enables one to develop win32 apps without shelling out hundeds of > dollars to Microsoft: http://msdn.microsoft.com/visualc/howtobuy/pricing.aspx > I propose mingw32 be made the default compiler/linker for native win32 binaries > (or even drop MSVC support entirely). > > 2) Take the idea of ocamlmklib further to generalize the compilation of both > Ocaml programs and libraries into a module called "Ocamlmake". Also create a > binary of ocamlmake which makes use of the module for command line compiling > and include these in the standard distribution on all platforms. > > 3) Now that we have a easy cross-platform way to compile ocaml applications we > can just distibute our code with Makefiles that call ocamlmake! WRONG. > Makefiles suck. Now we standardize on the idea of an Ocaml "package". Each > package would include in it's toplevel directory a file called setup.ml (This > is starting to resemble python's distutils indeed). setup.ml would make use of > the Ocamlmake module by building a record and passing it to Ocamlmake.setup. > This record might be static or it might be created by self-configuration. > For example, the ocamlsdl package would call sdl-config to retrieve some > compilation flags. You _would_ rather configure in ocaml than "portable shell > script", right? Then to build the application you would execute "ocamlrun > setup.ml build" and "ocamlrun setup.ml install" to install it. Also the record > would contain meta-information such as the author, copyright, etc. > I totally agree. What would be very useful will be a good tool to compile ocaml source ( and C stubs ). But take a look at : http://caml.inria.fr/humps/index_framed_caml.html Section Makefile > 4) Change the ocaml distribution to compile using Ocamlmake :) (except for > bootstrapping if you dont already have a previous version of ocaml installed) > > 5) Create a module called Framebuffer which parallels the primtives found in > OpenGL/DirectX. The Graphics module is close, but the design doesn't match > well with these two APIs (We want hardware acceleration). Implement for each > platform a Framebuffer module (DirectX or OpenGL where available, Xlib or > other native graphics system otherwise). Include this in the standard > distribution. > > 6) Create a cross-platform Event module. Include this in the standard > distribution. > > 7) Create a cross-platform Font module (wrap freetype or create an Ocaml > implementation). Include this in the standard distribution. > > 8) Create a GUI on top of the Framebuffer, Event, and Font modules, > implemented in Ocaml :) Include this in the standard distribution. > As gui : there is lablgtk ( binding of gtk ). As Framebuffer, there is a binding for SDL && OpenGL && Xlib (but i am not sure of this last ). > 9) Now the big payoff, we write a standard Ocaml IDE, to be included with the > Ocaml distribution. It would be well integrated with the distribution. Ocamlmake > module for compiling, the ocaml lexer for syntax highlighting, exporting packages > (setup.ml). This would make it incredably easy to get started creating > cross-platform libraries and modules. Realating to point #1, now a win32 user > need only grab the mingw32 and Ocaml distributions and they are set. They can > even easily export their code to a ocaml package for distribution. Obviously the > benefit extends to all other platforms as well. > Take a look at a project called cameleon, written in ocaml for ocaml... > 10) World domination. > World domination when hundred of fortran, C, C++, cobol, java programmer will loose the castle of programmation ( not yet, and not for the 20 next years ). Regard Sylvain LE GALL ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners