Gauche is the Scheme I always wanted
I've been looking for a solid, high-performance Scheme implementation for general scripting and systems programming for several years now. I was really happy to find Gauche. It has an extensive library of support functions and binary extensions and great support for SRFIs (Scheme Requests for Implementation -- the "open standards" of the Scheme world).
Most "modern" scripting issues -- networking, XML parsing, text manipulation, Web programming, embedding and extending -- are nicely handled with clean interfaces.
I think that programmers who are looking for top-notch alternative to Python and Perl -- the crowd that is moving to e.g. Ruby and Groovy -- should take a close look at Gauche as a real alternative.
Re: WHAT ??
> It could be useful to compare [feature
> by feature] Gauche vs Guile. That would
> help to choose a right Scheme for the
> right project. Guile was here for
> awhile, why would we need another
> Scheme? Is there anything wrong with
Good point. There's nothing wrong with Guile, but
simply there are some features I needed that
are (or were) not in Guile and was difficult to add
to the existing implementation without changins its design policy.
(1) Native multibyte string handling. I wanted string-ref
(and its corresponding C API) to work correctly on a string that mixes latin and japanese characters. So as read-char. So as regexp.
If it were easy to modify existing implementation to
realize this, I'd done that. What I found was that
the change would affect everywhere in the code. and sometimes it sacrifices the performance, so some users will not want to have it.
(2) Use of Boehm GC. This is also a fundamental design policy issue. Changing this affects everywhere
in the code.
(3) VM architecture. The choice of interpreter engine
greatly affects the interface how C-defined procedure
is called. It is very difficult to change one to the other after you wrote large number of C-defined procedures.
(4) Licensing issue. I'm not anti-GNU, but there are certain cases that I have to avoid GNU-ed code to achieve my goal.
I have certain applications I want to write in Gauche,
and design decisions are made according to that goal.
Those design decisions need not agree with Guile's.
I don't want to reinvent every wheels. I'm trying to
keep the Scheme-level interface compatible to
existing implementations as much as possible, so that
the Scheme modules written in other implementations
can be easily ported to Gauche.
> I would recommend to compare first of
> all the following features: XML
> processing (including XPath and RDF),
Oleg Kiselyov's SXML runs on Gauche. So on Guile.
> integration with web servers (CGI,
> Apache modules, standalone HTTPD),
No standalone httpd, or Apache module.
Simple CGI module is provided, but the API is
> integration with GUI (like GNOME, QT or
> Win32), database API (PostgreSQL,
> MySQL), other communications (CORBA,
> Also, it would be useful to show the
> best and typical applications using
As I mentioned above, I started Gauche
to satisfy the requirements for the applications
I wanted to write. (Writing Scheme implementation
is not my goal; it's just a preparation).
Once Gauche become stable, I'll start writing applications.
Meanwhile, Gauche looks like some 'yet another premature Scheme implementation'.
If you need features like GUI or Database
binding immediately, I don't recommend Gauche.
If you deal with multibyte documents, however,
Gauche may be some use.
Re: WHAT ??
It could be useful to compare [feature by feature] Gauche vs Guile. That would help to choose a right Scheme for the right project. Guile was here for awhile, why would we need another Scheme? Is there anything wrong with Guile?
I would recommend to compare first of all the following features: XML processing (including XPath and RDF), integration with web servers (CGI, Apache modules, standalone HTTPD), integration with GUI (like GNOME, QT or Win32), database API (PostgreSQL, MySQL), other communications (CORBA, SOAP).
Also, it would be useful to show the best and typical applications using Gaucho.
> Somebody please tell me what the HECK is
> What I mean is that how can something
> that most people probably won't
> understand the meaning of, be handy in
> daily work ??
R5RS stands for Revised^5 Report on the Algorithmic Language Scheme",
the "standard" of the Scheme language.
IMHO, handy tools need not be what is obvious to those who are not familiar with it,
although to be so may be a plus. If you're curious, take a look at the following article:
Being popular (www.paulgraham.com/pop...)
Of course, people can have different view.
Somebody please tell me what the HECK is R5RS..
What I mean is that how can something that most people probably won't understand the meaning of, be handy in daily work ??
Software to monitor for open files on your system in real time.
A Perl/XML log analyzer, alerter, and reporter.