XLogo is a Logo interpreter written in Java and licensed under the GPL. It has many extensions relative to other Logo implementations, such as networking, sound, 3D, and animation support. It supports nine languages: French, English, Spanish, Arabic, Portuguese, German, Esperanto, Galician and Greek.
Logo is a programming language developed in the 1970's by Wally Feurzeig, Seymour Papert, and Cynthia Solomon. It is an excellent language to begin learning with, as it teaches the basics of things like loops, tests, procedures, etc. The user moves an object called a "turtle" around the screen using commands as simple as forward, back, right, and so on. As it moves, the turtle leaves a trail behind it, and so it is therefore possible to create drawings. Operations on lists and words are also possible.
Here is a simple example that produces the image in this screenshot:
forward 3 right 2will first make the turtle move 3 steps forward, and then turn the turtle 2° to the right.repeat 180 [forward 3 right 2]repeats this motion 180 times to draw a circlerepeat 20 [repeat 180 [forward 3 right 2] right 18]draws 20 circles offset by 18° to make a flower.
This very intuitive graphical approach makes Logo an ideal language for beginners, including children.
Pre-compiled jars available on the Releases page. You can also still download the old version from the XLogo website.
Note: You will need Java on your computer to run XLogo. Java 11 or Java 17 is recommended. Java 8 may also work but has scaling issues on high resolution displays. If you don't already have a JDK installed, Microsoft offers free OpenJDK downloads for Windows, Mac, and Linux.
Extensive documentation is available from the XLogo website. Reference manuals are available in many languages. Some languages and formats may be more up-to-date than others, and some also have tutorials and other resources. I have summarized what's available in the table below.
| Document | English | French | German | Italian | Portuguese | Spanish | Esperanto |
|---|---|---|---|---|---|---|---|
| Reference Manual (online) | English | French | German | Italian | Portuguese | Spanish | Esperanto |
| Reference Manual (zipped html) | English | French | German | Italian | Portuguese | Spanish | Esperanto |
| Reference Manual (pdf) | English | French | German | Italian | Portuguese | Spanish | Esperanto |
| Examples | LogoArts | French | German | Italian | Portuguese | Spanish | Esperanto |
| XLogo Robotics | English | Italian | Portuguese | Spanish | |||
| Tutorial (pdf) | French | Portuguese | Spanish | ||||
| Tutorial (zipped html) | Spanish | ||||||
| Introductory Course | Spanish | ||||||
| Installation (pdf) | English | French | German | Spanish |
TeX sources for each language's documentation are available on the XLogo website but have also been added to this repo, if available.
Guy Walker's wonderful Logo Arts website contains many XLogo resources:
- Lots of Example Programs with screenshots
- Comprehensive Primitive Reference
- Excellent Book Recommendations
XLogo's development ceased in 2012. I tried to contact the original author in 2022 but got no response. I migrated the Subversion repository to GitHub and started working on some improvements:
- Fix blurry/pixelated scaling on high resolution displays
- Make a nice looking themeable UI using FlatLaf
- Fix bugs and improve code quality
If you want to help improve the code, check out the Developer Notes to get started.
- Loïc Le Coq: Original Developer
- J.B. Langston: UI upgrade and GitHub migration
- Loïc Le Coq: French
- Kevin Donnely, Guy Walker: English
- Marcelo Duschkin, Alvaro Valdes Menendez: Spanish
- El Houcine Jarad: Arabic
- Alexandre Soares: Portugese
- Miriam Abresch, Michael Malien: German
- Michel Gaillard, Carlos Enrique, Carleos Artime: Esperanto
- Justo Freire: Galician
- Anastasios Drakopoulos: Greek
- Marco Bascietto: Italian
- David Arso: Catalan
- Jozsef Varga: Hungarian