HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
JohnEarnest
Mako
Forth2011–2026
JohnEarnest / Mako

Mako

A simple virtual game console

9Distinct people
39Mentions
0Explicit recommenders
596GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A simple virtual game console

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:03:49 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year39 dated mentions

Observed mentions: 2011-07-03 20:17:36 UTC to 2026-02-26 11:19:32 UTC.

024682011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20112012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 7 mentions; 2 submissions, 5 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC505
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC808
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC725
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC303
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC202
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC404
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC422
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC110

What Hacker News says

8 sources
For someone who already knows how to program, Python seems to be very easy to pick up. It's still a tremendously more complex language than BASIC. I help teach an after-school programming class for middle schoolers. Last year, we tried using Python. While some students got the hang of it, many seemed confused and demotivated. This year, I wrote a simple TinyBASIC REPL from scratch[1], aiming to produce the simplest subset of the language that made it possible to do interesting things and illustrate concepts like looping, branching, variables, etc. It was a big hit with the kids, and the whole class has been extremely engaged. As a next step, I've built a Logo[2] implementation so that we can move into writing modular, reusable procedures and play with graphics. Learning to program is almost entirely orthogonal to learning a language, and
Read the rest
I think that starting with very small "toy" languages is a good way to approach teaching core concepts without getting lost in the quirks and complex features of popular "real" languages. BASIC is small, Python will never be. [1]https://github.com/JohnEarnest/Mako/tree/master/demos/Masica [2]https://github.com/JohnEarnest/Mako/tree/master/demos/Loko
In Is Python The New Basic? ("Python For Kids")
I've been using Forth for a while to write small video games, and honestly I find the process delightful. The extreme simplicity and flexibility of the language lend themselves well to the kind of special-case explosion that often occurs as I tinker with game logic, and puzzling out the cleanest way to express complicated ideas is very intellectially satisfying. Working on a simulated game console with no underlying operating system and unrestricted access to memory seems to be an ideal case for the language. If anybody's curious, all my development tools and forth code are on github: https://github.com/JohnEarnest/Mako
In My History With Forth And Stack Machines
Honestly, maintaining the stack in your head is a skill that can be learned with practice. In my own experience, it was very hard at the beginning but over the course of a few weeks it became second nature. You get used to idiomatic ways of doing things- arranging expressions so that they don't become deep, factoring words apart as a means of reducing the number of elements you care about in a given context, when to use a variable or two to untangle a complex expression. From the debugging side, well-factored code consists primarily of short pure functions with a very small number of code paths. This couldn't be a more perfect scenario for TDD. In my own projects I use an extremely simple unit testing system called the Test Anything Protocol (TAP). Here's an example of a fixture: https://github.com/JohnEarnest/Mako/blob/master/lib/Test/te
Read the rest
In A Forth Story...
Garbage collection isn't necessarily that difficult, especially when you're in a single-threaded (or cooperatively multithreaded) environment and don't have to contend with an OS. Here[1] is a cons-pair system I wrote in Forth which uses tag bits to identify pointers, a mark-and-sweep garbage collector and a free-list style allocator. GC takes linear time with respect to heap size, and allocations are constant time. The allocator itself (not counting all the list utility routines) is about 60 lines long and fairly easy to understand. [1] https://github.com/JohnEarnest/Mako/blob/master/lib/Algorith...
In Notch's Specification for the In-Game DCPU-16
That's sort of the idea behind a project I've been tinkering with for a while called Mako[1]. It's an extremely simple VM that is essentially an idealized game console. I initially designed the system as a convenient way to play with compiler design (currently compilers for Forth, BASIC, FORTRAN and a BCPL-like language are available, in varying degrees of robustness), but having some limitations to work within has proven quite fun from a game development standpoint as well. A few of my friends and I intend to roll a linux distro for the RaspberryPi which makes it into a physical "Mako game console", and in addition to playing games[2][3][4](etc) you'll be able to play with an interactive Forth prompt.[5] [1]https://github.com/JohnEarnest/Mako [2]http://i.imgur.com/IVNdt.png [3]http://i.imgur.com/mJ1ZD.png [4]http://i.imgur.com/Xu
Read the rest
In Girls and Computers
Thanks! I encountered Ngaro shortly after I started designing Mako. Aside from I/O functionality they are fairly similar, but I think storing the stacks and registers in addressable memory is a more flexible design than keeping them separate as Ngaro does. For one thing it means it's possible to remap the stacks at runtime and easily implement cooperative multitasking.[1] Games of the type I'm writing don't really need Ngaro's file I/O capabilities, but they could be very useful if I wanted to make a bootstrapped version of my Forth compiler. Trying to recompile Ngaro bytecode to run on Mako could be an interesting weekend project... [1] https://github.com/JohnEarnest/Mako/blob/master/examples/Thr...
In IBNIZ - A hardcore audiovisual VM

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.