Bonum Certa Men Certa

Education and Free Software

2020 figosdev



Start it up
Chapter 16: Education and Free Software



Summary: "If students learn how to code, they'll be able to figure out the applications."

Education is one of the best ways to get more people interested in Free software. Unfortunately, most people make education more difficult than it needs to be.



"Unfortunately, most people make education more difficult than it needs to be."It is possible to use languages like Javascript and Python (even Java) to introduce programming. Python is an especially popular language for this purpose, because it is easier to learn than Javascript or Java (or C or C++).

There are subjective elements to any sort of argument like this, and there is the general reality. I suspect teachers have less time to learn coding than students do -- some already know how to code, but others struggle.

If every school teacher has at least five students they want to teach coding to, imagine what we could accomplish with tools that make coding easy.

Looking back at previous successes in history, the languages that have helped introduce the most people to coding (people who would not have learned otherwise) include BASIC and Logo.

I love Logo, but people tend to focus on its graphics features -- which are easier to use, unless we are talking about the new breed of block-dragging Logo derivatives which make most tasks easy.

My problem with Logo as a language for schools (unless we are talking about the earliest grade levels) is that it feels "less like programming" to move a Turtle or even drag blocks around to animate a cat.

These tools are amazing, and they can help people who are even younger learn programming concepts. If that's the level you want to start at, these solutions have their place. Likewise, if you want to just start with Javascript or Python, those are already used in teaching and have their advantages (popularity among them).

I tried those as well (I write code in Javascript and Python, targeting PyPy), but I wanted to make writing code as accessible as possible -- so I tried my hand at language creation. I'd made toy languages before, how about a toy language for teaching? In the 1960s at least (when BASIC and Logo were created) it was a revolutionary concept.

Logo (as far as its Turtle features go) is fun and easy in part because its so minimal. If you want to move up, you can just say "up". In some dialects, you can just say "U". Perhaps at its most minimal, you could draw a box like this:

    R D L U


Right, Down, Left, Up -- what is someone supposed to think that does? You can trace it with a pencil. You want parameters of course, so you let the user specify distance:

    R 5 D 5 L 5 U 5


Now you have a box that can be a specific size. Simple little language, right? But it's getting difficult to follow. We have choices we can make in terms of design here:

    r(5) d(5) l(5) u(5)



r5 d5 l5 u5

r 5 ; d 5 ; l 5 ; u 5


I have my own answer to this, but the top is a bit like BASIC or Python, The middle is very Logo-like just because of the lack of punctuation in syntax, and the latter is more like shell code.

These are similarities based on specific examples -- there isn't a specification that defines "shell code" (unless POSIX does) - nor are most dialects of Logo compliant with a standard.

But it's still a very simple language that's easy to teach and learn. I always thought it would be an interesting experiment to try to extend Logo to make it more like BASIC in its capabilities.

While Python says that explicit code is better than implicit, every explicit element adds something you can get wrong. So while you wouldn't design Python code like this:

    r 5 d l u


The "5" is implicit. Or perhaps the default value is -- obviously this sort of ambiguity is worth avoiding, except perhaps when it's helpful.

Still, for an example that's very conventional:

    color "orange" ; print "hello" ; print "world"


The print command doesn't have a colour parameter, yet we know that both print commands probably use orange.

What we make the first variable implicit?

    v 10 ; colour 1 ; print


In this example, we print 10. It make not make a lot of sense, unless you know that each line begins with a variable. If each command has a fixed number of parameters, we can do away with the semicolons:

    v 10 colour 1 print


But this runs together, so what if we make the semicolons optional:

    v = 10 colour 1 ; print


Then we add special commands that don't share a line with other commands, which Python actually sort of has:

    iftrue p
    v = 10 ; colour 1 ; print
    next


Make enough decisions like these, you can find a balance between very few rules and enough consistency to make the language worth using.

Keep your commands simple, your parameter counts short, your punctuation minimal (or optional) and your language small. You can make it extensible with a more complicated language like Python -- plus, a compiler for a language this simple is easy to take apart and learn from -- you can start from a couple hundred lines of code, work your way up to one or two thousand (for 50 to 100 commands).

Each command is really a short program, so think of it as writing a dozen or two very short programs, and how you would tie them together.

Ideally, coders and teachers would work together more often, helping teachers learn how to create their own languages for teaching.

I realise I'm saying this decades into a world where we train people how to use products, instead of teaching general concepts in the simplest way possible. But it;s my own book and I get to write the advice in it.

Underneath it's all OOP, I like to implement languages in Python, but I can implement languages in my own language. I didn't take the Brown University courses for this, but I like to make things simple when reasonable.

There are all kinds of devices you can run this stuff on. Rather than recommend a specific device, I'll just say: computers exist to be programmed. Users exist to control computers -- the other way around (using computers to control people) is generally speaking, exploiting your customers.

I teach 7 simple programming concepts:

 1. variables - 2. input - 3. output - 4. basic math - 5. loops - 6. conditionals - 7. functions


This is how I define a function in my own language:

    function yes parameter
        iftrue parameter
            now "yes, " prints
            now parameter print
        else
            now "yes" print
            next
        next


