Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Best Lisp/Scheme for Windows development?

5 views
Skip to first unread message

Sean SCC

unread,
Aug 15, 2006, 2:57:52 PM8/15/06
to
(Not sure on etiquette but I also posted this in comp.lang.lisp as I
believe it applies equally to both groups.)


After a somewhat long journey that started with me thinking Lisp was a
dead language (why?) I have arrived at the conclusion that I want to
adopt Lisp/Scheme as my new development language/religion ;-)

Lisp appears to me to be somewhat unfriendly to someone developing
under Win32. As much as I would like to develop using SBCL it just
doesn't appear to be practical. I would love some help/advice on which
path to take and for that you will need some idea of my requirements.

1. Windows XP OS. (I may move to Linux some time in the next year or so
- still undecided).
2. Preferably free.
3. Potential to run under Linux with very little or no source code
changes. (See 1.)
4. Numerical and general code execution speed is fairly important to
me.
5. Decent GUI and graphics libraries or easy access to them. I will be
developing a charting package and some animations among other things.
6. Decent sockets + networking + web libraries.
7. Straight forward development environment.
8. Not too concerned about debuggers but a nice-to-have.

My own conclusions so far:

As much as I would like to stay in the "pure" Common Lisp environment
the only option I can see is CLISP and I am almost certain that code
performance (point 4. above) will not be sufficient. From benchmarks I
have seen it appears to me about 5 times slower than the Scheme
alternatives. (of course SBCL is fantastic but not for Win32).

So that leaves me with Scheme. In Scheme there are I think 4
alternatives for me PLT, Bigloo, Gambit and Chicken.

PLT is brilliant for development environment, community, docs,
libraries etc but slooooow.
Gambit is probably a bit too spartan for me but has a lot of potential.
Bigloo and Chicken are very close but...

Chicken wins for me because it is probably only second to PLT in terms
of libraries, community etc. It has apparently about as fast execution
as Bigloo - which is much faster than CLISP and PLT.

So looks like I am a Chicken candidate.

What do people think?

ove...@hotmail.com

unread,
Aug 15, 2006, 4:13:53 PM8/15/06
to
Sean SCC wrote:
> PLT is brilliant for development environment, community, docs,
> libraries etc but slooooow.
> Gambit is probably a bit too spartan for me but has a lot of potential.
> Bigloo and Chicken are very close but...
>
> Chicken wins for me because it is probably only second to PLT in terms
> of libraries, community etc. It has apparently about as fast execution
> as Bigloo - which is much faster than CLISP and PLT.
>
> So looks like I am a Chicken candidate.
>
> What do people think?

Community
---------

Well, I've been using Chicken for a few months now and the first thing
I need to say is that the community are great - very responsive and
friendly. I haven't had such a great experience with the users on this
forum, but that could be down to my own personal approach. It
certainly doesn't give me a good feeling in comparison with other
language communities though and tempts me to try Ocaml or
Smalltalk instead.

Chicken + Windows
-----------------

There are (at least) 3 different possible builds of Chicken on Windows
- MinGW, Cygwin and VC++6. I get the impression that VC++6 is
quite stable, but if you don't have it and want to build Win32
applications then the MinGW build is not in such a good state. To
get the stuff I want working I have a bleeding edge version built
directly out of the source repository which probably means that
my entire development environment is unique. At last, if there
are problems with my program I can blame the compiler! When
I've reported problems to the list, the core developers have been
impressively responsive.

Development Environment
-----------------------

Chicken + Emacs with csi (the chicken interpreter) work fine for my
needs. csi has a number of commands it has for tracing functions
and single stepping through code which I found quite useful.

;; ----

I'm curious to know how you determined the relative speeds of the
various implementations. I've implemented simple stuff in both
PLT and Chicken and they don't seem too far different.

Ian

Brandon J. Van Every

unread,
Aug 15, 2006, 4:56:19 PM8/15/06
to

Sean SCC wrote:
>
> Chicken wins for me because it is probably only second to PLT in terms
> of libraries, community etc. It has apparently about as fast execution
> as Bigloo - which is much faster than CLISP and PLT.
>
> So looks like I am a Chicken candidate.
>
> What do people think?

I think you should go with Chicken, obviously. I work actively on the
following issues:
- Windows build stability and reliability
- OpenGL support
- performance
- game development

I won't tell you that I've nailed all of these. There's a lot of work
left to do before it's the uber enivronment for 3D graphics. But it's
farther along than anything anyone else is offering in open source Lisp
or Scheme land, and I haven't heard of anyone else actively pursuing
these goals.

Currently, the CMake build appears to work everywhere, including all
the various Windows compilers. There's a bug with egg setup on MSVC
and MinGW, a backslash that should be a forward slash because it's for
a URL. The problem is not specific to CMake, it's a general Chicken
problem. I could probably nail this problem in a day if I had the
time; currently I don't. Gotta look for jobs / replenish the money
pump again.

