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 concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 8359CBB81 for ; Sat, 19 Nov 2005 17:26:50 +0100 (CET) Received: from mailx.valdosta.edu (VO44360.valdosta.edu [168.18.130.251]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jAJGQnkn003479 for ; Sat, 19 Nov 2005 17:26:50 +0100 Received: from blazemail.valdosta.edu (blazemail.valdosta.edu [168.18.130.208]) by mailx.valdosta.edu (8.13.4/8.13.4) with ESMTP id jAJGQkE3003193 for ; Sat, 19 Nov 2005 11:26:46 -0500 (EST) (envelope-from jtbryant@valdosta.edu) Received: from starlight.valdosta.edu (VO00985.valdosta.edu [168.18.148.146]) by blazemail.valdosta.edu (iPlanet Messaging Server 5.2 HotFix 2.04 (built Feb 8 2005)) with ESMTP id <0IQ700ITUN0MA7@blazemail.valdosta.edu> for caml-list@yquem.inria.fr; Sat, 19 Nov 2005 11:26:46 -0500 (EST) Date: Sat, 19 Nov 2005 12:28:01 -0500 From: Jonathan Bryant Subject: Re: Yet another OCaml Webserver?! (was: Re: [Caml-list] Yet another sudoku solver (838 bytes)) In-reply-to: <20051119150931.GB324@first.in-berlin.de> To: caml-list@yquem.inria.fr Reply-To: jtbryant@valdosta.edu Message-id: <1132421280.17170.20.camel@starlight> MIME-version: 1.0 X-Mailer: Ximian Evolution 1.4.5 (1.4.5-17) Content-type: text/plain Content-transfer-encoding: 7BIT References: <20051119150931.GB324@first.in-berlin.de> X-PMX-Version: 5.0.2.153301, Antispam-Engine: 2.0.3.2, Antispam-Data: 2005.11.19.14 X-Miltered: at concorde with ID 437F5249.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 caml-list:01 solver:01 ocaml:01 opensource:01 bindings:01 arity:01 node:01 real-world:01 oliver:01 bandel:01 intern:01 838:98 blown:98 curl:98 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=PLING_QUERY autolearn=disabled version=3.0.3 Although this may sound like a shameless plug, it is not... :) I wholeheartedly agree with your sentiments. Although still within academia, at least ATM, I am part of a group writing a full blown AI/web crawler/search engine in OCaml. I'm implementing a lot of the necessary libraries (Client/Server, Clustering, Protocols, Persistance, etc.) by hand in pure OCaml. Now, maybe I'm just a masochist, but I'm thouroughly enjoying myself while doing it. Also, any of these libraries should make it into the OpenSource world, and are being designed, not as libraries specific to this task, but as general use libraries with clean, clear interfaces and lots of documentation. On the other hand, I will have to admit that there are some times that you need C libraries. Many times, in our project, we are using bindings to an existing library to speed things up until we can go back and hand roll our own. Right now, we're using Curl, BerkeleyDB, and a few others. Also, things like BDB are fast because of C specific features. For example, the B tree is of a certain arity so that reading a "node" involves only 1 disk read. This is possible in OCaml, but extremely difficult, not because of the read size, but because it is difficult to find out the necessary filesystem information. Eventually, we will hand-roll our own, but, since it is already there, we are using it in the interim. Of course, for our web server we're using Apache, but we are writing our CGI scripts in OCaml :). I guess we're considering making a web server. With the aforementioned libraries at our disposal (once they are complete ... :), writing an Apache-killer web server would definitely be very plausable. There's some real-world code, for you. A large scale project in OCaml with minimal use of C libraries that takes advantage of the advanced language features of OCaml. Hope that helps, -- Jonathan On Sat, 2005-11-19 at 10:09, Oliver Bandel wrote: [snip] --Jonathan Bryant jtbryant@valdosta.edu Student Intern Unix System Operations VSU Information Technology "Das Leben ohne Music ist einfach ein Irrtum, eine Strapaze, ein" Exil." ("Life without music is simply an error, a pain, an exile.") --Frederich Nietzsche "The three cardinal values of a programmer are laziness, impatience, and hubris." --Perl Man Page