https://jmmv.dev/2021/01/why-endbasic.html
# jmmv.dev
* About
* Essays
* Resume
* Software
* Work
* Archive
* Series
* Tags
[ ]
[search]
Why am I wasting time on EndBASIC?
January 19, 2021 * About 4 minutes * Tags: endbasic
If you have been following this blog or my social profiles for the
last year, you are probably aware that I have been working on
something called EndBASIC. You also probably know that this is a
retro-looking BASIC interpreter written in Rust that happens to run
on the web. And if you know those two things, you are probably
wondering, like some of my friends do: why am I wasting time
developing such a useless project? Because.
No, seriously, because. It is obvious that the EndBASIC language and
environment will not gain massive traction, and I do not have any
interest in inventing a perfect new language (because, let's face it,
we already have one and it's called Rust ).
So, then, why do I spend any of my scarce free time on this project?
If you must know:
* It's a fun thing to do. Just like some people enjoy watching TV
shows, playing video games, or crafting wood, I enjoy
programming. It feels like a game. And EndBASIC itself could be
seen as a game at this point.
* It's a form of art. Developing a personal project is a different
experience than developing a work project. I can spend all the
time in the world polishing the same turd over and over again,
playing with different ideas until things look best.
If you have ever considered that programming may be art, then
this kind of side project is where you crank your craft up a
notch. As just one example, working on EndBASIC's tests made me
come up with the idea of using the builder pattern for tests and
it seemed to have been well-received.
* It's a learning experience. In writing EndBASIC, I'm playing with
Rust. I strongly believe that Rust is one of the languages of the
future and it's the language that makes me say "aha, I agree" at
every corner I turn. Yet, I haven't mastered it. Working on Rust
projects lets me learn a bunch of stuff about the language that
will be helpful in future endeavors. And it's not only about Rust
per se: learning the idioms used in this language can help write
better code in any other.
Another example is that I also got to learn about WASM, targeting
the browser from a "native" app and making it work on various
different devices. This led me down the path of async programming
and how to interact with Javascript in that context--which was a
painful but eventually-gratifying obstacle to overcome.
And yet another example is that I also got to set up continuous
deployment, first via Travis CI and then via the new GitHub
Actions coolness. This, in turn, gave me ammo to write up more
interesting stuff in this blog.
* Copying an "old technology" is irrelevant. Yes, BASIC is not the
language of the future (although... VB.NET users may disagree with
you because it supports, I don't know, thousands of businesses?).
But that doesn't matter. Only 5,000 lines of the codebase (about
30% of the total) are devoted to parsing the language, and most
of those lines are unit tests anyway. If I wanted to change the
language per se to offer a more "modern" experience with things
like first-order functions, objects, etc. it'd be trivial to do
so.
To be clear, I have no interest in building my own language as
mentioned in the opening, but having worked on the building
blocks of a real language is enlightening, and having those
building blocks around will surely come in handy in the future.
So what happened to the original goal of teaching programming to my
kids via this project? Well... uhh... let's say I've gotten distracted
having fun by myself rather than actually getting them in front of
this. I should get back to that goal after all the recent
improvements to make the environment more usable and seeing if they
care at all.
But yes. For the most part, EndBASIC is a crazy/useless language.
Although... ~50 other people currently disagree with the thought of
this being useless if GitHub stars mean anything at all If you are
one of those ~50, thank you! And if you are not, join me in the
craze?
Want more posts like this one? Take a moment to subscribe!
[ ]
Follow @jmmv on Twitter
RSS feed
Enjoyed this article? Spread the word or join the ongoing discussion!
Reddit logo
Share on Reddit
Hacker News logo
Share on Hacker News
Twitter logo
Share on Twitter
<< Previous post
All posts
Subscribe
Follow @jmmv on Twitter
RSS feed
[ ]
Subscription by FeedBurner
Featured posts
* How does Google avoid clean builds?
* Unit-testing a console app (a text editor)
* Windows Subsystem for Linux: The lost potential
* Farewell, Google; hello, Microsoft!
* Configuration files and .d directories
* More...
Archive
* 2021 (3)
+ January 2021 (3)
* 2020 (36)
+ December 2020 (4)
+ November 2020 (5)
+ October 2020 (5)
+ September 2020 (2)
+ August 2020 (6)
+ July 2020 (2)
+ June 2020 (2)
+ May 2020 (3)
+ April 2020 (2)
+ March 2020 (2)
+ February 2020 (1)
+ January 2020 (2)
* 2019 (24)
+ December 2019 (8)
+ November 2019 (6)
+ October 2019 (1)
+ September 2019 (2)
+ March 2019 (2)
+ February 2019 (3)
+ January 2019 (2)
* 2018 (25)
+ July 2018 (3)
+ June 2018 (7)
+ May 2018 (2)
+ April 2018 (2)
+ March 2018 (8)
+ February 2018 (3)
* 2017 (6)
+ October 2017 (1)
+ August 2017 (1)
+ July 2017 (1)
+ February 2017 (3)
* 2016 (8)
+ September 2016 (1)
+ May 2016 (1)
+ April 2016 (1)
+ March 2016 (2)
+ February 2016 (1)
+ January 2016 (2)
* 2015 (17)
+ December 2015 (2)
+ October 2015 (2)
+ September 2015 (3)
+ June 2015 (2)
+ May 2015 (3)
+ April 2015 (1)
+ March 2015 (1)
+ February 2015 (3)
* 2014 (12)
+ November 2014 (2)
+ May 2014 (3)
+ March 2014 (1)
+ February 2014 (3)
+ January 2014 (3)
* 2013 (62)
+ December 2013 (7)
+ November 2013 (7)
+ October 2013 (7)
+ September 2013 (13)
+ August 2013 (9)
+ July 2013 (10)
+ June 2013 (9)
* 2012 (29)
+ October 2012 (1)
+ September 2012 (1)
+ August 2012 (3)
+ July 2012 (2)
+ June 2012 (2)
+ May 2012 (3)
+ April 2012 (1)
+ March 2012 (1)
+ February 2012 (10)
+ January 2012 (5)
* 2011 (60)
+ December 2011 (4)
+ November 2011 (4)
+ October 2011 (5)
+ September 2011 (11)
+ August 2011 (6)
+ July 2011 (4)
+ June 2011 (6)
+ May 2011 (6)
+ April 2011 (5)
+ March 2011 (2)
+ January 2011 (7)
* 2010 (26)
+ December 2010 (7)
+ September 2010 (1)
+ July 2010 (1)
+ June 2010 (2)
+ May 2010 (5)
+ April 2010 (5)
+ March 2010 (3)
+ January 2010 (2)
* 2009 (31)
+ October 2009 (1)
+ September 2009 (1)
+ August 2009 (3)
+ July 2009 (2)
+ June 2009 (4)
+ May 2009 (6)
+ April 2009 (2)
+ March 2009 (4)
+ January 2009 (8)
* 2008 (61)
+ December 2008 (1)
+ November 2008 (4)
+ October 2008 (6)
+ September 2008 (1)
+ August 2008 (6)
+ July 2008 (14)
+ June 2008 (3)
+ May 2008 (1)
+ April 2008 (3)
+ March 2008 (3)
+ February 2008 (9)
+ January 2008 (10)
* 2007 (86)
+ December 2007 (4)
+ November 2007 (7)
+ October 2007 (2)
+ September 2007 (8)
+ August 2007 (6)
+ July 2007 (15)
+ June 2007 (15)
+ May 2007 (4)
+ April 2007 (10)
+ March 2007 (8)
+ February 2007 (1)
+ January 2007 (6)
* 2006 (103)
+ December 2006 (4)
+ November 2006 (3)
+ October 2006 (7)
+ September 2006 (6)
+ August 2006 (13)
+ July 2006 (4)
+ June 2006 (13)
+ May 2006 (7)
+ April 2006 (9)
+ March 2006 (6)
+ February 2006 (13)
+ January 2006 (18)
* 2005 (129)
+ December 2005 (9)
+ November 2005 (7)
+ October 2005 (23)
+ September 2005 (10)
+ August 2005 (14)
+ July 2005 (5)
+ June 2005 (12)
+ May 2005 (6)
+ April 2005 (6)
+ March 2005 (13)
+ February 2005 (11)
+ January 2005 (13)
* 2004 (84)
+ December 2004 (9)
+ November 2004 (6)
+ October 2004 (11)
+ September 2004 (19)
+ July 2004 (29)
+ June 2004 (10)
Back to top
Copyright 2004-2021 Julio Merino