Chicken has just been through 9 months of banging on little details to
make it work consistently on Windows. It did work on Windows before,
more or less, but it was often breaking and not much testing effort was
going into it. This has all changed since I've been banging on MinGW
and MSVC. We've also got John Cowan putting the Cygwin builds through
regular testing, so that covers all the major Windows compilers.
Probably the minor ones will work too, as CMake has targets for them
(Borland, Watcom).

The only other option that seems reasonable to me on Windows is Corman
Lisp at $250. It is not open source, and it only runs on Windows.
Chicken is BSD licensed, runs everywhere, and can be embedded.

SBCL will be reasonable eventually, but it is not now. They need to do
for SBCL what I've been doing for Chicken Scheme, and their job is a
lot harder. If you go the SBCL route on Windows today, it's going to
be a long time before you're productive. I won't be looking at it
myself until 6..12 months from now.

Bigloo still doesn't have the Windows build in its source pool proper.
I find that unacceptable for open source development and getting
traction with Windows developers. I last made note of this a year ago.
I went off and did what needed to be done for Chicken, because I
could. And, Bigloo is GPLed, compared to Chicken's BSD. I might write
my own compiler someday, making Chicken a much better deal.

I've not previously looked at Gambit. It might be a good performance
oriented implementation for all I know; for instance, the homepage
touts a full numeric tower. It doesn't have the community size of
Chicken, with all the extra support and resources that brings. I just
tried building it on MinGW / MSYS; it built and had only 1 warning
about a numerical accuracy problem in "make check." There are 2
different VC++ builds available so effort is being made there. I
didn't check whether those builds work. I don't have an incentive to
pick Gambit over Chicken, but YMMV. The performance or numerical
capabilities would have to be scads better to make it a win.


Cheers,
Brandon Van Every

Eric Hanchrow

unread,
Aug 15, 2006, 4:59:52 PM8/15/06
to
>>>>> "Sean" == Sean SCC <sean....@googlemail.com> writes:

Sean> PLT is brilliant for development environment, community,
Sean> docs, libraries etc but slooooow.

Interesting. My one benchmark (which does lots of bignum
multiplication) shows PLT to be _by far_ the fastest Scheme. (All the
Common Lisps are faster). And I've never found PLT to be particularly
slow for non-numerical stuff, either.

What are you doing that's slow? What version of PLT are you using?

--
... users want control ... [Microsoft's Internet] Explorer
wants them to sit still and shut up.
-- Verlyn Klinkenborg

Eli Barzilay

unread,
Aug 15, 2006, 8:43:33 PM8/15/06
to
"Sean SCC" <sean....@googlemail.com> writes:

> [...]


> PLT is brilliant for development environment, community, docs,
> libraries etc but slooooow.

Which version did you try? Recently, a JIT compiler was added to PLT
Scheme which made a noticeable impact. You can view some preliminary
benchmarks at

http://tmp.barzilay.org/mzbench.html

-- comparing mzscheme to a few other Scheme compilers, as well as a
few different flavors of mzscheme. (But this is all based on the
current version in svn -- there is no comparison of different PLT
versions.)

--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!

Edu

unread,
Aug 19, 2006, 12:37:38 AM8/19/06
to

Sean SCC escreveu:

> (Not sure on etiquette but I also posted this in comp.lang.lisp as I
> believe it applies equally to both groups.)
>
>
> After a somewhat long journey that started with me thinking Lisp was a
> dead language (why?) I have arrived at the conclusion that I want to
> adopt Lisp/Scheme as my new development language/religion ;-)
>

>


> So looks like I am a Chicken candidate.
>
> What do people think?

I think that Chicken is great, and I am a Chicken candidate too.
However, I strongly recommend that you take a careful look at Bigloo. I
wrote a few large programs both in Chicken and in Bigloo, and found out
that Bigloo is at least twice as fast. Besides this, it has a very
nice optional compile time type checking that really helps with error
detection. It has perfect integration with C, Java and dotNet, which
makes recycling of lagacy libraries straightforward. As for GUI, well
Peter van Eerten and I are working on a Bigloo GUI based on Peter's
GTK-server. It is already working, and tested. It works fine on Windows
(with MinGW), and Linux. If you want a copy of it, with documentation
(for Windows), please, let me know. My email address is
edu5...@yahoo.com. By the way, in a large program, Bigloo does not
drag far behind C or other procedural language.

William D Clinger

unread,
Aug 19, 2006, 12:18:16 PM8/19/06
to
Eric Hanchrow wrote:
> Interesting. My one benchmark (which does lots of bignum
> multiplication) shows PLT to be _by far_ the fastest Scheme.

Performance on bignum benchmarks is almost uncorrelated
with performance on most other benchmarks. That's because
they measure the performance of one tiny corner of a system.

When I computed (fact 1000) and (fact 10000) on a couple of
different machines (Sparc and IA32), both MIT Scheme and
Chez Scheme were faster than MzScheme. As noted above,
this doesn't mean much.

Will

0 new messages