English 中文(简体)
有了可嵌入的Lua和Python,还需要Basic吗?
原标题:
  • 时间:2008-10-28 17:27:32
  •  标签:

我开始在ZX81上用Basic编程,然后是BASICA、GW-BASIC和QBasic。我转向了C语言(啊,Turbo C 3.1,我几乎不认识你了……)

当我开始学习微控制器时,我使用了Parallax的BASIC Stamp作为起点。然而,BASIC很棒,因为它很容易理解,又很难犯错。我最终转向汇编语言和C语言,因为我需要更多的功率(速度、容量、资源等),但我知道如果门槛太高,很多人可能永远不会涉足微控制器编程。

我一直想自己开发一款芯片上的BASIC解释器,但是我在想既然Lua和Python都可以轻松嵌入,而且与BASIC一样易于理解,那么还需要BASIC吗?

  • What, if any, are the advantages BASIC has over other languages?
  • Why is it still around?
  • If I decide to make a general purpose microcontroller board with an interpreter, is there any reason to make a version of BASIC?

许多其他语言被认为已经死亡,但是BASIC仍然坚持下去。

最佳回答

作为一种编程语言,BASIC 最著名的优点在于可以制作非常小的 BASIC 解释器 - 仅需几 KB。在 DG Nova 时代,这是一大亮点,因为您可以在仅有 64K RAM(甚至更少)的机器上使用类似 Business BASIC 的系统构建多用户应用程序。

BASIC(尤其是VB)是一种传统的系统,具有大量现有的代码库。可以说VB实际上是一种语言(有些人会说它是COM的薄包装),具有类似BASIC的语法。如今,我认为除了人们对它的熟悉和维护现有代码库之外,几乎没有理由继续保留这种语言。我肯定不会主张在这个领域进行新的开发(请注意,VB.Net实际上并不是BASIC,而只是具有类似VB的语法。类型系统并没有像VB一样被破坏)。

计算机世界中缺少的是一门易学易调的相关语言,在主流应用开发中具有重要地位。我成长于8位机的年代,当时编程的门槛非常低。机器的架构非常简单,你可以很容易地学习编程,并在这些机器上编写出更或多或少相关的应用程序。

现代架构更加复杂,学习难度更大。你会看到人们对于孩子们不如过去学习BASIC和8位计算机编程的能力进行演讲,我认为这个论点有一定的道理。有一些难点让编程变得更加困难。在这里,玩具语言并没有什么用处——为了让编程具有吸引力,你学习的语言必须能够建立与之相关的东西。

这导致了一个问题,即需要一种对孩子们来说易于学习,但仍允许他们编写他们可能真正想要的相关程序(甚至游戏)的语言。 它还必须被广泛认为是相关的。

我所能想到跟这相似的语言是Python。它不是唯一的这种类型的语言,但它是拥有最多人使用的-同时也是我认为在这个领域中必须要有的相关性认知。它也是我在几十种语言中经历过的最容易学习的语言之一。

问题回答

这可能听起来比实际情况更消极。我并不是说Basic是万恶之源,其他人已经说过了。我是说它是我们可以放弃的一项遗产。

"因为它非常易于理解和犯错误很难" 这毫无疑问是有争议的。我在使用完全不透明的基本语言方面有过一些不好的经历。专业的东西 - 商业产品 - 完全糟糕的代码。不得不放弃并拒绝工作。"

基本上没有。

为什么它仍然存在?两个原因:(1)微软,(2)所有开始使用VB的IT部门现在拥有数百万行VB遗留代码。

很多其他语言被认为已经死亡...是的。 BASIC与COBOL,PL/I和RPG并列作为遗产,有时可能具有更高的成本而非价值。但是由于大型IT的“不修无痛”的政策,它们就坐在那里,占用资源,这些资源本来可以轻松地用更小,更简单和更便宜的东西来取代它。除非它没有“失败” - 它只是成本不成比例。

30岁的COBOL重新制作是一个可怕的情况。从2016年开始,我们将关注30年历史的MS Basic,我们无法理解,不想没有它,又无法决定如何替换它。

"但基本语言仍然继续存在。" 有些人喜欢基本语言,但也有人认为它是另一种设计不良的语言;它的优势在于早期进入市场和得到巨大的厂商支持(最初是IBM)。设计不良、早期进入市场只会留下我们将在几十年内一直遭受的遗产。

我仍然拥有我1965年版的“达特茅斯基础手册”。我并不渴望那些美好的旧日。

为什么不试一下Jumentum,看看它对你的效果如何呢?

将此翻译为中文:http://jumentum.sourceforge.net/ http://jumentum.sourceforge.net/

