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 KAA06260; Fri, 19 Sep 2003 10:01:24 +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 KAA03344 for ; Fri, 19 Sep 2003 10:01:23 +0200 (MET DST) Received: from mf2.bredband.net (mf2.bredband.net [195.54.106.37]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h8J81N510039 for ; Fri, 19 Sep 2003 10:01:23 +0200 (MET DST) Received: from abc.se ([213.113.221.31]) by mf2.bredband.net with ESMTP id <20030919080122.GSV12045.mf2@abc.se> for ; Fri, 19 Sep 2003 10:01:22 +0200 Message-ID: <3F6AB7CB.6020505@abc.se> Date: Fri, 19 Sep 2003 10:01:15 +0200 From: Mattias Waldau User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20030916 X-Accept-Language: en-us, en MIME-Version: 1.0 To: caml-list@pauillac.inria.fr Subject: [Caml-list] Commercial application written in O'Caml: ExcelEverywhere References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Loop: caml-list@inria.fr X-Spam: no; 0.00; mattias:01 waldau:01 mattias:01 waldau:01 $99:99 $149.:99 compiles:01 ocamldebug:01 run-time:01 disadvantage:01 -bits:01 ocamldebug:01 lgpl:01 advisor:99 unicode:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Some of the readers of this list may have noticed that I use the term "commercial" a lot. The reason is that I use Ocaml to create commercial software. ExcelEverywhere is shrink-wrap software. A single license cost $99-$149. All income comes from licenses. Consulting is not a big source of income. Why Ocaml? - When it compiles, it works - If it doesn't work, ocamldebug with back step will find the problem quickly - Very few bugs in the implementation of Ocaml Advantages - Small run-time size and small memory foot-print - Fast enough so that over-optimizations isn't needed. Good practices like using sets instead of lists etc is enough - Runs on Windows 98 and upwards (There are a lot of Windows 98 out there!) Disadvantage - 8-bits strings. UNICODE is needed and the standard for .NET, Java, Ruby... - Few libraries - Even fewer libraries that easily can be used on Win32 In order to reduce Win32-related problems, only the standard distribution and libraries completely written in Ocaml are used. - Few libraries that can be used freely in non-open-source commercial software My wishes - UNICODE - Make ocamldebug print objects by default - More BSD-licensed libraries (LGPL acceptable but not good, search in the archives to see why.) - Do not drop the Win32-support What does ExcelEverywhere do? Good-looking calculating web page from Excel 140 functions supported. No Excel needed on server. Use it for expense report, survey, order forms, reservation forms, employment application, financial advisor, ROI-calculator, engineering. ExcelEverywhere currently exists in 4 flavors: - ExcelEverywhere for HTML Convert it to HTML with embedded JavaScript to handle the calculations. - ExcelEverywhere for Java/JSP Good-looking calculating JSP-page from Excel. Separate JavaBean with full source. - ExcelEverywhere for ASP & ASP.NET Code-behind module in C# and VB.NET for backend-integration. - ExcelEverywhere for Java phones Custom calculators in your mobile phone. Is ExcelEverywhere a commercial success? Not yet. Since October 2002, 500 licenses have been sold. However, marketing is a big cost. Today, developing the application is the easy part, finding customers is much harder and costlier. Do we hire? No, not right now. If you have programmed Ocaml or SML for a few years, speak English, know HTML+JavaScript and either Java or .NET, send me a short email and show me that you are talented. -- Mattias ------------------- 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