Here's a function call:

    now yes "dear"


And the output:

    yes, dear


I often indent using a bit of Python style, but the indentation (except for inline Python) is optional.

What are the (fewer than) 100 commands for? Stuff I have always used BASIC and Python for -- simple graphics, manipulating files and strings, simple calculations and tallying items, automation.

I have advice for people interested in writing simple programming languages as well:

You can write a "hello world" program, even though its useless. But it shows you a little about how a language works.

You can create a "hello world" programming language, even though it's useless.

You can literally make a language that (when it encounters a helloworld or hello command), says "hello world" on the screen. There's your start.

Now as you would with a hello world program, make your language a little more sophisticated -- just a little. There are tutorials of course, but they won't generally tell you how to keep things simple.

If students learn how to code, they'll be able to figure out the applications. If you keep the syntax easy, you can spend more time on those algorithms people say are what coding is really about.

As to how to introduce teachers to this topic, that's the sort of thing a viable Free software movement could do. I used this to help an art teacher (whose boyfriend had always tried to show her how to code) understand coding better than she had previously.

"And this does this... and this puts it on the screen..."

    # count to 10
    for each = 1 10 1
        p = each ; print
        next


...

Licence: Creative Commons CC0 1.0 (public domain)

Recent Techrights' Posts

24/7 Wall St. Editor-In-Chief and CEO Calls IBM Is "America’s Worst Big Tech Company", Talent is Leaving, Supposedly Strategic Units Culled
21 hours ago by Douglas A. McIntyre
IBM's Debt Increased Over $5 Billion in 3 Months While IBM Laid Off Many in Europe, US, Confluent, HashiCorp, and Red Hat
An increase of $5,000,000,000+ in debt in just 3 months!
Drama at the European Patent Office (EPO) This Week
We'll be covering the EPO quite a lot this weekend and next week
EPO Cocainegate Escalates - Part VI - The Strikes Go On and On (Major Strike Today)
We'll be covering this later today in relation to what the Office dubs "ethics"
Huge Microsoft Layoffs Coming Shortly (With Financial Report)
There will be lots of slop layoffs. Be ready. It's a bubble.
 
