[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Logo
[translation stuff...]
> This sounds very interesting but I don't know anything about Scheme or
> guilt-gtk.
Scheme is a dialect of Lisp. It's fairly minimalistic. Basically, it is
a simple and reasonably fast language (as interpretted languages
go) that has some similarities to Logo, since Logo is a dialect of
Lisp as well.
Guile is the GNU implementation of Scheme, directed toward being
an extension language, <http://www.gnu.org/software/guile>. One
benefit it has is that It can translate Scheme (and, one would
imagine, translated Logo) into C for some speedup (even though it's
not as fast as normal C code). This could make it possible to write
more significant portions of code in Logo, translating speed-critical
parts to C. I haven't tried this, though, so I'm not sure how well it
works.
[I've also considered that MzScheme/DrScheme might be a better
target...]
Scheme and Logo aren't a perfect match, but I think there's some
advantages in having Scheme-like semantics and a Logo-like
syntax (which is more or less what a translator would do). To do
the translation I gave Logo lexical scoping instead of the traditional
dynamic scoping, which was the biggest change. Most of the time
you wouldn't realize the difference, but it comes up. The now
defunct Object Logo did this, I believe. But I never found much
information on Object Logo, so I don't know quite how they went
about it.
The other significant change I made was that variables were really
variables, so that :VAR isn't equivalent to THING "VAR. And some
other things here and there...
guile-gtk is just the GTK bindings for Guile. They provide a fairly
Scheme-like interface to GTK, which is a close match to what a
Logo-like interface would probably look like. This would
significantly cut down the work required to put graphics into the
language.
> I was thinking of an object logo similar to Starlogo by MIT. Then you could have turtle
> inheritance and so on. It would be a great way to teach object orientation as well since it
> would break down a lot of the terminology into a more naturally understandable form.
I've only used Starlogo a little bit. Admittedly, it was too unfamiliar
and I didn't put enough effort into really figuring out how it all
worked. I should probably try using it some more. The multi-turtle
thing seemed to be its raison d'etre, so I didn't notice if there was
an object-oriented underlayer.
> Couldn't
> we write an embeddable interpreter? A logo interpreter modelled around the way TCL works
> could be interesting. Imagine CGI scripts in logo!
That's one of the things that translating to Guile would allow, more
or less. Guile attempts to replace Tcl in terms of functionality. But
I'm not actually sure how much use it would be.
But CGI scripts are already mostly possible with UCBLogo. All a
CGI has to be able to do is take information from stdin and put it
out to stdout. Making it work nice, and making it accessible to
children is another issue. But that could probably solved within
Logo.
I know somewhere there is a version of Logo which you can embed
in web pages... maybe it's that Java Logo (Turtle Tracks)... but I
feel like it was something else.
> > Another direction to go would be UCBLogo. It is, after all, GPLed
> > and available on Linux. I believe it was originally developed on Unix
> > as well, but that probably doesn't make much of a difference.
>
> I think taking the interpretation code from this program and adding to it would be a good
> idea. Putting a nicer interface on it to make it more accessible to younger ones would be a
> good short term goal and would familiarise with the code.
>
> If you were interested I could draw up some designs for that.
That could be a good direction. It would certainly result in the
fastest results. I haven't looked at the UCBLogo sources before,
so I don't know how easy it would be to work with. If you want to
look at that and report back, that would be great.
> I don't think MSWLogo approaches the GUI stuff very well. I think hatching turtles and turtle
> patches would be better.
What are turtle patches? I haven't heard that term before. And
when you say it doesn't do GUI stuff well, do you mean generating
GUIs from Logo programs, or the GUI that MSWLogo itself uses?
> I think logo is potentially a very impressive and powerful language with some more modern
> extensions to it and it's pretty easy to understand. I would really love to have a good
> development environment based around this for real applications. I think that there could be
> many teachers who may have a basic knowledge of the language who may get into a bit of
> programming - and students as well. We mustn't overlook what students can do to educate
> eachother. Anyway, why should languages like TCL and PERL have all the fame when Turtles are
> much more charismatic!
Yes, I do think Logo has a lot of potential. Lisp without the
parenthesis :-) If you look at Tcl, it's almost exactly like Logo
except with strings instead of lists... but that's incidental.
But it is a niche language. The realm of education is an important
one, but sometimes I wonder if it's bad to make distinctions such
that you get software only useful in an educational context. KidPix
is cute, but the Gimp is so much better... I'd hate to just make a
KidLanguage. Just a concern.
> > Another thing I'd like to see in a Logo for Linux, is a Logo in which
> > you can create something like HyperStudio, instead of a
> > HyperStudio with its embedded HyperLogo. I don't know if
> > UCBLogo is powerful enough for this.
>
> Is hyperstudio like hypercard? Never seen it? Could you elaborate on this so I can
> understand?
I think HyperStudio does come from HyperCard. It's basically a
multimedia presentation program, with a scripting language based
on Logo. The version of Logo they use is pretty wimpy, though
they deserve some credit for using Logo at all.
Anyway, it's very popular here in the US, from what I understand.
In the school district I work it's the only educational program that is
consistently used by all the students.
With a version of Logo that integrated well with other apps and
libraries (like imlib, xanim, Mozilla, and so on) you could perhaps
make something that allowed the integration of these media with
Logo being more than an extension language, but actually at the
core of the system.
--
Ian Bicking <bickiia@earlham.edu>
- Follow-Ups:
- Re: Logo
- From: Malonowa <malonowa@wanadoo.fr>
- References:
- Re: Logo
- From: Malonowa <malonowa@wanadoo.fr>