BASIC,为什么?答案可能会让你大吃一惊!(第一部分)





5.00/5 (16投票s)
为什么有些人更喜欢 BASIC 语言
BASIC已死!
BASIC是给初学者的!
BASIC不是一门专业语言!
你有这种感觉吗?你以前听过这些话吗?你可能会惊讶为什么有人比其他人更喜欢BASIC语言。我无法代表其他人发言,但我可以以自己为例,我从20世纪80年代末就开始编程,答案可能会让你大吃一惊。
如果你从未从零开始编写过一个在现实世界中实际使用的完整应用程序,那么你的看法意义不大。
困惑吗?别担心。无论你使用什么计算机语言,真正重要的是最终结果。你能构建一个在现实世界中运行良好的完整应用程序吗?诚然,今天许多人都在团队中工作,可能不会独自编写完整的应用程序,但程序员的生活总会有一天,他们真的需要拥有从头到尾编写完整应用程序的经验。为什么?
从中获得的经验是无价的!让我们来考虑一些。
时间很重要!
是的,老话说“时间就是金钱”,意思是如果一个人无法在合理的时间内开发出一个功能齐全的应用程序,成本就会过高,项目很可能会注定失败。如果一个人不能按时甚至提前完成项目,那么你喜欢的编程语言有多“伟大”或者它是否是最新的技术又有什么关系呢?一个人能多快地写出高质量的代码,就越好。猜猜怎么着?这就是BASIC程序员热爱他们的编程语言的原因之一。BASIC代码以快速编写而闻名。原因是“易用性”和“自然语法”一直是BASIC的首要目标。过去,像我这样的BASIC程序员没有可视化设计器或智能感知代码编辑器。越容易自然地编写代码,就越能快速地编写应用程序。就是这么简单。BASIC程序员使用BASIC是因为它速度快,而且易于快速编码。
如果一个程序员只是“打卡上班”,并且无论他们产生什么都能按小时获得报酬,那么他们就没有多少动力去快速编码。然而,许多BASIC程序员已经完成了合同或定制工作,以固定价格或固定预算(意味着他们可能按小时付费,但客户最多只会支付这么多)编写完整的应用程序。在这种情况下,时间至关重要。
这就是我一直使用BASIC的原因。在好的一天里,一些BASIC程序员每小时可以输出50到100行代码,而不是一天。在BASIC中编码的便捷性部分归因于其更自然的语言语法。不像C语言,它的语法似乎是为了编译器而不是程序员(诚实地说,谁想出了用花括号包围一切的点子?),BASIC的语法是为程序员设计的,即使编译器需要更努力地工作。
唯一的好代码是没有bug的代码!
如果程序员有一件事通常不喜欢做,那就是调试代码。有人可能会说,调试是浪费时间。他们可能会想,把找bug的责任推给最终用户吧。然而,BASIC是一种专为调试、编写优秀代码而设计的语言。想一想。在过去,编译时间需要很长时间(还记得把打孔卡片放进电脑,然后等了很久才编译吗?),所以当分时BASIC出现时,虽然它缺乏性能,但在质量上却表现出色。你可以输入代码,立即运行和测试,快速找到错误并修复,然后再次运行。最终结果是编写了更多可用的代码。与当时的编译器相比,BASIC简直是天堂。
多年来,对BASIC最大的批评之一是它是一个解释器,速度非常慢。在电脑速度慢的时代,解释器让BASIC变得更好。它能更快地生成更好的代码。令人惊讶的是,我今天仍然听到对BASIC的这种批评,这表明大多数程序员对BASIC的真正理解有多么少。奇怪的是,当今一些最受欢迎的语言是脚本语言,所以现在这个论点往往站不住脚。但BASIC随着时间的推移走了一条不同的道路,在保持快速开发的同时,它还在以下一两个方面赶上了性能。
一些BASIC(例如,Quick Basic,Visual Basic)采取了结合了解释器感觉的PCode编译器(即时编译)进行开发,但增加了第二个完整的编译阶段,您可以将完成的程序编译为全功能的机器语言(现在您也拥有了性能)。其他BASIC则走纯编译器路线,但编译器针对高速度进行了优化,因此编译时间非常快,您不需要PCode解释器。诸如Borlands Turbo Basic以及它今天的优秀后代Powerbasic之类的BASIC采取了这条路线。相信我,当我说是说这样的编译器可以闪电般地编译。例如,在一台典型的沃尔玛式的普通电脑(不是你典型的高端程序员PC)上,Powerbasic编译器每秒可以编译50,000行代码。Powerbasic编译器是用汇编语言编写的,所以它的编译速度非常惊人。
可靠的代码是BASIC的优势
这可能会让一些人感到惊讶,但这是真的。BASIC的自然编码风格使代码更具可读性。代码越具可读性,就越容易找到错误,并且即使多年后也能理解代码的功能。作为一名WIN32程序员近二十年,我可以证明用BASIC编写的WIN32代码比用C编写的代码更容易阅读。
特别是对于Windows,能够跟踪代码流对于编写优秀代码和调试代码至关重要。如果你无法快速阅读代码,那么尝试查找错误将是一场噩梦,简单地说。我不认为你可以把调试推给别人。最好的程序员很可能是那些调试自己代码的人,并且从一开始就努力编写优秀代码的人。
我应该指出,BASIC已经不再像早期版本那样,拥有行号和缺乏模块化语法等特性了。早期的BASIC解释器实际上是当时最先进的技术。它们利用了各种技巧来从解释器中榨取性能,从而解决了慢速计算机的问题。它们使用PCode(或标记)来提高速度。语法是为了内部的快速执行(例如,行号)。但一旦计算机跟上并拥有了不错的速度,BASIC就不再受限制,因此它很快就摆脱了过去许多受限的语法(例如,行号),并开始从其他语言(如Pascal)借鉴尽可能多的有用功能,同时保持易用性和自然语法的目标。随着时间的推移,BASIC在保持易用性的同时,增加了许多通常在C等语言中发现的低级功能,如内联汇编、指针等。简单地说,现代BASIC几乎无所不能。
摘要
到目前为止,我们已经讨论了BASIC成为有价值的语言的以下原因。首先,由于其自然语法和易用性设计,BASIC编码速度很快。其次,可读性有助于生成更好的代码,并使调试更容易。它的易用性也倾向于从一开始就生成更好的代码,减少了后续调试的需求。第三,BASIC是现代化的,并拥有现代语言所需的许多核心功能。最后,BASIC可以执行。
还有许多其他原因使BASIC程序员偏爱这种强大的语言。如果你是一名BASIC程序员,你更喜欢使用它的原因是什么?