LOGO

From OLPC

(Difference between revisions)
Jump to: navigation, search
(+Translation for a page linked from the static laptop.org site)
(External Links)
 
(40 intermediate revisions not shown)
Line 1: Line 1:
 +
<center>''for OLPC logos and web badges, see [[OLPC logo]] and [[badges]]''</center>
{{ Translations }} <!-- This page is referenced from http://www.laptop.org/laptop/software/specs.shtml page -->
{{ Translations }} <!-- This page is referenced from http://www.laptop.org/laptop/software/specs.shtml page -->
-
A powerful programming language built to be easy for children to use. [http://www.terrapinlogo.com/why-use-logo.php Logo] is essentially a dialect of LISP without the parentheses that traditional LISP requires. It has been implemented in many versions including Brian Harvey's UCBLogo and the multimedia authoring toolkit Hyperstudio. (A bit of Logo history can be found here: https://logothings.wikispaces.com/.)
+
A powerful programming language built to be easy for children to use, conceived by [[Seymour Papert]] in 1966. [http://www.terrapinlogo.com/why-use-logo.php Logo] is essentially a dialect of [[LISP]] without the parentheses that traditional LISP requires. It has been implemented in many versions including Brian Harvey's UCBLogo and the multimedia authoring toolkit Hyperstudio. (A bit of Logo history can be found here: http://logothings.wikispaces.com/.)
-
Sometimes there is confusion between the [http://www.cs.berkeley.edu/~bh/usermanual full-fledged programming language] and the graphics module that implements [http://mondragon.angeltowns.net/paradiso/GaleriaGT.html turtle graphics].
+
Sometimes there is confusion between the [http://www.cs.berkeley.edu/~bh/usermanual full-fledged programming language] and the graphics module that implements [http://neoparaiso.com/logo/galeria-graficos-de-tortuga.html turtle graphics].
There are lessons to be learned in all of these systems if OLPC application developers wish to stand on the shoulders of giants rather than reinvent the wheel. It can be considered one of the [[Predecessors of OLPC]].
There are lessons to be learned in all of these systems if OLPC application developers wish to stand on the shoulders of giants rather than reinvent the wheel. It can be considered one of the [[Predecessors of OLPC]].
To see the broad scope of this software around the world look at the ''In other languages'' section of the [http://en.wikipedia.org/wiki/Logo_programming_language Wikipedia]
To see the broad scope of this software around the world look at the ''In other languages'' section of the [http://en.wikipedia.org/wiki/Logo_programming_language Wikipedia]
 +
 +
==XO activities==
 +
LOGO, LOGO-inspired, and turtle-graphics activities for the XO:
 +
*[[Turtle Art]] is in the G1G1 [[Activity group]]. It is a visual programming language with snap-together elements. The programs control a turtle, but lack parameters and data structures (lists).
 +
*[[Etoys]] is in the G1G1 [[Activity group]]. Inspired by LOGO, it includes turtle-like cars and things.
 +
*[[Scratch]] is in the G1G1 [[Activity group]].  It is an easy-to-learn, multimedia programming language to create interactive animations, stories, and games
 +
*[[Python]] is part of the XO system software, allowing installation of [[PyoLogo]], [[PyLogo]], or [http://ada.rg16.asn-wien.ac.at/~python/xturtle/ xturtle.py] (see below)
 +
*[[Loggerhead]] is a software idea, with many of the concepts already implemented in the above software.
 +
*'''[[Berkeley Logo]] is available for the XO''' with the new GUI! Not fully Sugarized (uses real files instead of the journal, etc.). It can be translated (without recompilation) to languages that have their character sets in 1-byte encodings. It was been translated to Spanish ([http://neoparaiso.com/logoes/ LogoES]). The only essential work needed is to add support for [[OLPC_Python_Environment|GTK]] I/O which is a relatively simple task.  UCBLogo was written with the constraints of 640k PCs in mind, so it's very small.  It's a basically old-fashioned Logo, programmed in text, one turtle &mdash; like you had on your Apple II, only more memory and better debugging support.
==Alternatives==
==Alternatives==
-
;LogoWiki : http://www.logowiki.net
+
;LogoWiki : http://www.logowiki.net (site is gone) [http://web.archive.org/web/20061006023641/http://www.logowiki.net/ web archive]
-
Recently developed by Alan Kay and friends. Built on top of JavaScript.  
+
Recently developed by Alan Kay and friends. Built on top of JavaScript.
 +
;Curly Logo : http://www.amberfrog.com/logo/
 +
Another JavaScript logo implementation, requiring SVG support in the browser. It has already been tested on the laptop in [[xulrunner]].
 +
;Papert : http://code.google.com/p/papert/
 +
Yet another JavaScript logo implementation that runs in the browser.
;xturtle.py:http://ada.rg16.asn-wien.ac.at/~python/xturtle/
;xturtle.py:http://ada.rg16.asn-wien.ac.at/~python/xturtle/
xturtle.py is a new turtle graphics module, which could (or should?) replace the old turtle.py&mdash;if not in python's standard distribution, then at least in practical work.  
xturtle.py is a new turtle graphics module, which could (or should?) replace the old turtle.py&mdash;if not in python's standard distribution, then at least in practical work.  
-
;Logo inside Flash (in Spanish): http://mondragon.angeltowns.net/paradiso/LogoFlash.html
+
;Logo inside Flash (in Spanish): http://neoparaiso.com/logo/logo-flash.html
It can't save procedures from session to session but it doesn't need to be installed (which is sometimes forbidden in school computer labs).  Probably saving of sessions could be implemented given a server-side piece to communicate with.
It can't save procedures from session to session but it doesn't need to be installed (which is sometimes forbidden in school computer labs).  Probably saving of sessions could be implemented given a server-side piece to communicate with.
-
;PyLogo : http://pylogo.org/PyLogo.html
+
;PyLogo : [[PyLogo]] ([http://pylogo.org/PyLogo.html homepage])
Works under Python (which, it seems, will be a given in the laptop).  A fairly traditional Logo implementation, but without much of a GUI (maybe useful with xturtle)  
Works under Python (which, it seems, will be a given in the laptop).  A fairly traditional Logo implementation, but without much of a GUI (maybe useful with xturtle)  
;PyoLogo : [[PyoLogo]]
;PyoLogo : [[PyoLogo]]
-
;Scratch : http://llk.media.mit.edu/projects/summaries/scratch.shtml
 
-
Runs under [[Squeak]].
 
;UCBLogo : http://www.cs.berkeley.edu/~bh/logo.html
;UCBLogo : http://www.cs.berkeley.edu/~bh/logo.html
-
Needs a better GUI (Brian Harvey is working on one, but he is working on it alone and as a hobby. He wrote [http://groups.google.com/group/comp.lang.logo/msg/1b5bb9a540b9b748 this message] about it. He said he might have it ready by fall). It can be translated (without recompilation) to languages that have their character sets in 1-byte encodings. It was been translated to Spanish ([http://mondragon.angeltowns.net/logoes/ LogoES]). The only essential work needed is to add support for [[OLPC_Python_Environment|GTK]] I/O which is a relatively simple task.  UCBLogo was written with the constraints of 640k PCs in mind, so it's very small.  ([http://laguna.fmedic.unam.mx/~daniel/glogo/ glogo] is a logo interpreter, using ucblogo as the core and the GNOME libraries to provide a graphical user interface&mdash;if I remember correctly this actually runs ucblogo as a subprocess, and redefines the graphical commands to print output that is then interpreted by the GUI frontend; as such it is rather limited.)
+
;[http://laguna.fmedic.unam.mx/~daniel/glogo/ glogo]: is a logo interpreter, using ucblogo as the core and the GNOME libraries to provide a graphical user interface&mdash;if I remember correctly this actually runs ucblogo as a subprocess, and redefines the graphical commands to print output that is then interpreted by the GUI frontend; as such it is rather limited.
-
;aUCBLogo: http://www.physik.uni-augsburg.de/~micheler/
+
;aUCBLogo: http://www.aucblogo.org/
Needs testing, packaging and materials (maybe it's still too beta).  Looks like turtle graphics but a C-like language.
Needs testing, packaging and materials (maybe it's still too beta).  Looks like turtle graphics but a C-like language.
;MSWLogo : http://www.softronix.com/logo.html
;MSWLogo : http://www.softronix.com/logo.html
-
Needs a migration to Linux. Has lots of learning material on the Internet.  Based on the UCBLogo interpreter.
+
For Microsoft Windows platforms. Has lots of learning material on the Internet.  Based on the UCBLogo interpreter. It is unlikely to be developed any further.
;FMSLogo : http://sourceforge.net/projects/fmslogo
;FMSLogo : http://sourceforge.net/projects/fmslogo
-
Needs a migration to Linux
+
Can be considered as the successor to MSWLogo. Becoming multi-platform is a stated development goal.
;NetLogo : http://ccl.northwestern.edu/netlogo/
;NetLogo : http://ccl.northwestern.edu/netlogo/
Freeware, but not open-source. Requires Java. Actively developed; high quality.  Like StarLogo, it emphasizes highly concurrent multi-agent (multi-turtle) programming.
Freeware, but not open-source. Requires Java. Actively developed; high quality.  Like StarLogo, it emphasizes highly concurrent multi-agent (multi-turtle) programming.
-
;TurtleTracks Logo (by Daniel Azuma) : http://turtletracks.sf.net
+
;TurtleTracks Logo (by Daniel Azuma) : http://turtletracks.sf.net/
UCBLogo compatible. Open source, written in Java (so supports Unicode) by a PhD student of Brian Harvey's. Has full TurtleGraphics implementation and extra features like multithreading
UCBLogo compatible. Open source, written in Java (so supports Unicode) by a PhD student of Brian Harvey's. Has full TurtleGraphics implementation and extra features like multithreading
-
;E-Slate Logo (by George Birbilis and RA.CTI) : http://e-slate.cti.gr
+
;E-Slate Logo (by George Birbilis and RA.CTI) : http://e-slate.cti.gr/
Open source extension of TurtleTracks Logo (source for the extended TurtleTracks Logo is included in the E-Slate distribution) for talking to Java components (TELL, ASK, EACH, TELLALL commands) and added support for dynamic localization of commands (via Java resourcebundles), where the base (English) language and one other language can be intermixed freely in Logo programs
Open source extension of TurtleTracks Logo (source for the extended TurtleTracks Logo is included in the E-Slate distribution) for talking to Java components (TELL, ASK, EACH, TELLALL commands) and added support for dynamic localization of commands (via Java resourcebundles), where the base (English) language and one other language can be intermixed freely in Logo programs
;KTurtle : http://edu.kde.org/kturtle
;KTurtle : http://edu.kde.org/kturtle
Actually not a LOGO clone, but a programming environment for kids. Main features: translatable programming commands (currently around 20 supported languages) using unicode. The next version will be a full rewrite, a preview of this will ship with KDE4. No 1.0 release yet. This programming language is purely educational.
Actually not a LOGO clone, but a programming environment for kids. Main features: translatable programming commands (currently around 20 supported languages) using unicode. The next version will be a full rewrite, a preview of this will ship with KDE4. No 1.0 release yet. This programming language is purely educational.
 +
;JavaLogo : http://javalogo.sourceforge.net/
 +
Very basic implementation of turtle graphics concepts in Java and Swing.  Can be used to demonstrate as little or as much of the entire object orientation paradigm and multi threading exposed by Java.
 +
;Web Turtle : http://www.sonic.net/~nbs/webturtle/
 +
Another [[BASIC]]-like web environment for playing with turtle graphics, by the author of [[Tux Paint]].
==Necessary features==
==Necessary features==
 +
 +
This section and the next are sort of obsolete, since UCBLogo now runs on the XO!
 +
*Standard Language syntax (as close as possible to Brian Harveys' UCBLogo)
*Standard Language syntax (as close as possible to Brian Harveys' UCBLogo)
**No funny parentheses: fd(10)
**No funny parentheses: fd(10)
Line 43: Line 62:
*Multilingual support
*Multilingual support
*Stable and attrative GUI
*Stable and attrative GUI
-
*Trigonometric functions, sqrt, exp, power, log, ln (to be able to draw at least [http://mondragon.angeltowns.net/paradiso/Construcciones.html figure 24] accurately)
+
*Trigonometric functions, sqrt, exp, power, log, ln (to be able to draw at least [http://neoparaiso.com/logo/ejercicios-de-geometria.html figure 24] accurately)
*Friendly error messages: No "syntax error #342342" (No trace backs?)
*Friendly error messages: No "syntax error #342342" (No trace backs?)
==Requested Features==
==Requested Features==
 +
 +
UCBLogo has these:
 +
*Optional inputs, like UCBLogo
*Optional inputs, like UCBLogo
*Write a basic GTK interface for UCBLogo so that it can be run as a [[Sugar Activity HOWTO|Sugar Activity]]
*Write a basic GTK interface for UCBLogo so that it can be run as a [[Sugar Activity HOWTO|Sugar Activity]]
-
*ColorUnder (or "Pixel"). This is useful to solve [http://mia.openworldlearning.org/ideas/sby.htm this] kind of problems.
 
*SetPenColor. With RGB colors too (not just 16 basic colors)
*SetPenColor. With RGB colors too (not just 16 basic colors)
-
*Extensions to exploit hardware features (eg. ways to read and write to the ports)
 
*Extensions to interact with OS to allow scripting
*Extensions to interact with OS to allow scripting
 +
 +
But not (yet) these:
 +
 +
*ColorUnder (or "Pixel"). This is useful to solve [http://mia.openworldlearning.org/ideas/sby.htm this] kind of problems.
 +
*Extensions to exploit hardware features (eg. ways to read and write to the ports)
*XML-RPC Interface to enable inter-application communication
*XML-RPC Interface to enable inter-application communication
Line 59: Line 84:
----
----
* LOGO is certainly a fun way to learn programming and/or to just play with a computer. Many modern implementations have multiple screen turtles. Perhaps at its simplest this can be found in ''MSWLogo'' (for Windows). - FREE. Newer flavors of LOGO are ''StarLogo'' and ''NetLogo''. They offer powerful ways of controlling large swarms of turtles and their environment - the great benefit being to encourage truly distributed ways of thinking and programming. --[[User:L Pfeffer|L Pfeffer]]
* LOGO is certainly a fun way to learn programming and/or to just play with a computer. Many modern implementations have multiple screen turtles. Perhaps at its simplest this can be found in ''MSWLogo'' (for Windows). - FREE. Newer flavors of LOGO are ''StarLogo'' and ''NetLogo''. They offer powerful ways of controlling large swarms of turtles and their environment - the great benefit being to encourage truly distributed ways of thinking and programming. --[[User:L Pfeffer|L Pfeffer]]
 +
----
 +
* The only real issue with LOGO that I can think of is it's English keywords. It would be fairly simple to redefine the starting dictionary as abstract tokens (even single characters in a special character set, with a corresponding symbol font) and then create regional "include files" which map them back into English words, or Swahili, or icons. I understand the desire to make programming a visual exercise in dragging colourful blocks, but programming can also be inherently textual because of it's links with literature, and a good LOGO progamming session can be like a conversation. Please ensure the kids have a real option which language that conversation is in, and even a chance to develop their own. -- Jeremy Lee
----
----
* PyLogo is a bit rough in some places, but I'll try to speak to its advantages and disadvantages.  In this context the key advantage is really that environments built for Python are available to PyLogo (and vice versa), including some neat interfaces like xturtle.  I think offers some real potential for a gradual learning curve to more advanced programming.  A negative is that it's kind of slow (though lots of Logo implementations are on the slow side).  Another negative is that it uses Python's execution model, which means that you can't have high levels of concurrency ala NetLogo (without using an alternate interpreter like Stackless).  A positive is that reimplementing Logo without using Python's callstack is probably not a big deal (Logo is, after all, a simple language).  A positive is that it's a low risk, since it is simply a small library on top of a platform OLPC will already be using.  A negative is that Python doesn't do well running untrusted code, and this is just as true for PyLogo.  A reimplementation could resolve this as well.  In its current state PyLogo should be okay for doing multilingual programming, though no one has tried that; nevertheless it can be unicode aware and the primitives can have both aliases and be renamed arbitrarily, unlike Python.  -- [[User:Ian Bicking|Ian Bicking]] (PyLogo author)
* PyLogo is a bit rough in some places, but I'll try to speak to its advantages and disadvantages.  In this context the key advantage is really that environments built for Python are available to PyLogo (and vice versa), including some neat interfaces like xturtle.  I think offers some real potential for a gradual learning curve to more advanced programming.  A negative is that it's kind of slow (though lots of Logo implementations are on the slow side).  Another negative is that it uses Python's execution model, which means that you can't have high levels of concurrency ala NetLogo (without using an alternate interpreter like Stackless).  A positive is that reimplementing Logo without using Python's callstack is probably not a big deal (Logo is, after all, a simple language).  A positive is that it's a low risk, since it is simply a small library on top of a platform OLPC will already be using.  A negative is that Python doesn't do well running untrusted code, and this is just as true for PyLogo.  A reimplementation could resolve this as well.  In its current state PyLogo should be okay for doing multilingual programming, though no one has tried that; nevertheless it can be unicode aware and the primitives can have both aliases and be renamed arbitrarily, unlike Python.  -- [[User:Ian Bicking|Ian Bicking]] (PyLogo author)
----
----
-
;Vaporware?: There are more than 150 different versions of [[LOGO]]. Few of them are free, fewer are multi-language, fewer have a nice GUI, none? On top of that Turtle Graphics is not really LOGO. Kturtle is just Turtle Graphics and with the current version of KTurtle not even [http://mondragon.angeltowns.net/paradiso/Construcciones.html construct 24] can be drawn accurately. Basic information on the 161 known Logos can be found [http://ccgi.frindsbury.force9.co.uk/greatlogoatlas/ Logo Atlas] including their manuals. Interesting work has been done in French, Portuguese and Spanish speaking countries that are more language independent.
+
;Vaporware?: There are more than 150 different versions of [[LOGO]]. Few of them are free, fewer are multi-language, fewer have a nice GUI, none? On top of that Turtle Graphics is not really LOGO. Kturtle is just Turtle Graphics and with the current version of KTurtle not even [http://neoparaiso.com/logo/ejercicios-de-geometria.html construct 24] can be drawn accurately. Basic information on the 161 known Logos can be found [http://ccgi.frindsbury.force9.co.uk/greatlogoatlas/ Logo Atlas] including their manuals. Interesting work has been done in French, Portuguese and Spanish speaking countries that are more language independent.
 +
::Maybe older versions couldn't, but the latest KTurtle has procedures and recursion. (I'm not sure which of the images you mention is construct 24.) --[[User:IanOsgood|IanOsgood]] 16:04, 14 November 2007 (EST)
----
----
Both NetLogo and StarLogo need Java, no? So Logo is still [http://en.wikipedia.org/wiki/Vaporware vaporware] for our practical purposes.
Both NetLogo and StarLogo need Java, no? So Logo is still [http://en.wikipedia.org/wiki/Vaporware vaporware] for our practical purposes.
: NOTE that any and all software is grist for the mill. If NetLogo would be an asset to the OLPC, then we should try to set up a project to write a subset of NetLogo in [[Python]] which is supported by OLPC.
: NOTE that any and all software is grist for the mill. If NetLogo would be an asset to the OLPC, then we should try to set up a project to write a subset of NetLogo in [[Python]] which is supported by OLPC.
-
:And if two versions of LOGO are vaporware that does not mean the OLPC can't run LOGO. UCBLogo will run perfectly well on the OLPC as it stands. The only essential work in adapting UCBLogo is to make it use [[OLPC_Python_Environment|GTK]] for it's I/O.
+
:And if two versions of LOGO are vaporware that does not mean the OLPC can't run LOGO. UCBLogo will run perfectly well on the OLPC as it stands. The only essential work in adapting UCBLogo is to make it use [[OLPC_Python_Environment|GTK]] for its I/O.
----
----
Line 72: Line 100:
==External Links==
==External Links==
-
 
+
[http://www.google.com/ Logo Design]
;Why Use Logo? An Overview of Logo in Education: http://www.terrapinlogo.com/why-use-logo.php
;Why Use Logo? An Overview of Logo in Education: http://www.terrapinlogo.com/why-use-logo.php
-
;Logo Web Site in Spanish : http://mondragon.angeltowns.net/paradiso/
+
;Logo Web Site in Spanish : http://neoparaiso.com/logo/
-
;Logo Web Site in Brazil : http://br.geocities.com/projetologo/logo/index.html
+
;Logo Web Site in Brazil : http://projetologo.webs.com
 +
==See also==
 +
*[[Berkeley Logo]]
 +
*[[LISP]]
 +
*[[Scheme]]
-
[[Category:Programming language]]
+
[[Category:LOGO]]

Current revision as of 05:45, 25 July 2011

for OLPC logos and web badges, see OLPC logo and badges
  english | español | 日本語 | 한국어 HowTo [ID# 258554]  +/-  

A powerful programming language built to be easy for children to use, conceived by Seymour Papert in 1966. Logo is essentially a dialect of LISP without the parentheses that traditional LISP requires. It has been implemented in many versions including Brian Harvey's UCBLogo and the multimedia authoring toolkit Hyperstudio. (A bit of Logo history can be found here: http://logothings.wikispaces.com/.)

Sometimes there is confusion between the full-fledged programming language and the graphics module that implements turtle graphics.

There are lessons to be learned in all of these systems if OLPC application developers wish to stand on the shoulders of giants rather than reinvent the wheel. It can be considered one of the Predecessors of OLPC.

To see the broad scope of this software around the world look at the In other languages section of the Wikipedia

Contents

XO activities

LOGO, LOGO-inspired, and turtle-graphics activities for the XO:

  • Turtle Art is in the G1G1 Activity group. It is a visual programming language with snap-together elements. The programs control a turtle, but lack parameters and data structures (lists).
  • Etoys is in the G1G1 Activity group. Inspired by LOGO, it includes turtle-like cars and things.
  • Scratch is in the G1G1 Activity group. It is an easy-to-learn, multimedia programming language to create interactive animations, stories, and games
  • Python is part of the XO system software, allowing installation of PyoLogo, PyLogo, or xturtle.py (see below)
  • Loggerhead is a software idea, with many of the concepts already implemented in the above software.
  • Berkeley Logo is available for the XO with the new GUI! Not fully Sugarized (uses real files instead of the journal, etc.). It can be translated (without recompilation) to languages that have their character sets in 1-byte encodings. It was been translated to Spanish (LogoES). The only essential work needed is to add support for GTK I/O which is a relatively simple task. UCBLogo was written with the constraints of 640k PCs in mind, so it's very small. It's a basically old-fashioned Logo, programmed in text, one turtle — like you had on your Apple II, only more memory and better debugging support.

Alternatives

LogoWiki 
http://www.logowiki.net (site is gone) web archive

Recently developed by Alan Kay and friends. Built on top of JavaScript.

Curly Logo 
http://www.amberfrog.com/logo/

Another JavaScript logo implementation, requiring SVG support in the browser. It has already been tested on the laptop in xulrunner.

Papert 
http://code.google.com/p/papert/

Yet another JavaScript logo implementation that runs in the browser.

xturtle.py
http://ada.rg16.asn-wien.ac.at/~python/xturtle/

xturtle.py is a new turtle graphics module, which could (or should?) replace the old turtle.py—if not in python's standard distribution, then at least in practical work.

Logo inside Flash (in Spanish)
http://neoparaiso.com/logo/logo-flash.html

It can't save procedures from session to session but it doesn't need to be installed (which is sometimes forbidden in school computer labs). Probably saving of sessions could be implemented given a server-side piece to communicate with.

PyLogo 
PyLogo (homepage)

Works under Python (which, it seems, will be a given in the laptop). A fairly traditional Logo implementation, but without much of a GUI (maybe useful with xturtle)

PyoLogo 
PyoLogo
UCBLogo 
http://www.cs.berkeley.edu/~bh/logo.html
glogo
is a logo interpreter, using ucblogo as the core and the GNOME libraries to provide a graphical user interface—if I remember correctly this actually runs ucblogo as a subprocess, and redefines the graphical commands to print output that is then interpreted by the GUI frontend; as such it is rather limited.
aUCBLogo
http://www.aucblogo.org/

Needs testing, packaging and materials (maybe it's still too beta). Looks like turtle graphics but a C-like language.

MSWLogo 
http://www.softronix.com/logo.html

For Microsoft Windows platforms. Has lots of learning material on the Internet. Based on the UCBLogo interpreter. It is unlikely to be developed any further.

FMSLogo 
http://sourceforge.net/projects/fmslogo

Can be considered as the successor to MSWLogo. Becoming multi-platform is a stated development goal.

NetLogo 
http://ccl.northwestern.edu/netlogo/

Freeware, but not open-source. Requires Java. Actively developed; high quality. Like StarLogo, it emphasizes highly concurrent multi-agent (multi-turtle) programming.

TurtleTracks Logo (by Daniel Azuma) 
http://turtletracks.sf.net/

UCBLogo compatible. Open source, written in Java (so supports Unicode) by a PhD student of Brian Harvey's. Has full TurtleGraphics implementation and extra features like multithreading

E-Slate Logo (by George Birbilis and RA.CTI) 
http://e-slate.cti.gr/

Open source extension of TurtleTracks Logo (source for the extended TurtleTracks Logo is included in the E-Slate distribution) for talking to Java components (TELL, ASK, EACH, TELLALL commands) and added support for dynamic localization of commands (via Java resourcebundles), where the base (English) language and one other language can be intermixed freely in Logo programs

KTurtle 
http://edu.kde.org/kturtle

Actually not a LOGO clone, but a programming environment for kids. Main features: translatable programming commands (currently around 20 supported languages) using unicode. The next version will be a full rewrite, a preview of this will ship with KDE4. No 1.0 release yet. This programming language is purely educational.

JavaLogo 
http://javalogo.sourceforge.net/

Very basic implementation of turtle graphics concepts in Java and Swing. Can be used to demonstrate as little or as much of the entire object orientation paradigm and multi threading exposed by Java.

Web Turtle 
http://www.sonic.net/~nbs/webturtle/

Another BASIC-like web environment for playing with turtle graphics, by the author of Tux Paint.

Necessary features

This section and the next are sort of obsolete, since UCBLogo now runs on the XO!

  • Standard Language syntax (as close as possible to Brian Harveys' UCBLogo)
    • No funny parentheses: fd(10)
    • I don't mind having to add spaces between words: 1 + 2, instead of 1+2 (as in UCBLogo)
  • Multilingual support
  • Stable and attrative GUI
  • Trigonometric functions, sqrt, exp, power, log, ln (to be able to draw at least figure 24 accurately)
  • Friendly error messages: No "syntax error #342342" (No trace backs?)

Requested Features

UCBLogo has these:

  • Optional inputs, like UCBLogo
  • Write a basic GTK interface for UCBLogo so that it can be run as a Sugar Activity
  • SetPenColor. With RGB colors too (not just 16 basic colors)
  • Extensions to interact with OS to allow scripting

But not (yet) these:

  • ColorUnder (or "Pixel"). This is useful to solve this kind of problems.
  • Extensions to exploit hardware features (eg. ways to read and write to the ports)
  • XML-RPC Interface to enable inter-application communication

Opinions

  • LOGO could be an excellent way to introduce programming and logic. I started with it!! I think this should be a starter way, but definitely and improved new version (with more than one "turtle" at least). Today's children can understand easily and faster everything related to computers. And could be some kind of art too if are given the proper tools. (filling closed shapes, or maybe object oriented). Could be a very nice piece of soft!! --Gandolfi

  • LOGO is certainly a fun way to learn programming and/or to just play with a computer. Many modern implementations have multiple screen turtles. Perhaps at its simplest this can be found in MSWLogo (for Windows). - FREE. Newer flavors of LOGO are StarLogo and NetLogo. They offer powerful ways of controlling large swarms of turtles and their environment - the great benefit being to encourage truly distributed ways of thinking and programming. --L Pfeffer

  • The only real issue with LOGO that I can think of is it's English keywords. It would be fairly simple to redefine the starting dictionary as abstract tokens (even single characters in a special character set, with a corresponding symbol font) and then create regional "include files" which map them back into English words, or Swahili, or icons. I understand the desire to make programming a visual exercise in dragging colourful blocks, but programming can also be inherently textual because of it's links with literature, and a good LOGO progamming session can be like a conversation. Please ensure the kids have a real option which language that conversation is in, and even a chance to develop their own. -- Jeremy Lee

  • PyLogo is a bit rough in some places, but I'll try to speak to its advantages and disadvantages. In this context the key advantage is really that environments built for Python are available to PyLogo (and vice versa), including some neat interfaces like xturtle. I think offers some real potential for a gradual learning curve to more advanced programming. A negative is that it's kind of slow (though lots of Logo implementations are on the slow side). Another negative is that it uses Python's execution model, which means that you can't have high levels of concurrency ala NetLogo (without using an alternate interpreter like Stackless). A positive is that reimplementing Logo without using Python's callstack is probably not a big deal (Logo is, after all, a simple language). A positive is that it's a low risk, since it is simply a small library on top of a platform OLPC will already be using. A negative is that Python doesn't do well running untrusted code, and this is just as true for PyLogo. A reimplementation could resolve this as well. In its current state PyLogo should be okay for doing multilingual programming, though no one has tried that; nevertheless it can be unicode aware and the primitives can have both aliases and be renamed arbitrarily, unlike Python. -- Ian Bicking (PyLogo author)

Vaporware?
There are more than 150 different versions of LOGO. Few of them are free, fewer are multi-language, fewer have a nice GUI, none? On top of that Turtle Graphics is not really LOGO. Kturtle is just Turtle Graphics and with the current version of KTurtle not even construct 24 can be drawn accurately. Basic information on the 161 known Logos can be found Logo Atlas including their manuals. Interesting work has been done in French, Portuguese and Spanish speaking countries that are more language independent.
Maybe older versions couldn't, but the latest KTurtle has procedures and recursion. (I'm not sure which of the images you mention is construct 24.) --IanOsgood 16:04, 14 November 2007 (EST)

Both NetLogo and StarLogo need Java, no? So Logo is still vaporware for our practical purposes.

NOTE that any and all software is grist for the mill. If NetLogo would be an asset to the OLPC, then we should try to set up a project to write a subset of NetLogo in Python which is supported by OLPC.
And if two versions of LOGO are vaporware that does not mean the OLPC can't run LOGO. UCBLogo will run perfectly well on the OLPC as it stands. The only essential work in adapting UCBLogo is to make it use GTK for its I/O.

Etoys comes with a multi-agent system which is inspired by StarLogo and NetLogo. To try it out, launch Etoys on the B1 machine or in the emulator, press the "All" button, navigate to ParticleDyeInWater.pr, and press OK.

External Links

Logo Design

Why Use Logo? An Overview of Logo in Education
http://www.terrapinlogo.com/why-use-logo.php
Logo Web Site in Spanish 
http://neoparaiso.com/logo/
Logo Web Site in Brazil 
http://projetologo.webs.com

See also

Personal tools
  • Log in
  • Login with OpenID
About OLPC
About the laptop
About the tablet
Projects
OLPC wiki
Toolbox