这是一个针对微控制器的开源BASIC。

Elua项目也是Lua为微控制器提供的。

将此翻译成中文:http://elua.berlios.de/

BASIC持续存在,特别是在STAMP实现中,因为它比大多数其他非常易学的编程语言更低级。对于大多数嵌入式BASIC实现,BASIC指令直接映射到单个或多个机器指令,开销非常小。用类似Lua或Python这样的“更高级”的语言编写的相同程序在同一微控制器上运行会慢得多。

PS:像PBASIC这样的BASIC变体与Visual BASIC等命名相似的语言很少有共同点。它们已经分化成了截然不同的方式。

好问题...

基本上 (sic!),我没有答案。我只能说Lua很容易学,可能和BASIC一样容易(BASIC也是我最早学的语言之一,我在很多8位计算机上使用方言...),但它更加强大(允许OO或函数式风格,甚至混合它们),而且有点严格(没有goto...)。

我不是很了解Python,但根据我所读的,它与Lua一样易学、强大和严谨。

此外,两者都是实际上“标准化”的,即与Basic不同,它们没有方言(除了各种版本)。

同时,两者都拥有精心制作的VM,高效,(大多数时候)无漏洞。如果要自己编写解释器,则应选择现有的VM并从Basic源代码生成字节码,或者自己编写。当然是一件有趣的事情,但也很耗时且容易出现漏洞...

所以,我会让基本语言度过美好的退休生活... :-P

PS.: Why it is hanging on? Perhaps Microsoft isn t foreign to that... (VB, VBA, VBScript...)
There are also lot of dialects around (RealBasic, DarkBasic, etc.), with some audience.

冒着像两个坐在摇椅上的老人一样的风险,让我不悦地说“现在的孩子不珍惜BASIC”,然后自相矛盾地说“他们不知道自己有多好。”

BASIC的最大优势始终是它的易理解性。这是人们可以理解的东西。这一点在学术界和语言开发者长期被忽视。

当您谈论想要实现BASIC时,我假设您不是在谈论有行号的BASIC,而是一种结构化形式。问题在于,一旦您开始转向结构化编程 - 函数,为什么我不能只GOTO那个点?等等 - 很难确定如果有的话,BASIC相对于Python的优势是什么。

此外,BASIC 之所以“易于正确理解”的原因之一是当时图书馆不像今天那么重要。图书馆意味着结构化,如果不是面向对象的编程,再次您会发现更现代的动态脚本语言更适合现今人们的实际情况。

如果实际问题是“嗯,我想要实现一个解释器,所以这取决于投资回报率”,那么它变成了一个实际很容易实现的语法问题。我建议基础语言在这方面也没有那么多优点(除非你真的返回到行号和非常有限的语法)。

简而言之,我认为你不应该投入精力来开发BASIC解释器。

嗯,这些人似乎认为基础功能不仅在移动空间中仍有市场,而且他们可以从中赚钱。

将此翻译为中文:http://www.nsbasic.com/symbian/ http://www.nsbasic.com/symbian/

我也从ZX81开始。但正如Tony Hoare所说,使用BASIC编程就像试图使用罗马数字进行长除。

Plenty of other languages are considered dead, but basic just keeps hanging on.

可悲的是,是的。我责怪比尔·盖茨这个...... BASIC被抬上担架,与牧师说最后的祈祷,然后微软却把它带回来,就像天花一样。

我曾经在QBasic时代使用BASIC编程。 QBASIC有子程序、函数、结构(过去称为类型),我想这就是全部了。现在,与Python拥有的所有特性相比,这似乎非常有限——面向对象、lambda、元类、生成器、列表推导式,只是我随口说的几个。但是,我认为这种简单性是BASIC的一种优势。如果您正在寻找一个简单的可嵌入语言,我敢打赌QBasic会更快、更容易理解。对于大多数嵌入/脚本类型的应用程序来说,过程化的语言可能已经足够了。

我认为BASIC仍然存在的最重要原因是Visual Basic。在90年代的很长一段时间里,VB是编写Windows GUI、COM和DB代码的唯一方式,而不会陷入C++图灵陷阱中。[也许Delphi也是一个很好的选择,但不幸的是,它从未像VB那样流行]。我认为,正是因为所有这些仍在使用和维护的VB和VBA代码,BASIC仍然没有死亡。

话虽如此,我认为今天为BASIC编写基础解释器(甚至可以使用LLVM或类似的编译器)有相当好的理由。如果你实现类似QBasic的东西,则会得到一种干净、简单、易于使用和快速的语言。你不必解决任何语言设计问题,最好的部分是人们已经知道你的语言。





相关问题
热门标签