I'm not convinced though:
I finally posted this entry after reading Kent Pitman's second set of interview responses on slashdot: his comments to question 14 are relevant here.
5 Nov 2001 (updated 5 Nov 2001 at 15:21 UTC) »
What irritates me is that the way Guile does scsh-like functionality is quite different to the way scsh does it, and so one can't write portable code there. And each dialect of scheme has it's own, incompatible exception mechanism, and different, incompatible module system, and different incompatible structure generation facility.
There's convergence in terms of functionality, but not in terms of the actually invocations the user makes. I like the kernel of scheme much more than I like these other languages. I guess (i) a SRFI covering the generation of C stub files and (ii) ports of scsh functionality would cover most of what bothered me in my last diary entry.
1 Nov 2001 (updated 6 Feb 2002 at 13:10 UTC) »
On the other hand, all of these mechanisms are corrected in a number of good scheme implementations, but... not in the same way in each, so each implementation in effect describes a new dialect of scheme, and each has strengths that I really would want from my main programming language, but lacks others.
- Scsh is 9/10ths of the way to being a total Perl replacement (closer than python, IMO) with one of the truly thought through ways of mapping a higher-typed language onto UNIX, but fails on three crucial points: no easy way of making `wrappers' for C libraries, no shared objects, and a perceptible initialisation time. I use scsh as my other programming language (Java I guess is my main language).
- Scheme->C has great ability to interface to C, and share objects, but lacks both the `scriptability' of scsh, and the good interface to the common things one wants to do with the language.
- And then there's Stalin: one of the truly great compiler implementations, but in a dialect of Scheme that is, of course, incompatible with either of the above for anything that one want's to do in systems programming (like open a file and reading it 8 bits at a time). Nice performance: I was at a talk of Siskind's where he described how for some scheme reimplementations of the BSD utilities he got performance between 4 and 6 times faster than the gcc-generated executables of the C originals.
- Kawa looks great, but of course, doesn't have standard libraries (it uses the Java platform for all its library needs) and doesn't have the option to run off of the JVM platform.
There's the SRFI process, which aims at filling in this gap with an IETF-like procedure, but it doesn't have the backing of the whole scheme community: Siskind was very rude about it, I think out of ignorance of what the RFI process is, but the effect is just as bad. Does anybody else find this situation sad? Does anyone else actually use (R4RS/IEEE1178-compliant) scheme for practical programming?
Postscript (Wed 06/02/2002): Looking back over old USENET posts, I found this classic contribution from Olin Shivers. While the above still stands, it's really remarkable what progress has been made in the scheme world since Olin said that.
On the other hand it is good to see that at least a few people see there is a problem. I think one reason for the relatively unenthusiatic adoption of GNU CLASSPATH is the unclear licensing around it: instead of the reasonably well-understood LGPL license, it is mostly licensed under a special GPL-with-exception, whic pretty much amounts to LGPL, but the differences appear nowhere to be made perfectly clear. Anyone who remembers the GNU crusade against KDE will justifiably be suspicious.
8 Oct 2001 (updated 8 Oct 2001 at 20:47 UTC) »
Hope it gets answered, instead of the dumb questions that usually get moderated up.
gstein: Congratulations on getting (i) married and (ii) Subversion self-hosting.
8 Oct 2001 (updated 8 Oct 2001 at 11:01 UTC) »
I still don't like the operation at an emotional level. I'd be happier if some or all of the following happened:
4 Oct 2001 (updated 28 Oct 2009 at 12:29 UTC) »
On the other hand I think the Joy folk don't mention well known antecedent work. The pages on language concepts don't mention Forth or Postscript, and they don't mention work on stack-based implementations of combinator languages (Curien's work on categorical combinators is important here: incidentally the CAM --categorical abstract machine-- was a forerunner of the current implementation of Ocaml, the language maelstrom mentioned). I find this bad scholarship, and I think a desire on the part of the authors to look more original than they are might lie behind it.
W3C and opensource: I find it scary that the larger open source community (OSC) doesn't find out about important consultations like the W3C patent until a few days before the deadline. It is pathetic and embarassing, it makes the OSC look like a bunch of kids and it will hurt. I hope we get better at this. BTW, for UK advogato members, did anyone respond to the government's consultation last year on patenting IP?
1 Oct 2001 (updated 1 Oct 2001 at 12:53 UTC) »
Open source Java projects: I'm putting together a project proposal to migrate a Sun JVM system to a separate JNI client using swing and a backend based on the gcj CNI to do heavy duty processing work. It's fun to be able to apply ingenious open source technologies to one's work
I only just saw the Slashdot interview with Miguel de Igaza. Just look at what he says the Mono project must do:
Let's call the target platform of the GCJ compiler Java/CNI (Java C native interface). The existence of Java/CNI makes doing the equivalent in Java of the first two of these three things very much easier than developing it all from scratch as Mono must do. The CLI run time and Java compiler exist already. Even the third point is well-developed, due the the GNU CLASSPATH and GNU CLASSPATH Extensions projects (now merged with gcc), though there is hard work here: Java/Mono would need an implementation of the Swing classes on Gtk+ (or, heretical thought, Qt).
If Miguel *must* sell his soul to Microsoft, at least he should get something worthwhile for his sacrifice. Since the true-GNU java based alternative is already so developed, I don't see the point.
28 Sep 2001 (updated 6 Feb 2002 at 12:39 UTC) »
GCJ and Java: I'm thinking about a new project, splitting up a graph transformation engine written in Java to a UI part and a server part, allowing the Swing-less server part to be compiled with the new GCJ compiler (part of gcc 3.0; gcc is a really impressive achievement) to native code. I wonder if anyone has experience of similar projects. I wonder also if GCJ makes Java more interesting to open source developers?
Ironic postscript (06-02-2002): I see that Bush does have ideas about `resolving' the crisis in Iraq...
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!