
There is a lot of work to do in FMSLogo. The code base lay in atrophy for five years before I picked it up. There is a lot of work to do in order to bring it up to date, without making any major updates in functionality. Below is a rough outline of the development steps that I intend to take. Of course, I will always be looking to fix bugs and make small updates that enhance the usability along the way.
- 1. Port the documentation from RTF to DocBook.
This will make the manual easier to update. It also gives me an opportunity to carefully read the documentation, learn what FMSLogo is capable of, and fix typos.
- 2. Write an extensive set of automated tests.
Without a good test suite, I cannot confidently update FMSLogo without introducing regressions. Because FMSLogo has a lot of features, writing a comprehensive set of tests is very time consuming. - 3. Port FMSLogo to gcc and wxWindows.
Currently FMSLogo is build with a defunct compiler and links to a proprietary window toolkit. Porting FMSLogo to gcc and wxWindows will open up development to more people. - 4. Use the GNU tools to find performance bottlenecks and fix memory leaks.
This purpose of this step is to gain a better understanding of where FMSLogo's problems lie. - 5. Update the language engine to the latest from UCBLogo.
FMSLogo is based on UCBLogo's language engine. However, while UCBLogo has made many advances, FMSLogo is still using a snapshot of UCBLogo that is at least five years old. There are some major benefits to updating the langauge engine. Just adding a "not equals" operator would make a FMSLogo a significantly better programming environment. - 6. Internationalize FMSLogo.
This will make it easier for third-parties to localize FMSLogo. Localization is a requirement for adoption within schools systems. - 7. Begin implementing new features.
By the time I get here, FMSLogo will be roughly the same as MSWLogo and it will be ready to be extended. The possibilities are limitless, but I'd like to start by adding a good sprite library, better support for 3D drawing, an interface for text to speech, a clean networking API, etc.

There are many ways to help improve FMSLogo and they don't all require hacking on C++ code.
- Of course, you can help with the programming side of things. Unfortunately, FMSLogo was written using old versions of Borland C++ and TASM, which are not available in stores anymore. If you want to help on the programming side of things, you must first obtain a copy of these products.
- I would like to bundle FMSLogo with lots of high-quality mini-applications written in FMSLogo that show off what it's capable of. I would like them to be written in a way that people can study, learn from, and improve. Games are ideal, since my target will always be children and young adults. If you have a Logo program to donate, post a link in the discussion forum.
- Improve the installer so that it can be used more easily by a limited user. FMSLogo uses NSIS as its installation system.
- If you're good with at Web development, this Web site obviously needs some help. If you have some ideas on what should go here and would like to take over maintainece, let me know.
- I need real-world feedback on where FMSLogo should be improved. If you know where FMSLogo is lacking, please post a feature request or post a message in the discussion forum. Try to keep your suggestions based on practical experience (instead of abstract theories). Also, please explain how your suggestion would improve FMSLogo as a learning tool for children.
- File bugs. FMSLogo is full of them and they should all be tracked. If you know of a bug, please file it in the bug tracker.
- If you're a GNU/Linux user, you can become a WINE application maintainer for FMSLogo. I intend to port FMSLogo to GNU/Linux some day, but that could be years form now. In the meantime, it'd be nice if it ran under WINE.
- Evangelize FMSLogo. MSWLogo is still far more popular than FMSLogo. If it's because FMSLogo is deficient in some way, then let's file a bug and get it fixed. If it's because people don't know about FMSLogo, then let's let them know.
- Whatever else you can think of!
|