Links 24/04/2026: Zelenskyy Says Ukraine's War Position "Most Stable", Samsung Workers on Strike Due to Pay
Links for the day
Dr. Andy Farnell on Why Calling Slop or Chaff "Hey Hi" (AI) Harm Us All, Except for "Ten or Twenty Rich Industrialists"
"words to avoid"
Recent Happenings at IBM Reaffirm Rumours About the CEO; He Might be Resigning (or Pushed Out) Soon
If the rumours are true (no, we did not check those tax records for ourselves), it's not unthinkable that IBM is already doing what Apple did months ago
Gemini Links 24/04/2026: Public Reticulum Gateway Node, Smol Computers, and Old E-mail
Links for the day
Links 24/04/2026: Intel Abandoning Computer Freedom (Even Further), Iran Reports That American Software and Hardware Remotely Sabotaged/Hijacked During War
Links for the day
The Great Wonders of Slop "Efficiency"
Thankfully nothing was lost in the transmission and lots of work (datacentre emissions) got "done"
IBMers Expect Another Giant Wave of Layoffs, Talk (and Sing) About the PIPs
The media won't be covering the key facts
As We Predicted, Francophonie Countries in the EU and Outside the EU Dumping Microsoft for National Security Reasons
We expected Belgium or some other Francophonie place to do so next
Even to Microsoft Insiders It Seems Like XBox Has Already Died or Surrendered to the Japanese Companies
Now the Microsoft layoffs are evident for people to see
Absolutely Terrible Journalism About Microsoft Layoffs This Week
7 hours ago by Leila Sheridan
SLAPP Censorship - Part 56 Out of 200: 5RB and Brett Wilson LLP's Copy-Paste Machination for Garrett and Graveley
Here is another straightforward example of their junior barrister overusing copy-paste on his Mac
Getting Aggressive Suggestive of Loss - Part II - Lawyers Are Not "Hired Guns" (and Should Never Act Like Ones)
The matter is being investigated
Nadella is Killing Microsoft. Slop Kills It Even Faster.
A decade from now we'll look back at slop like we look back at skateboards
Gemini Links 24/04/2026: Data Breaches and Unofficial Gemini Protocol Specification Archive
Links for the day
Microsoft Offers About 10,000 of Its Senior American (Read: Expensive) Workers to be Laid Off
How many slopfarms and media parrots play along?
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Thursday, April 23, 2026
IRC logs for Thursday, April 23, 2026
SLAPP Censorship - Part 55 Out of 200: Strangled Women, Charged for Strangulation, Cannot Find a Job Now (After Microsoft)
merits public awareness and wider scrutiny
Gemini Links 23/04/2026: Spirituality and Detachment, Shoplifting in the UK, and "Introducing Scout, an iOS Native Gemini Client"
Links for the day
Links 23/04/2026: YouTube Age Limits Expanded and 'Secret' Model With Bug-Finding Hype Campaign 'Leaks'
Links for the day
Media Operatives of Microsoft Paint Microsoft Layoffs as Buyouts (Intentionally False Narrative)
Those are mass layoffs disguised as something else
IBM's Stock Has Collapsed Over 10% in One Day, Insiders Explain What's Happening
Today, due to a lack of time, we mostly present an outline of what people say (not IBM-sponsored media hacks with LLM slop)
Getting Aggressive Suggestive of Loss - Part I - Threats Sent From Burner Accounts Since February, Belatedly Reported to British Police
Threats connected to Graveley or Garrett or 5RB or Brett Wilson LLP [...] We're not dealing with a law firm here; we're dealing with the underworld
EPO Cocainegate Escalates - Part V - Where Does the António Campinos 'Family Affair' Go From Here?
Do cocaine in public, get caught, take paid "sick leave", come back to lead Europe's second-largest organisation
Links 23/04/2026: Legal Trouble for Microsoft, Chronic Fatigue Syndrome, and DMCA Whac-a-Mole
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Wednesday, April 22, 2026
IRC logs for Wednesday, April 22, 2026
Gemini Links 23/04/2026: Sunrise Chasing Season, Going Back to Older Software, New Gemini Client for Mobile Devices
Links for the day
Upcoming Mass Layoffs at Microsoft Not Limited to Gaming/XBox
from Microsoft staff
What Could Run the World Instead of "Linux"
Had it not been for GNU (the software, the licence, the compiler GCC), we'd probably not have Linux and perhaps BSD would be more widespread (no copyleft, so expect proprietary derivatives)
IBM's Shares Have Just Collapsed Again as a Result of the Phony 'Results'
Of course all the so-called news is shallow parroting of IBM or "churnalism" void of real analysis
EPO President to Meet the Union, But He Needs to Resign
Colleagues or workers of the EPO have only just been told that the boyfriend of the sister of "Cocaine Communication Manager" will be talking to the union (SUEPO) tomorrow mornin
Gemini Links 22/04/2026: Movies, Vim, and Bash
Links for the day
International Business Machines Corporation: Paying Peanuts, Getting Monkeys
they don't pay enough to retain key people
No, Finding Security Bugs Takes Time and Care (Human Touch, Real Grasp of Real Code)
This too shall pass
Move to GNU/Linux, Save This Planet
If you are an environmentalist, it's hard to justify still using stuff from Apple or Microsoft
SLAPP Censorship - Part 54 Out of 200: Alex-Matt/Automate Twin Cases, Separated at Birth, Drafted by Brett Wilson LLP and 5RB
Perhaps their solicitor K.C. (not the legal title) sought actual redemption and followed the Cross, not the dagger
When Peak Oil Isn't Just "Alarmist Propaganda"
the current conditions favour less consumption
Combatting Racist Abuse
Take racism seriously
They've Failed to Ruin Our Community, But They Still Try
The cost of liberty is not zero. The cost of it can be supremely high.
IBM "Results" as a Smokescreen to Distract From Mass Layoffs at IBM Every Month in 2026
How can we as a society function if we do not get properly informed and educated about what goes on around us?
'Nuclear Winter' at Microsoft This Summer?
At Microsoft so far this year there have been many layoffs, but the company tries to keep them secret
Links 22/04/2026: LLM Slop "Damaging Users’ Cognitive Abilities", UK-based Publishers Urge CMA to Curb Slop-Wielding Plagiarists Like GAFAM
Links for the day
EPO Cocainegate Escalates - Part IV - António Campinos Allegedly Sleeping With Sister of "Cocaine Communication Manager" Luis Berenguer to Secure Third Mandate
Based on our understanding, "the f---ing president" Campinos - to quote rather than merely paraphrase his description of himself - is dating Ana Berenguer, sister of "Cocaine Communication Manager" (Luis Berenguer) and daughter of another Luis Berenguer, a friend of the late Jorge Campinos (António's father)
Clownflare (Cloudflare) and the 'Ecosystem' It Wants to Replace
Vercel & Next.JS Hacked - Nothing New to Report
Today, or Tonight, Look for What IBM is Hiding, Not What It's Telling Shareholders
It shapes the narrative while cooking the books
Brett Wilson LLP Working for Racists and Losing (at the Same Time It Works for Men Who Assault Women in America)
Brett Wilson LLP is basically attacking whistleblowers
The Corrupt Lecture the Non-Corrupt - Part IV - Demanding Respect From Those You Are Attacking and Robbing
"literature" aimed at staff looks increasingly comical, hypocritical, one might say inappropriate
What It Will Take for More Nations in Europe to Move Fully to GNU/Linux
It would be false to say that France is hostile towards the US
Gemini Links 22/04/2026: Voyage into Cheapness, Heat and Pressure in a Contained Ideal Gas, Tidepools
Links for the day
Links 22/04/2026: YouTube Deletes Channels to Promote US Hegemony, "Kash Patel’s Defamation Suit Against The Atlantic Is Designed To Generate Headlines, Not Win In Court"
Links for the day
Over at Tux Machines...
GNU/Linux news for the past day
IRC Proceedings: Tuesday, April 21, 2026
IRC logs for Tuesday, April 21, 2026