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 nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id BA279BB83 for ; Sat, 19 Aug 2006 03:24:39 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.6/8.13.6) with ESMTP id k7J1OdIY002223 for ; Sat, 19 Aug 2006 03:24:39 +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 DAA23307 for ; Sat, 19 Aug 2006 03:24:39 +0200 (MET DST) Received: from imail2.gazeta.pl ([193.42.231.144]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id k7J1OcvQ022724 for ; Sat, 19 Aug 2006 03:24:38 +0200 Received: from poczta.gazeta.pl (unverified [194.149.231.60]) by (imail2.gazeta.pl) with ESMTP id 43552724 for ; Sat, 19 Aug 2006 03:24:18 +0300 Received: from xn--led-hdas.ip.pop.e-wro.net.pl (unverified [82.143.133.100]) by mailis01.gazeta.pl (mailis01.gazeta.pl) with ESMTP id 6663864 for ; Sat, 19 Aug 2006 03:24:18 +0200 Date: Sat, 19 Aug 2006 03:24:02 +0200 To: caml-list@inria.fr Subject: making ocaml mainstream From: "Tomasz Jamroszczak" Organization: =?iso-8859-2?Q?kraina_deszczowc=F3w?= Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Message-ID: User-Agent: Opera Mail/9.01 (Win32) X-IP-stats: Incoming Outgoing Last 0, First 265, in=17051191, out=107, spam=0 Known=true X-External-IP: 194.149.231.60 X-Miltered: at concorde with ID 44E66856.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 tomasz:01 ocaml:01 ocamldebug:01 cygwin:01 cygwin:01 ocaml's:01 emacs:01 vim:01 vim:01 debugger:01 ocaml's:01 grammar:01 non-trivial:01 grammar: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 I've been playing for a second time with Ocaml for a time now and I've got some insights in what could make the language more popular. First of all, it's potential target is severly limited by some facts that are maybe transparent for ocaml developers, but are cruicial for newcomers. It is really usable only under Linux. I.e. ocamldebug (which is basic programming tool) needs a big clumsy cygwin to work in Windows, and you can be sure that two thirds of programmers, had, have and will have configuration and maintanability problems with Cygwin. More severe flaw is that OCaml's workable only under Emacs. Well, there is something like wowcamldebug for vim, but vim ain't that popular either[*]. That means that OCaml looses 90% of potential community due to immaterial problems. Immaterial from point of view of the language architecture, but not from point of view of it's health. But it's not a question of making IDE nur fur OCaml. It's rather about making hilighter, indent, helpfile and debugger into the most popular IDEs, with the most prominent of them VS.NET. Because of MSDNAA, young developers have decent tool for free and putting OCaml into Visual Studio, comforting to habbits of them, is the right thing to do. Because the most valuable and easy to obtain for the greater glory of OCaml community - are these MSDNAA-involved greenhorns. Another stuff is that OCaml has this feeling of beeing a language of choice for pointy-headed geeks and thus simply too hard to grasp for an ordinary keyboard basher. The feeling can be changed (with a lot of advocacy and marketing), because you can write programs in "Java style", and it doesn't require a lot of learning. OCaml is fun and it's easy. And then it's new and it's powerful. That's anything marketing guys have to say (see http://www.cabochon.com/~stevey/blog-rants/bambi-meets-godzilla.html and other marketing-related rants). We should also take closer look on the libraries. Diversity is good. But if two libraries are covering the same field, it's dreadful. They're fighting each other, the development is split between them and thus - in such a small community as OCaml's is - too small to maintain and develop, and at the end projects are abadoned. But this is not the main pain in the libraries' world. More grim is the fact that when programmer (not necessairly new to OCaml) wants some functionality spots two similar libraries, he has to make a choise. And it's a Bad Thing(TM), because he has to either pick randomly and hope for his good luck, or he's to spend some time with both, which is mainly wasted time. Moreover, it feels like struggling with the language. Mind C++ which after phase of decline, has been given boost library - huge one, but single library which status is something like "non-standarized standard library". Oh, and F# is not a good way to go. F# won't be identical to Ocaml, and all we know what Babel tower of Lisps feels like. This together with initial configuration, beeing up-to-date - generally maintainng ones workspace - prevents a hot-headed newcomer from developing working code. Instead of forming ideas developer has in his mind, he's beeing made to bend his neck to "proper" set of tools in order to comfort to the language. While the grammar, standard library, fast object code and so on are in a deep shadow of all these workshop things. The learning curve for OCaml, including setting up environment, should be as flat, as possible. The best in this matter is TCL, which has basicly one language vendor for Windows, it's already present in standard Linux distribution, and after a three hours from the beginning of installation, you can write non-trivial programs; and after a week with TCL you feel like fish swimming in the water. This is unreachable for OCaml of course, because TCL has the smallest grammar ever while OCaml's is quite complex, but nevertheless the installation part (including cygwin instalation and emacs learning) should be shortened, and some "OCaml subset for C++/Python/Java handbook" with subtitle "Creative fun" should be released at O'Reily. [*] There's QT-based Camelia simplified IDE, I've got to give it a try. tj.