Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Based on:
-
Little List Interpreter (code repository) by mary@maryrosecook.com and Martin Tornwall; this project was forked from that one
-
"How to implement a programming language in JavaScript"; specially the AST concept and example
npm run test
You can run your own programs on the fly!
npm run interface
Examples to run:
"user" box stores "Gabriel Romay". Print "user".
: const user = "Gabriel Romay";console.log(user);
A programming language for people that want to communicate through code but using plain English
.
It's very experimental and opinionated.
Its main goal is teaching JavaScript
and basic programming to first-time coders
.
English
language is simple butpowerful
enough to express complex code concepts- We don't need to use random symbols or funny colors: we need
simpler abstractions
- Nowadays,
computers
can handle almost any task, but mosthumans
don't need to know thelow-level details
of how they do it - We don't need to set high intelectual walls around coding:
everybody can code
Implemented:
-
An
opened box
it's a variable that can be modified. Aclosed box
is a constant (cannot be modified). By default, abox
it's aclosed box
-
"
.
" divides code expressions. That way, user can structure their "story" in paragraphs or lonely lines. -
This language is designed for
functional programming
, and ignores completely and shamelesslyOOP
.
Pending:
-
A
machine
is a function. You call a function byturning on
amachine
-
Variable
types
will beinferred
as in vanilla JS. -
Boolean true =
yes
, false =no
-
An object is a
closet
, object atributes aredrawers
-
A file.fact is a
factory
. Abox
created inside afactory
can be used by anymachine
in thatfactory
. -
A
box
created inside amachine
can only be used by thatmachine
-
A
factory
can importboxes
andmachines
from otherfactories
, if they havewheels
(public scope). By default, they don't havewheels
(they are private).