Hello, EndBASIC! - Julio Merino (jmmv.dev)
source link: https://jmmv.dev/2020/04/hello-endbasic.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Hello, EndBASIC!
April 22, 2020 · About 3 minutes · Tags: endbasic, featured, programming, release, rust
INPUT "Did you ever experience BASIC (true/false)"; answer?
IF answer? THEN
PRINT "Great; you are in for a treat!"
ELSE
PRINT "Oh noes; try today?"
END IF
I have pretty fond memories of my Amstrad CPC 6128 and its Locomotive BASIC 1.1. The experience was quite unique as the computer was ready to take commands in a couple of seconds, and those commands you typed had an immediate effect on the screen. Changing colors, drawing, playing sounds… were all at your fingertips, which was pretty exciting for a young boy. I can’t tell exactly how old I was at the time, but probably not more than 6 or 7. This, combined with my father’s own knowledge (which came primarily from the machine’s user manual), is how I got hooked into coding and how I ended up doing what I do today.
This same experience repeated later with the QBASIC integrated environment that shipped with MS-DOS 6.22, although I didn’t play much with that: by that time, my father had alterady moved on to Clipper and I was having fun with Borland SideKick Plus as the “IDE”.
Anyway… fast-forward to 2020. I now have kids of my own and, having shown QuickBASIC 4.5 to the oldest (who is 7) via DosBox on a Raspberry Pi… I could sense similar excitement. I just had to type a bunch of PRINT
and COLOR
commands to get her to want to try stuff on her own. So I thought… this is cool, but it’s awkward to be confined to an old environment. Let me try to build a similar experience using newer technologies.
At first, I took Python and wrote a trivial API and REPL to simulate those basic commands… but this hack became limiting by its own hackiness very quickly. Should I write a real language parser then? Should I?
Of course the correct answer to that is should not, but I did it anyway. How hard could it be? I had not written a full-blown parser since the compilers course in University (which was pretty awesome by the way), and having something of my own would let me tweak it at will to showcase different stuff to my kids. Plus… I needed to distract my mind during these strange times.
So here we are. I give you “E. and D.‘s BASIC”. Or, rather, EndBASIC.
This first release of EndBASIC is extremely simple: the language is very limited and you really cannot do anything fancy with it. The goal here was to lay out the foundations to build new features upon what-I-think-is a solid core—which, by the way, comes with extensive testing and works on Linux, macOS, and even Windows. (Tests? For a fun project? Of course! They are a must. How do you think I will be iterate on this otherwise?)
For context, the original prototype had many more features than what’s included in 0.1.0, but I yanked them out of the tree to focus on solidifying the language interpreter. Adding those extra features should be relatively simple from here on, and I’ll be doing that soon. Things you can expect are a REPL interface with a bunch of screen manipulation commands and an in-line editor.
Obviously, due to the nature of this project, I do not expect a ton of usage or interest, but it has been super fun to build so far. And it has been an excuse to continue playing with Rust 😁
With that, head on to the project’s page for more details: https://www.endbasic.dev/
Recommend
-
7
EndBASIC 0.3 is here November 29, 2020 · About 2 minutes · Tags: endbasic, pr...
-
4
Essays Recollection of key articles I have published
-
4
什么是“总在退出过程中”职业心态? - jmmv在工作中生活的一个好哲学是“always be quitting总在退出过程中”。不,不是一直想着离开你的工作。而是表现得好像你可能会在短时间内离开一样,这与直觉相反,这将使您成为更好的工程师并开辟增长机会。那么“alwa...
-
5
Pedro Merino has brought this value of team work off the court to help the Finance team at Detectify manage company resources effectively. He describes the first call from Detectify as the best interview he’s experienced and tells...
-
3
Square Bitcoin Revenue Grows 11x Year Over YearSquare's Cash App generated $3.51 billion of bitcoin revenue in the first quarter of 2021, according to a shareholder letter published Thursday.
-
4
𝐷𝑟. 𝐼𝑎𝑛 𝐶𝑢𝑡𝑟𝑒𝑠𝑠 on Twitter: "@SUSE Halt Don’t reboot, init Found a fix, grab code from git Make a build, passed the tests Julio! Make a patch! Ride to Provo, Nuremberg, Newbury in the UK We got Linux, and there's no doubt Gonna fix that server i...
-
3
Julio Alves (@julio.c.alves)AuthorityTotal Hits
-
4
Julio Merino (jmmv.dev) Software > db_logger A database-backed logger for use with the log crate Key facts Primary language: Rust Creation year: 2...
-
1
bugzilla.mozilla.org will be down for maintenance this Saturday December 3rd starting at 5:00 PM UTC.The maintenance window should be no mor...
-
1
Our Favorite Merino Wool Clothes Keep You Comfy in Any WeatherMerino is one of the best fabrics you can wear. We explain the different blends, what GSM means, and how to care for your clothes.
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK