The problem with BASIC was that the source-code had to be distributed. I remember buying a text-adventure game for the Vic-20 and the programmer sent me the BASIC source-code on a cassette.
With Safety Forth, I would want people to be able to distribute an executable, closed-source. Nobody wants to distribute their source-code!
BASIC had a lot of other problems too, such as not having local data in functions. That was a long time ago.
I'm a bit late to this but it sounds like an interesting project.
If I understand correctly you are creating (for windows 11) three things:
a compiler that targets your microcontroller
a console IDE that can be use the compiler to write, compile and deploy code to the microcontroller
a scripting language for scripting communication with the microcontroller while running
scripting language is for the end-users (high school students) that are using the microcontrollers (for control or data collection?)
this scripting language needs to restrict what the students can do (presumably so they stay focused on learning outcomes, and they can't damage the microcontroller and attached hardware ?)
The USB support is needed for both
(2) 'IDE' (so the compiled code can be deployed to the microcontroller from the IDE),
(3) 'Scripting language' (so the scripting language can communicate with the program running on the microcontroller).
Do I understand correctly?
Do you have a web page where I can learn more about your project?
Lets forget about the scripting language for now as it is not needed for the IDE. Initially the project is just for educational use (high school students) and they will just use the IDE to develop code for the microcontroller. If they damage the microcontroller or attached hardware, that is their problem, not mine.
In the future it may be useful to have a terminal program that is used to set parameters and obtain data from the microcontroller, and this will need a secure scripting language.
The point of a scripting language being secure is so that people don't write malware in the scripting language, then pass these programs around. If malware is running within my program, I would get blamed. This would be an issue for any scripting language for any program --- nobody wants their program to be the platform for malware --- the people writing malware want to use somebody's program as a platform because users will trust that program to be safe, so it provides a convenient cover for their malicious deeds.
Forth systems are typically unsafe. Because of this, Forth is banned from a lot of schools or companies because it is considered to be a likely platform for malware. AFAIK, if I write Safety Forth, it will be the only Forth system that is designed to be safe. I don't know if Racket is considered to be safe or unsafe. Can Racket be used as a platform for malware?
There are a lot of people all over the world who hate America. We have to be careful of malware attacks, such as ransom-ware. Also, we want to distribute code closed-source so Red China doesn't get the source-code and use it to compete against us. In the 21st century, security is a lot more important than efficiency.
P.S. A Taiwanese friend told me how to recognize Red China operators on forums such as this. Their command of the English language will vary from day to day because they have multiple people using the same account. Also, they will often use the name Zbigniew and pretend to be Polish --- they do this because 'Zbigniew' sounds like a Chinese phrase that means: [extremely vulgar insult] --- they are quite the comedians, these Red Chinese.
Of course, the primary tip-off is that they are totally focused on downloading source-code and they have nothing to contribute, nor do they know much about programming.
The terminal program, including the scripting-language, can be open-source. The programs written in the scripting-language can be closed-source and they can be assumed to be safe assuming that the scripting-language is considered to be safe. The scripting-language executable doesn't contain any machine-code, but only contains references to the machine-code that I wrote, all of which is in a 64KB segment, so the scripting-language executable can't be modified with a hex-editor to do anything unsafe.
Anyway, I have that Python terminal program that works with USB. I am going to have to just bite the bullet and learn Python to write my own terminal program derived from it. I would have preferred to use Racket, but Racket is is not providing any support for USB, so I have to forget about Racket. Maybe someday in the future, for some other project that doesn't interact with the outside world, I will use Racket. Also, I may learn how LIBUSB works well enough to write the foreign-function interface for LIBUSB to provide something similar to PYSERIAL for Racket. Right now though, I need to get started on my terminal program, not go adventuring in unexplored territory.
Forth systems are typically unsafe. Because of this, Forth is banned from a lot of schools or companies because it is considered to be a likely platform for malware. AFAIK, if I write Safety Forth, it will be the only Forth system that is designed to be safe. I don't know if Racket is considered to be safe or unsafe. Can Racket be used as a platform for malware?
All general-purpose languages can be used for malware. Possibly even your design (is it malware if I write a program which loops forever and sets parameters to random values willy nilly)?
There are a lot of people all over the world who hate America. We have to be careful of malware attacks, such as ransom-ware. Also, we want to distribute code closed-source so Red China doesn't get the source-code and use it to compete against us. In the 21st century, security is a lot more important than efficiency.
P.S. A Taiwanese friend told me how to recognize Red China operators on forums such as this. Their command of the English language will vary from day to day because they have multiple people using the same account. Also, they will often use the name Zbigniew and pretend to be Polish --- they do this because 'Zbigniew' sounds like a Chinese phrase that means: [extremely vulgar insult] --- they are quite the comedians, these Red Chinese.
Of course, the primary tip-off is that they are totally focused on downloading source-code and they have nothing to contribute, nor do they know much about programming
I don't care for your tone, here—at least on the Racket Discord, our rule is to keep things family-friendly since we have young people (and folks who just plain don't like to see swearing) around. I'm not sure if we consider ourselves to have a similar policy here, but there's just no reason to divert this thread into epithets and f-bombs. Surely we can discuss anti-hacking practice in some other way?
Many such cases. Most times I write a Racket program I have to figure things out that I can't find any advice/explanations/code samples for online. It always turns out to be possible, but what an adventure it is to get there!