
A Review of Tiny Languages (2016) - azhenley
http://sustburbia.blogspot.com/2016/01/a-review-of-tiny-languages-part-1.html
======
moron4hire
One of my earliest VR demos was a BASIC interpreter, running on the screen of
a 3D model of a Commodore PET. I wrote the interpreter specifical to run a
proto-version of Oregon Trail that had been released in a magazine in the
early 70s, OCRed in the really 2000s, and largely ignored for much of all that
time.

The interpreter was pretty easy because I already had a bunch of tokenizing
code for rendering syntax highlighted code.

This was all in WebVR, back when WebVR the DK2 was the only headset around. I
have VR JavaScript code from that time that predates WebVR, running on a
smartphone, in a cardboard box with lenses from before Google Cardboard was a
thing.

I do Unity3D VR now, back into my favorite language, C#. But I do miss a lot
about that time. People were just happy anything worked. I didn't have to
compete against huge corporations for attention. I didn't have people telling
me I was reinventing the wheel, citing projects younger than mine. I didn't
have to constantly justify my engineering decisions to someone much less
experienced than me. I could just build and have fun.

Now it's a job.

------
zik
Another language of this type was CHIP-8 [1] which was run on RCA 1802 based
machines and the DREAM 6800 [2], an early Australian home computer which was
built from a kit. CHIP-8 wasn't much of a language - it was really more of a
simplified assembly language and virtual machine than anything - but it was
certainly tiny.

[1]
[https://en.wikipedia.org/wiki/CHIP-8](https://en.wikipedia.org/wiki/CHIP-8)

[2]
[http://www.mjbauer.biz/DREAM6800.htm](http://www.mjbauer.biz/DREAM6800.htm)

~~~
azhenley
Whenever I’m learning a new language, I implement a CHIP-8 virtual machine.
Always a fun project!

~~~
oso2k
Do you have any projects to share?

------
azhenley
Part 2: [http://sustburbia.blogspot.com/2016/01/a-review-of-tiny-
lang...](http://sustburbia.blogspot.com/2016/01/a-review-of-tiny-languages-
part-2.html?m=1)

Part 3: [http://sustburbia.blogspot.com/2016/02/a-review-of-tiny-
lang...](http://sustburbia.blogspot.com/2016/02/a-review-of-tiny-languages-
part-3.html?m=1)

------
thunderbong
First time I'm hearing of TinyBasicPlus[0]. And this works on Arduino!

My first program was in Basic. I'm just wondering - won't this be great to get
kids started on?

Not too much worrying about concepts or syntax? Just get your hands dirty and
get the thrill of seeing hardware change when you write some software?

[0]
[https://github.com/BleuLlama/TinyBasicPlus](https://github.com/BleuLlama/TinyBasicPlus)

~~~
toolslive
Not according to the late Dijkstra:

    
    
      > whereas the teaching of BASIC should be rated as a 
      > criminal offence: it mutilates the mind beyond recovery.
    

[http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EW...](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD898.html)

~~~
Lerc
The world is full of excellent programmers who learned BASIC as a first
language.

I've met a few that believe Dijkstra but consider themselves the rare
exception.

It's worth noting that this was probably a quip and not a serious statement
and Dijkstra probably took less stock in it than those who repeated the news
as gospel.

~~~
toolslive
My first programming language was BASIC (C64) and I don't feel too damaged,
but I exposed my children to Scratch.

------
_emacsomancer_
Is picolisp (
[https://picolisp.com/wiki/?home](https://picolisp.com/wiki/?home) ) too big
to make this list?

~~~
ahazred8ta
Their MiniPicoLisp (
[https://picolisp.com/wiki/?embedded](https://picolisp.com/wiki/?embedded) )
is smaller. (48kb dev tarball) Hard to beat
[http://wiki.c2.com/?ColorForth](http://wiki.c2.com/?ColorForth) at 2kb,
though. O:-)

------
peter303
I was under the impression that Forth was originally a tiny language on eight
bit computers. Its stack-implented reverse polish syntax required few computer
resources.

~~~
mjw1007
Forth was for 16-bit computers, and liked to do everything in 16-bit cells.

(That's 16-bit in the sense of "PDP-11" or "IBM 1130", not in the sense of
"Amiga or Atari ST", which very much didn't have a 16-bit memory space.)

~~~
AnimalMuppet
What's your definition of a 16-bit memory space, that the PDP-11 had but the
Amiga didn't?

~~~
fallous
The Amiga had 32 bit instructions and 24-bit address width (with a 16-bit bus
width). The 1130 was 15-bit address space of 16-bit words.

------
sephoric
I'm surprised Lua isn't in this list. It is excessively tiny both in its
implementation and its runtime, and I have used it in multiple projects often
just by throwing its whole source code right in. It's also very minimalist in
spirit, allowing you to turn off every single built-in function, so that you
can use it as a sort of turing-complete alternative to JSON as a configuration
language. Very cool little language.

~~~
zik
Lua's very small by today's standards but it's huge compared to the languages
being discussed here. Computers like the Altair 680 discussed here only had
1KB of ROM which is orders of magnitude away from being able to support Lua.
Lua's minimum size is about 63KB.

The "tiny" languages being discussed here are really, really tiny, and are
also very limited in their capabilities compared to a language like Lua.

