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