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. Operations on lists and words are also possible.
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. For example, forward 100 right 90
will first make the turtle move 100 steps forward, and then turn the turtle 90° to the right. This intuitive graphical approach makes Logo an ideal language for beginners, including children.
Loïc Le Coq originally developed XLogo until 2012. I (J.B. Langston) came across XLogo in 2022 and tried to contact him but got no response. Sadly, I believe he passed away in 2013. I migrated the original repo to GitHub and started working on some improvements:
- Fix blurry/pixelated scaling on high resolution displays
- Make a nice looking themeable UI using FlatLaf
- Use SVG images for icons, flags, and turtles
- Replace editor with feature-rich RSyntaxTextArea
- Update Java3D dependencies to latest versions
- Fix bugs and improve code quality
This version of XLogo is currently in beta status but is already more usable on modern computers than the original version. It still needs a lot of testing, especially on platforms other than Windows. If you try it out and have any problems, please open an issue. If you want to help, check out the Developer Notes to get started.
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 11 or later on your computer to run XLogo. If you don't already have a compatible JRE installed, Adoptium offers free OpenJDK downloads for Windows, Mac, and Linux.
Guy Walker's wonderful Logo Arts website contains many XLogo resources:
- Lots of Example Programs with screenshots
- Comprehensive Primitive Reference
- Excellent Book Recommendations
The XLogo website contains extensive documentation. 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. Note: none of the manuals have yet been updated to reflect recent user interface changes, but they are still generally applicable.
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 | Italian | Portuguese | Spanish | ||
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.
- Loïc Le Coq: Original Developer
- J.B. Langston: Current Maintainer
- 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
- FlatLaf: Swing look and feel (Apache license)
- IntelliJ IDEA: SVG Icons (Apache license)
- Java3D: 3D scene graph library (GPL license)
- Jogamp: OpenGL libraries (BSD/MIT/Apache license)
- JavaHelp: Help library (GPL license)
- JLayer: MP3 library (LGPL license)
- RSyntaxTextArea, RSTAUI and AutoComplete: Syntax-highlighting editor components (BSD license)
- WikiMedia Commons: flag images (Public domain)