Easy to think raspberry pi, but with a full Linux you won’t get that intrinsic understanding that you fully control the hardware, you never control the “bare metal” unless you are a much more advanced user.
IMHO the feeling of not being in full control of your computing device is not a good starting point. I’m very fortunate to have started out on my 8kb BASIC machine.
It's a BASIC interpreter/OS for the RP2040
I have been playing around with a per scanline generated display on a rp2350 outputting to a tiny LCD. I think there's potential for some pretty fancy stuff on HDMI. A 2350 with PSRAM, HDMI connector plus a MicroSD for bulk filesytem, and USB for input could be quite a fun micro PC.
I would be tempted to make somthing that had a second RP2350 with its own PSRAM sitting unutilized just as a temptation to users to figure out how to get more out of the gadget and learn about different multiprocessing architectures.
One of these https://www.waveshare.com/core2350b.htm
With one of these https://www.waveshare.com/rp2350-matrix.htm
Mounted on top, and an HDMI connector squeezed in somewhere,
I am a bit reminded of what GeoWorks Ensemble managed on a 640k 8086. Theoretically you could make a tiny system like this do even more.
I was looking at similar recently for a project, and came across FrankOS: https://github.com/rh1tech/frank-os
“A class or object is a map with a special __isa entry that points to the parent. This is set automatically when you use the new operator.
Shape = {"sides":0}
Square = new Shape
Square.sides = 4
x = new Square
x.sides // 4
”So
- Shape is a map (it is created using the syntax defined earlier, using a literal string as key)
- Square is a class?
- x is an object?
Or is this language prototype based? If so, why mention the word “class”? If not, isn’t it confusing to use “new someMap” to create a class and “new someClass” to create an object?
I also find it curious to see that division is defined on lists and strings. What would that mean?
Edit: reading https://miniscript.org/files/Strout_iSTEM-Ed2021.pdf, it is prototype based. That’s interesting for a teaching language.
The miniscript language itself is MIT License:
https://github.com/JoeStrout/miniscript
The Minimicro code doesn't seem to have any license in the repository or code:
https://www.gnu.org/licenses/license-list.html#Expat
For minimicro-sysdisk: I am suspicious that the author just forgot to include a license. Their other repos are mostly MIT or ‘The Unlicensed (also ‘free’ but not ‘copyleft’), and some have licenses added after creation. Suspicion is not something to be legally relied on of course…
I agree however that it's super cool to have real hardware to run this on.
1. I want kids to indent their code anyway; they may not realize it (or won't admit it), but this makes the code much easier for them to read. Kids will not do this unless they have to.
2. Unbalanced brackets are a major source of mistakes and confusion for my students. Relying purely on indentation resolves this problem—at the real cost of introducing indentation mistakes, but since I want kids to indent their code anyway, this is okay.
By the way, an adjacent recommendation is to configure the editor to indent with tabs instead of spaces (regardless of how you feel about tabs vs spaces in production code). Otherwise, kids will invariably end up with lines indented by 3 or 7 or some other wacky number of spaces. If possible, highlight the tabs in a different color so the kids don't use spaces by accident.
for i = 0 i < 10 i++ if i = 7 printf("hello 7") else printf("who are you");
But with a more pictorial presentation, it is easier to read the program.
for i = 0 i < 10 i++ if i = 7 printf("hello 7")
I'm just wondering - if we had a more pictograph based programming language would it be easier to understand?
"easy-to-learn languages" use indentation because otherwise newbies would not indent at all
I you try teaching programming, you'll find that indentation is one of things students "optimize out" - it is not important to the program, it is opposite of lazy and it's not noticeably harmful on the tiny scale of programs you learn programming from
Indentation discipline only starts to matter when you need to work on the same code for quite some time and code itself takes a lot of space - the "read more then written" situation. And most study paths do not encounter this regime
I think your point is perfectly correct but it's mostly about the second one
From the Quick Reference guide here:
https://miniscript.org/files/MiniScript-QuickRef.pdf
"Indentation doesn't matter (except for readability)."
The fact that we use whitespace for layout is precisely why it's a bad idea to assign it semantic value. I'm a fan of both braces and semicolons for that reason.
When you're starting out, the best form to express to other humans is probably the one you're expressing to the computer. This isn't literally true—I don't think beginners should write in assembly—but it's true enough that they probably shouldn't mess with indentation beyond what would naively follow from bracket placement.
My supposition here is that the threshold of skill needed to understand the form/function distinction here is significantly lower than you expect it to be. In written natural language, people don't typically attach semantic meaning to things like indententation, kerning, letter spacing, text alignment, font size, etc., and usually distinguish style from semantics intuitively without having to apply any conscious decision rules. Distinguishing form from content is something we do by nature.
I'd expect that at least those already familiar with natural writing in most modern languages will have a bias toward expecting that whitespace does not have semantic value, while punctuation marks do. Conversely, I'd expect recognizing cases where indentation does control logic flow to be what requires a higher skill level.
That said, my preference is curly braces (or whatever) because I’ve found indentation is often a bother. Yes, most of the time you use indentation together with braces, but not every time. There are many occasions where code is clearer without (or with custom) indentation. Furthermore, indentation-based parsing makes experimentation and finding issues more difficult. Sometimes you need to extract a small part of a larger block to bung in a REPL or something and now you’re fighting with stupid errors because of formatting, adding to the frustration.
Regarding intuitiveness, for beginners I have some doubts it makes much of a difference, and if it does I also doubt indentation wins. If you know how to write (which is a prerequisite), you know what parenthesis and quotation marks are, you understand they encapsulate something separate from the rest. Indentation is a different concept.
That said, my preference is to use the tools built into my editor and available on the CLI or web to assist and fix formatting and syntax. You get instant feedback on incorrect formatting, and I generally find that synthetic scope mistakes (regardless of method) are eliminated.
I think I had the wrong audience in mind
- a manual
- an installer
when you have Web pages can now
- be offline (PWA)
- be responsive and run on pretty much any device
- run pretty much anything thanks to WASM but anyway already have JS/HTML/CSS as bare minimum
- can have the instructions AND the runtime on the same page, on any device, instantly
- can connect with physical hardware, see recent https://hacks.mozilla.org/2026/05/web-serial-support-in-fire... or even with APIs.
Apparently not that friendly on HN :-D