如果您去年一直关注此博客或我的社交资料,则可能会知道我一直在从事EndBASIC。您可能还知道,这是用Rust编写的具有复古风格的BASIC解释器,它恰好在Web上运行。而且,如果您知道这两件事,您可能想知道,就像我的一些朋友一样:为什么我要浪费时间开发这样一个无用的项目?因为。
不,认真的,因为。很明显,EndBASIC语言和环境不会获得广泛的关注,而且我对发明一种完美的新语言也没有兴趣(因为,面对现实,我们已经拥有一种语言,称为Rust😉)。
那么,为什么我要在这个项目上花费所有稀缺的空闲时间呢?如果您必须知道:
这是一件有趣的事。就像有些人喜欢看电视节目,玩视频游戏或手工制作木头一样,我喜欢编程。感觉就像一个游戏。在这一点上,EndBASIC本身可以看作是一个游戏。
这是一种艺术。开发个人项目与开发工作项目是不同的经历。我可以将世界上所有的时间都花在一次又一次地抛光同一根草皮上,玩弄不同的想法,直到一切看起来最好为止。
如果您曾经认为编程可能是艺术,那么这种辅助项目就是您提高技巧的地方。仅作为一个例子,从事EndBASIC的测试使我想到了使用构建器模式进行测试的想法,并且它似乎已广受欢迎。
这是一种学习体验。在编写EndBASIC时,我正在玩Rust。我坚信Rust是未来的语言之一,正是这种语言使我在每个转弯处都说“啊哈,我同意”。但是,我还没有掌握。在Rust项目上工作使我学到了很多有关该语言的知识,这将对将来的工作有所帮助。这不仅与Rust本身有关:学习该语言中使用的习惯用法还可以帮助编写其他更好的代码。
另一个例子是,我还学习了WASM,从“本机”应用程序定位浏览器并使之在各种不同的设备上运行。这使我走下了异步编程的道路,以及如何在这种情况下与Javascript进行交互-这是一个痛苦但最终令人欣慰的克服障碍。
还有另一个例子是,我还必须首先通过Travis CI,然后通过新的GitHub Actions酷性来设置连续部署。反过来,这给了我弹药,使我可以在此博客中撰写更多有趣的内容。
复制“旧技术”是无关紧要的。是的,BASIC并不是未来的语言(尽管……VB.NET用户可能不同意您的看法,因为它支持(数千个企业,我不知道)?)但这没关系。代码库中只有5,000行(约占总数的30%)专用于解析语言,而且无论如何这些行中的大多数都是单元测试。如果我想更改语言本身以在诸如一阶函数,对象等方面提供更“现代”的体验,那将是微不足道的。
明确地说,我对构建自己的语言(如开篇所述)没有兴趣,但是从事真正语言的基础知识的工作将启发人,而将来围绕这些基础知识肯定会派上用场。
那么通过这个项目向我的孩子教授编程的最初目标发生了什么?好吧...呃...比方说,我变得分心了,我自己一个人玩,而不是真正让他们站在这前面。在最近进行了所有改进以使环境更可用之后,我应该回到该目标,并查看它们是否在乎。
但是,是的。在大多数情况下,EndBASIC是一种疯狂/无用的语言。虽然…目前有50多个人不同意这个想法,如果GitHub明星根本没有任何意义的话,这是没有用的。如果不是,请加入我的热潮?