Monday, May 24, 2004

Choosing a dialect ...

Choosing a Lisp dialect to learn is easy. Pick any Lisp or Scheme dialect and some tools and start. So far the best combination of tools in the scheme space is DrScheme which will run on most platforms or for Common Lisp, Get Clisp and configure Emacs + Ilisp. These are by far the easiest ways to start in the free tools space. The commercial vendors offer excellent tools as well like Xanalys Lispworks which is adequate in its cross-platform implementation or Franz Allegro CL which offers excellent tools especially on Windows. The commercial vendors offer trial versions for educational and learning purposes and are good tools.

Choosing a Lisp dialect for commercial development is entirely a different ball game depending on where you are from. There are very few Common Lisp vendors who would qualify as affordable especially for a tiny startup with 2-4 developers. The two major competing folks are the Xanalys people and the Franz people both who have priced their product according to the American and European markets. Xanalys Lispworks Developer Edition starts at USD 900 and allows unlimited production of royalty-free runtimes. If I was in the US, this is extremely competitive and very affordable.

However, the fact is that I sit in India. A friend of mine and I are in the process of developing a product for a particular market segment in my country. The difference of money in terms of USD and INR (Indian Rupees) fluctuates between 43 to 46 Rupees to a Dollar depending on many factors. There is only a certain reasonable amount that I can charge a customer in India for a product to have both a happy customer who sees value in what I deliver and get more customers to find my product attractive enough for them to invest in it.

This really restricts my budget to the open source and free software segment that allows or encourages commercial development. This can also be done with the GPL tools which give a user more freedom, but is very unattractive for developers in a small niche market segment. The BSD or LGPL tools have more freedom for the developer in terms of choice of product licensing but that is another debate altogether.

After reaching the conclusion that we needed free tools for our development, we also needed to reevaluate our need for a Lisp like language and if we could not just go with C, C++, Java or C# like the rest of the world. We even considered Python because it has some strengths that it inherited from Lisp and is very easy to learn. Being a tiny team, starting with two programmers these decisions are easy, because we do not care about what Gartner says and will almost always do exactly the opposite.

All the Lisp and Scheme dialects satisfied our major requirement for the language to have the power to let us manage and modify complex data structures easily by their very nature. My main working platform is an Apple Powerbook with Mac OS X 10.3. My partners is a Debian GNU/Linux machine which runs Windows 98 on one partition but that seldom gets an opportunity to show its face. Most of our clientele will be running Windows. Suggesting that they migrate to Linux/BSD would be unfair to them. For us to invest in newer Windows machines would be a problem because absolutely any expense will eat into our potential profits which at the time of starting is 0 to begin with and negative if you consider programmer time expensive. Our real fun with Lisp is writing macros, for which we were hesitant to move to something else and also familiarity with the language.

I had been exposed to the PLT-Scheme environment via DrScheme and knew it ran well and is reasonably cross-platform. So I decided to investigate the PLT-Scheme family of tools. DrScheme is a fairly usable IDE with Emacs like key-bindings. It has a powerful module system which looks very much like the CL packaging system. It has GUI bindings via MrEd to the wxWindows library. It has an ODBC layer via SrPersist and a lot more. On top of all this, it is distributed with an LGPL license.

Based on our requirements and our restrictive situation, we really welcome the availability of PLT-Scheme. It is certainly an environment that open-source Common Lisp dialects should strive to become both in terms of cross-platform development and libraries. Some commercial Lisp dialects would have suited us beautifully but for their "American" prices. Maybe some people will accuse us of wanting to drive a Ferrari without having the money for it *grin*.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home