2020年,5 种 将死的编程语言

Python013

2020年,5 种 将死的编程语言,第1张

曾几何时,几乎每个人都在使用Perl语言编程。但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲。至少我知道有这么个叫做“piecemeal”的编程语言,它的创造者似乎就只是将这个功能堆在另一个功能上面而已,并没有好好考虑将它们结合在一起。

Perl

曾几何时,几乎每个人都在使用Perl语言编程。但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲。至少我知道有这么个叫做“piecemeal”的编程语言,它的创造者似乎就只是将这个功能堆在另一个功能上面而已,并没有好好考虑将它们结合在一起。

事实上,甚至是它的创造者也不得不承认这种编程语言是有问题的。经过完整地改造之后,现在的开发工作开始倾向于使用Perl6,这个大概是在2000年的时候。至于Perl?俨然已经销声匿迹了!所以完全没有必要去学习它了。顺便说一句,下面这个“Goodbye World”就是用Perl写的:

上面这个例子会出来一个网页。现在的Perl,由于可以作为CGI脚本语言,所以使用的最广泛的是在生成web页面上。但是为了适应时代的变化, 我们最好还是将Perl语言“弃之如敝履”。

Ruby

关于Ruby,可以这么唱“十年之后,我不认识你你不属于我……”。因为就在10年前,Ruby语言可谓是风靡一时。它出生于1995年,5年左右达到它的鼎盛时期。如果你经常使用的话,绝对会义无反顾地爱上它。但是,像我们这些学着C语言风格长大的孩子在学习Ruby时往往会觉得有点囧。

下面是用Ruby写的“Goodbye World”:

下面是一个用于计算阶乘的例子:

我测试了这个例子,来计算1000的阶乘。下面是结果(由于篇幅限制,中间略过了2569个数字):

从各方面来看,Ruby都很好,几乎是一片赞誉声……除了Twitter。在2011年4月,Twitter宣称他们已经将几乎大部分的代码都改写过了,以便不必使用Ruby和它的web框架——Ruby on Rails,据他们所说这个平台非常之低效。不过,我想说的是,也正是那一天起,Ruby开始走下坡路,使用的人数也是越来越少。

Visual Basic.NET

十年前,我应聘到一个需要重写大量代码的公司,名字我已经忘记了,主要工作就是将VB6转换为Visual basic.NET。大概就只干了一两个月吧,我就跳槽了:真心太痛苦了。

微软钟爱于BASIC编程语言的扩展可以一路追溯到1991年,那时他们刚刚采购了来自Alan Cooper的一个非常酷(对于那个时候而言)的可视化编程设计。Alan Cooper初期使用的是别的编程语言,但是比尔盖茨让他换成BASIC语言,因为盖茨认为那是当时最为简单的编程语言。于是乎,大名鼎鼎的Visual Basic,就从BASIC中衍生出来——对象这一概念以及新的编程技术问世了。

后面又发生了一些很有意思的事情。Borland Delphi的创造引领者,Anders Hejlsberg也到微软工作,并且引领创建了一个新的编程语言——C#。这种编程语言非常类似于Java语言。刚开始的学习或许有点难,但是一旦上手,你绝对会对它爱不释手。C#很快就成为了微软的旗舰编程语言。现在的话,在软件行业中,有很多很多需要C#的工作岗位,不少都是高薪聘用的。

虽然针对自己的CLR运行,微软创建了C#,但是它的工程师们另外还创建了一个盖茨深爱的BASIC语言版本,命名为Visual Basic.NET。该编程语言借用了BASIC语言的语法,但是它的编码方法却与C#相似。虽然Visual Basic.NET也在发展,但是优胜劣汰总是不可避免的——大家都选择了C#,于是Visual Basic.NET就成为了明日黄花。

下面是摘自微软网页上的一段Visual Basic.NET程序

这里的“Hello World”也可以替换成“Goodbye World”,这个没关系。

Adobe Flash和AIR

从技术上讲,这些都是平台,而非编程语言。我之所以将它们包含进来是因为如果你想要使用它们,就必须安装Adobe自己的ECMAScript版本,即ActionScript。ActionScript是JavaScript(当前最流行的编程语言之一,因为它能用于所有的浏览器)的一个近亲。ActionScript在ECMAScript(这是JavaScript实现标准的官方名称)中增加了一些细节;但是除了Adobe Flash,其他地方几乎没有ActionScript的用武之地。

你使用Flash不?乔布斯非常讨厌它,并且也不允许iPhone使用它。然后随着iPhone(以及随后的iPad)的逐渐普及,Web开发人员不得不创建不必依赖于Flash的网站。那些以ActionScript为生的开发人员也不得不纷纷下岗。(我曾经看到过一个Flash开发人员指责另一个JavaScript开发人员毁了他的职业生涯。)

Adobe也曾试图通过AIR以求得其编程平台的一线生机,于是配建了一个用于构建AIR app的工具,称为Flex。至于AIR,许多人都说,这是一场灾难。不过我们目前也不知道为什么Adobe会推出AIR,可能是想用AIR取代Flash?也可能是想要AIR和Flash相亲相爱共同发展?

记得有一段时间,得益于Twitter平台——TweetDeck(要求用户在电脑上安装AIR运行时)的使用,AIR很是红火了一阵子。那时大概有数以百万计的pc AIR应用被开发出来,只是后来Twitter在2011年买了TweetDeck之后,又改写本地代码取代了AIR。于是乎,AIR的辉煌就到此为止。

随着Flash和AIR的逐渐逝去,Adobe的ActionScript也开始向世界吻别。下面是一些用ActionScript写的代码示例。

你可能会发现这与JavaScript非常相似,都使用var、function和new,并且也使用小数点来访问成员变量。

Delphi’s Object Pascal

首先我得向我曾经的好伙伴Delphi表示歉意,因为我不得不公布Object Pascal的“死讯”。well,Delphi(用于发Object Pascal的工具)历经变迁之后,依然苟延残喘着(它起源于Borland公司,现在抱着Embarcadero公司的大腿)。

早先Delphi和它的Object Pascal语言确实给我们提供了一个良好的工作环境:虽然有点啰嗦,但是编译器很快,而且相比Visual Basic(这里指的是pre-Visual Basic.NET,1995年左右),创建Windows程序更容易。

但是它的优势并没有持续下去。也很难说是什么原因,因为这个平台真心是不错的。就在这时,Borland公司开始在其Delphi的产品线上支持C#和C++。发展到后来,Borland公司甚至直接将Delphi卖给了Embarcadero公司,然后Embarcadero公司继续使用Delphi开发产品。话说,它做得相当不错,但是重点再也不是Pascal了。当然,你依然可以用Pascal编程,但是几乎没人走这条路了。事实上,我们可以使用Delphi建立许多不同的平台,包括iOS、Android,以及Linux操作系统。

但是,如果你去Embarcadero公司的网站看看,你会发现他们主要是在促进Delphi’s C++ 的支持。因此,换言之就是,Object Pascal已然逝去了。写到这里,我不禁悲从心来,因为我花了很多很多时间来学习Pascal语言,特别是Delphi’s Object Pascal。但是没办法,现实就是如此残酷,不转行就只能饿死。

下面请看Object Pascal的代码:

译者注:以上观点仅代表作者个人观点,请文明礼貌按秩序吐槽。

那么这将“亡”的五大语言中有你所擅长的吗?

☞复工大势下,远程办公的 科技 企业只能“坐以待毙”吗?

☞美团十年,支撑全球最大规模外卖配送的一站式机器学习平台是如何炼成的?

☞腾讯提结合ACNet进行细粒度分类,效果达到最新SOTA | CVPR 2020

☞我最喜欢的云 IDE 推荐!

☞智能合约编写之Solidity的高级特性

☞返鄂复工人员自述:回武汉上班,要先飞合肥,再由公司包车接回去

问题一:计算机语言有哪些?怎么分类? 计算机语言(puter Lnguage)指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。

计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。

计算机语言主要分为三类:

- 低级语言

- 高级语言

- 专用语言

1、低级语言

- 机器语言、汇编语言和符号语言。

- 汇编语言源程序必须经过汇编,生成目标文件,然后执行。

2、高级语言

- BASIC(True basic、Qbasic、Virtual Basic)、C、PASCAL、FORTRAN、智能化语言(LISP、Prolog)等等。

- 高级语言源程序可以用解释、编译两种方式执行。通常用后一种。

我们使用的C语言就是使用的后者。

3、专用语言

CAD系统中的绘图语言和DBMS的数据库查询语言。

1.1.机器语言

电子计算机所使用的是由0和1组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由0和1组成的指令序列交由计算机执行,这种计算机能够认识的语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。

因此程序就是一个个的二进制文件。一条机器语言成为一条指令。指令是不可分割的最小功能单元。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。

1.2.汇编语言

为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用ADD代表加法,MOV代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。

汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。

1.3.高级语言

1.3.1.高级语言的发展

从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言--FORTRAN问世了,40 多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、Delphi、JAVA等。

特别要提到的:在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性......>>

问题二:计算机语言都包括什么语言?及其各个应用领域? 1、web page script languages

就是网页代码,比如Html、javascript、Css、Asp、Php、Xml都应该属于此类(照蔡的意思,Html不应该属于anguages的,可能他觉得太简单了吧,不过我觉得Html也应该算的,大家爱听谁的就听谁的好了,这个不重要)

2、Interpreted Languages(解释型语言)

包括Perl、Python、REBOL、Ruby等(后面三个听豆没听过),也常被称作Script语言,通常被用于和底下的操作系统沟通。照蔡的意思,每个人至少应该学会一套这类的语言。这类语言的缺点是效率差、源代码外露――所以不适合用来开发软件产品,一般用于网页服务器。

3、Hybrid Laguages(混合型语言)

代表是JAVA和C#。介于解释型和编译型之间。蔡认为C#是.NET最重要的语言,值得期待其后续发展;至于JAVA,蔡叫看他的《Sleepless in Java》――我倒!

4、PILING Languages(编译型语言)

C/C++,JAVA都是编译型语言。蔡说C++很复杂,要成为高手没三五年是不行的(就凭这句话,我决定向JAVA投降),虽然如此,但真正要成为高手的都应该懂C/C++。

关于Delphi,蔡说如果想要跨Linux和Windows平台的语言,则Delphi似乎是最好的选择。

5、Assembly Languages(汇编语言)

汇编语言是最接近于硬件的语言,不过现在几乎没多少人用了。

程序语言学习顺序建议

如果完全没有程序经验,可照这个顺序:javascript――解释型语言――混合型语言――编译型语言――汇编(如果需要的话)

用业界流行一句话做结尾“真正的程序员用C++,聪明的程序员用Delphi”,那么,什么样的程序员用JAVA呢?

虚怀若谷题外话

看在我这么晚了还这么辛苦的敲字的面子上,看到这篇帖子的朋友给点掌声吧,虽然没什么自己的思想。

另外,本文完全据蔡学镛先生同名文章精简,所以如果这篇文章给你的程序员生涯有什么不好的作用,那我不介意你去扁他。当然如果这篇文章对你有什么积极影响,我很高兴你能请我吃大餐。

如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!

方案一 Basic语言 &Visual Basic

优点

(1)Basic 简单易学,很容易上手。

(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。

(3)众多的控件让编程变得象垒积木一样简单。

(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。

缺点

(1)Visual Basic 不是真正的面向对象的开发文具。

(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。

(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。

综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB......>>

问题三:常用的计算机编程语言有那些 种类很多,要学的话,主要看你要从事哪个方面,编程都是大同小异,如果你学会一门,其他的学起来也就轻松许多。 如果你想当个普通的公司职员,建议C\C++这类的。 如果你想当个破解人员,建议汇编(我觉得是相当的难...)。 如果你想当个黑客,拥有一定的软件知识(很低层的那种)和硬件知识(使用软件掌控硬件)和网络知识(入侵这类的)。 如果你想当个红客,主要是网络安全知识。

这需要看将来想从事什么类型软件的开发吧。如果在国内开发windows类型应用程序,据说vb比较流行,但如果开发和硬件关系较大的嵌入式程序,则使用较多的还是C语言,而网络这个方面,无论是有线还是无线,大多数都选择了JAVA。以上是从应用角度来讲的,如果从性能和投入方面分析,C语言无疑性能上最好的,但它的复杂度太高,开发和维护费用较大,一般比较好的游戏程序或者速度要求较高的程序会选择C++来开发,而VB等由于它的简易性,可以极大缩短开发周期,也是程序员的宠儿之一。另外有一种语言python在国内逐渐出现,国外好像已经流行了十几年吧,linux的引导程序和BT的一些组件都是用它开发的,具有开发周期短,易维护等特点,运行速度也比JAVA要快,并且面向对象,无平台限制,据说还开放了源码,不过由于在国内流行时间不长,各大公司出于对以前开发代码的兼容性的需要,可能一时间接受不这个语言,但可以明显看出,它的发展潜力相当大。 总而言之,C为基础,掌握JAVA,会用VB,了解python,应该看得出这几个词汇之间的轻重差别吧。:)单机编程语言主要有qb,vb,c++,vc++,c语言,我觉得最常用的是c语言,因为现在我们常用的windows操作系统就是用c 语言编写的.非常常用. 网络编程语言现在用的是html 语言,还有java.ada

asp(含asp.NET)

basic(含VB)

b(C语言的前身)

css

c(含VC)

c#(含VC#.NET)

c++(含VC++.NET)

fortran

foxbase

html(含xhtml和shtml)

jacc(不确定是不是这个名字了,一种开发语言的语言)

java

java script

jsp

latex

lua

pascal

perl

php

prolog

python

ruby

sgml(html和xml用得很多,单独列出,其实也是一种sgml)

shell

sql

tcl/tk

vb script

xml 最常用的是 JAVA C C++  java VB 是比较好学的 最牛的要属C#了

世界上编程语言太多了,就像每个国家都有自己的语言一样的.但是从编程语言发展的角度说:

大概经历 这样 四个阶段: ############################################################

第一个阶段是 机器码编程 (你肯定知道计算机只能识别0和1,以前就是这样编程的).现在的PC计算机依然是这样,冯.诺依曼结构的计算机.你可以去网上搜索 冯.诺依曼 是干什么的.你会想,为什么现在编程不是0,1,计算机怎么识别呢?当你开始编程的时候,你用的编译器就在做这些事情.

########################################################### ##########################################################

第二个阶段是 低级语言,比如汇编语言,台湾叫做组合语言.其实组合......>>

问题四:最简单的计算机语言有哪些? 网页上的html是最简单的语言,但是功能实在少得可怜,除了描述网页就没有别的用途了(不过话说回来,直接描述网页也只有它才能做到,其他语言做不到)

Script(脚本)系列 也很简单

这里有很多种,常见的有Javascript(引进了Java的一些思想,不过实际内容简单得多了),VBScript (Visual Basic的一部分), C#Script(C#的一部分), 这三种主要用于网页网站设计,辅助html间接描述网页,让网页变得丰富多彩绚丽,而单机上也可以运行以执行一些可自动化的操作,实现一些简单的小程序和一些手动操作非常麻烦甚至是不可能的操作,但还是难以编完整的独立的程序,还有批处理bat,这也是一种脚本,也很简单,专门单机使用,擅长代替大量的手工操作和系统维护,但要做出我们常用的这种漂亮的程序,是不可能的。

想要做我们常用的程序要用以下几种语言,不过相比之上面的语言都复杂许多:

Basic系列是最简单的,不过因为版本多样不统一还有一些效率的问题,所以用的人不是非常多

不过其中有一个例外:Visual Basic 有微软的支持,可视化的,可以很快有成就感编出像样的程序,而且很多文档中的宏 VBA(Visual Basic for Application)还有以上说的VBScript都是它的一部分,所以还是很受欢迎的。

C语言,入门还比较简单,但挺枯燥,初学没什么成就感,要想编大程序要学得挺深,有点难,编出来的程序在高级语言中效率最高,所以是第二广泛使用的语言仅次于Java。

C++,C#,会更难一点,但是程序要编大的会相比之下简单点,这些都是C语言的扩展,其中C++擅长本机大程序,C#适合网络编程(刚才说的C#Script是它的一部分)

Java,语法上类似C++,在跨平台的时候会省你很多麻烦,所以由于手机的普及近一两年它才超过C/C++成了应用最广泛的语言。不过开发出来的程序效率比较不怎么样,但有些人挺喜欢它的思想,所以不跨平台的话,见仁见智

其余的还有Delphi,Pascal,等等不过那些都不怎么常用而且比较复杂,要图简单,强烈推荐Visual Basic,要深究程序内部的东西那还是从C开始比较好

问题五:计算机有哪些语言 工业编程语言: A+ | Ada | 汇编语言| B | Brain *** | C | C++ | C++/CLI| Cg | COBOL | Eiffel | Erlang | FORTRAN | IronPython | Java | JRuby | Jython | LISP | Oberon | Objective-C| Ocaml | Pascal | Perl | Powerbuilder | Python | QBASIC | R | REXX | Ruby | Self | Smalltalk | SQL | Tcl/Tk | Visual Basic | PHP | C# | F# | J# | Visual Basic .NET

脚本编程语言: ActionScript | JavaScript | JScript | Nuva | PostScript | VBScript | lua

学术编程语言: APL/J | Haskell | Logo | ML | pascal|Prolog | Scheme | SAC

其他编程语言: ALGOL | BASIC| Clipper | Forth | Modula-2/Modula-3 | MUMPS | PL/I | Simula

问题六:计算机所有的编程语言都有哪些? ALGOL (also under FORTRAN)

Atlas Autocode

ALGOL 60

Simula (see also Simula based languages)

ALGOL 68

Burroughs Extended ALGOL

ALGOL W

Pascal

Ada

SPARK

Turbo Pascal

Object Pascal (Delphi)

Free Pascal (FPC)

Kylix (same as Delphi, but for Linux)

Euclid

Concurrent Euclid

Turing

Turing Plus

Object Oriented Turing

Modula-2

Modula-3

Oberon (Oberon-1)

Oberon-2

ponent Pascal

Objective Modula-2 (also under Objective-C and Smalltalk)

CPL

BCPL

B

C

tcsh (also under sh)

Alef

Limbo

Coyote

C++

Java

Groovy

Join Java

J#

Processing

X10

C#

Windows PowerShell (also under DCL, ksh and Perl)

C--

D

ColdFusion

eC (Ecere C)

LPC

Pike

Objective-C (also under Smalltalk)

Objective Modula-2 (also under Modula-2 and Smalltalk)

PCASTL (also under Lisp)

Perl

Windows PowerShell (also under C#, DCL and ksh)

S2

PHP

PDL (also under APL)

QuakeC

MCPL

APL

A+

Glee

J (also under FL)

K (also under LISP)

NESL

PDL (also under Perl)

BASIC (also under FORTRAN II)

Amiga Basic

AMOS BASIC

BASIC Stamp

BASIC09

Basic4GL

BlitzBasic

Blitz3D

BlitzMax

BlitzPlus

Business Basic

Caché Basic

AL

DarkBASIC

Euphoria

PlayBASIC

PowerBASIC

Quickbasic

QBasic

Liberty BASIC

Just BASIC

Run BASIC RealBasic

thinBasic

TI-BASIC

TrueBASIC

Visual Basic

VBScript

Visual Basic for Applications (VBA)

Visual Basic .NET

YaBasic

COBOL

DIBOL

WATBOL

MS-DOS Batch files

Winbatch

CLIST

IBM Job Control Language (JCL)

IT

SNOBOL

Icon

Unico......>>

问题七:计算机语言中常用的有哪些? 1. 计算机常用语言除了C ,C++ ,VB ,JAVA 外还有什么? 他们的优点和区别?

还有很多了,不过一般都不怎么常用

优点嘛,C,C++运行比VB要快

VB是解释型语言,运行的话需要对应的运行库的支持。不过上手容易。

JAVA的话最大的优点是跨平台。

2. 学习做网页HTML PHP ASP JSP 和(问题1)中的哪些语言挂钩 ? 是否均需要HTML做基础?

一般HTML中的脚本和VB与JAVA都有点联系。

不过语言都是通的,就是关键字,系统保留字不一样而已。

学习的话最好是要有HTML的基础。

3. PHP ASP JSP 和SQL MYSQL 等其他数据库怎样搭配?

随意的,看具体的用途。

有些数据库不能用于大型的站点,好象有限制的。

具体可以查一下数据库的说明。

问题八:电脑编程语言都有哪些啊? 工业编程语言: A+ | Ada | 汇编语言| B | Brain *** | C | C++ | C++/CLI| Cg | COBOL | Eiffel | Erlang | FORTRAN | IronPython | Java | JRuby | Jython | LISP | Oberon | Objective-C| Ocaml | Pascal | Perl | Powerbuilder | Python | QBASIC | R | REXX | Ruby | Self | Smalltalk | SQL | Tcl/Tk | Visual Basic | PHP | C# | F# | J# | Visual Basic .NET

脚本编程语言: ActionScript | JavaScript | JScript | Nuva | PostScript | VBScript | lua

学术编程语言: APL/J | Haskell | Logo | ML | pascal|Prolog | Scheme | SAC

其他编程语言: ALGOL | BASIC| Clipper | Forth | Modula-2/Modula-3 | MUMPS | PL/I | Simula

问题九:计算机语言有多少种?分别是哪些?最早的是? 太多了 主要分为三类:高级、低级、专用语言。

高级有:FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、JAVA等

低级有:机器语言、汇编语言和符号语言等

专用语言:CAD系统中的绘图语言和DBMS的数据库查询语言等

最早的应该是汇编语言

问题十:计算机语言有哪些?怎么分类? 计算机语言(puter Lnguage)指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。

计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。

计算机语言主要分为三类:

- 低级语言

- 高级语言

- 专用语言

1、低级语言

- 机器语言、汇编语言和符号语言。

- 汇编语言源程序必须经过汇编,生成目标文件,然后执行。

2、高级语言

- BASIC(True basic、Qbasic、Virtual Basic)、C、PASCAL、FORTRAN、智能化语言(LISP、Prolog)等等。

- 高级语言源程序可以用解释、编译两种方式执行。通常用后一种。

我们使用的C语言就是使用的后者。

3、专用语言

CAD系统中的绘图语言和DBMS的数据库查询语言。

1.1.机器语言

电子计算机所使用的是由0和1组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由0和1组成的指令序列交由计算机执行,这种计算机能够认识的语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。

因此程序就是一个个的二进制文件。一条机器语言成为一条指令。指令是不可分割的最小功能单元。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。

1.2.汇编语言

为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用ADD代表加法,MOV代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。

汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。

1.3.高级语言

1.3.1.高级语言的发展

从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言--FORTRAN问世了,40 多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、Delphi、JAVA等。

特别要提到的:在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性......>>

Visual Basic(VB)是由微软公司开发的包含协助开发环境的事件驱动编程语言。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速创建一个应用程序。

.NET Framework引入之前

VB 1

VB1.0的DOS版本

1991年4月,Visual Basic 1.0 for Windows版本发布。1992年9月,Visual Basic 1.0 for DOS版本发布。这个连接编程语言和用户界面的进步被称为Tripod(有些时候叫做Ruby),最初的设计是由阿兰·库珀(Alan Cooper)完成的。这在当时引起了很大的轰动。许多专家把VB的出现当做是软件开发史上的一个具有划时代意义的事件。以现在的眼光来看,VB1.0版的功能其实非常的弱,但它在推出当时可是第一个“可视”的编程软件。这使得程序员欣喜之极,都尝试在VB的平台上进行软件创作。

VB 2

1992年11月,VB2.0发布。它对于上一个版本的界面和速度都有所改善。

VB 3

1993年夏天,VB3.0发布,分为标准版和专业版。其中包含一个数据引擎,可以直接读取Access数据库。这使得VB的数据库编程能力大大提高。

VB 4

1995年8月,VB4.0发布了32位版本和16位的版本。其中包含了对类的支持。从VB4开始,逐步引入了面向对象的程序设计思想。VB功能强大,学习简单。而且,VB还引入了“控件”的概念,使得大量已经编好的VB程序可以被我们直接拿来使用。

Visual Basic 1.0~4.0 都必须将源代码编译成 VB 伪代码后解释执行。

VB 5

1997年2月,VB5.0发布。程序员可以用32位的版本导入由4.0版本创建的16位程序,并且能顺利编译。同时还包含了对用户自建控件的支持。自从 Visual Basic 5.0 以后,VB 支持编译成本机代码,但必须在 VB 运行库的支持下工作。

VB 6

1998年夏天,VB6.0发布。VB6是VB.NET至今仍无法完全取代的版本。

.NET Framework引入之后

主条目:Visual Basic .NET

VB.NET 7

2001年,Visual Basic .NET和.NET Framework发布。由于其使用了新的核心和特性,所以很多VB的程序员都要改写程序。

2002年 Visual Basic .NET 2002 (v7.0)问世,此后Visual Basic 包含在 Visual Studio 套装中。

2003年 Visual Basic .NET 2003 (v7.1)推出。

VB.NET 8

2004年,微软开放了Visual Studio.NET 2005的测试版本(代号Whidbey)。包含了.NET Framework2.0的测试版本。2005年11月7日 Visual Basic 2005 (v8.0) 发布,同时为初学者与学生提供 Visual Basic 2005 的免费简化版本 Express Edition。原定免费使用期限一年,之后微软宣布 Express 版本永久免费。Visual Basic 2005的“显著”优点是,可以直接编写出 Windows XP 风格的控件;但是其编写的小程序就需要近 10MB 的内存。

VB.NET 9

2008年2月1日 Visual Basic 2008 (v9.0) 发布。

通过几年的发展,它已成为一种专业化的开发语言和环境。用户可用 Visual Basic 快速创建 Windows 程序,现在还可以编写企业水平的客户/服务器程序及强大的数据库应用程序。

VB.NET 10

Visual Basic 10.0按计划于2010年3月22日随Visual Studio 2010一起正式发布。

新加入的功能:

自动实现属性

集合初始化

不需要在代码断行书写时输入下划线“_”

更好的lambda表达式支持

更好地与Python及Ruby等动态语言的互通操作

Visual Basic .NET 2002(7.0) 及以后的版本运行在 .NET Framework 环境下。

由VB派生的语言

微软开发了一系列有关VB的脚本语言:

Visual Basic for Applications,即VBA,包含在微软的应用程序中(比如Microsoft Office),以及类似WordPerfect Office这样第三方的产品里面。VBA这样嵌入在各种应用程序中看起来有些矛盾,但是它的功能和VB一样强大。

VBScript是ASP的默认语言,还可以用在Windows脚本编写(Shell Script)和网页编码(HTML)中。尽管它的语法类似于VB,但是它却是一种完全不同的语言。VBS不使用VB运行库运行,而是由Windows脚本宿主(wscript.exe - Microsoft Windows Based Script Host)解释执行。这两种语言之中的不同点影响ASP网站的表现。

当微软准备开发一种新的编程工具的时候,第一决定就是利用最抢手的 VB6 来进行修改,或者就是重新组建工程开发新工具。微软后来开发了VB的继任者Visual Basic .NET,同时也是.NET平台的一部分。VB.NET编程语言是一种真正的面向对象编程语言(VB4-VB6 只能称为基于对象而不是面向对象,最明显的特征就是 VB4-VB6 都不支持类的继承),和传统 Visual Basic 并不完全兼容。

语言特性

VB的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单创建应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。

窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。

VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。

VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。

VB使用引用计数的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。

VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了创建、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。

术语

在讨论 Visual Basic(不包含 .NET)时,经常可以听到以下这些术语,因此掌握这些术语的基本理解对初学者十分有帮助。

控件:简单的说,控件就是构成或者说建造 Visual Basic 应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控件和图片控件等等……

事件:由用户或操作系统引发的动作,例如击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制,或从端口接收数据。

方法:嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是Visual Basic中所有对象的示例。

对象:一个控件、窗体等都可被看作一个对象。

过程:为完成某些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。

属性:属性是组成用户界面的各对象的性质的具体描述。例如上述“对象”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的属性。属性决定对象的外观,有时也决定对象的行为。对象的属性绝大部分是VB中已经事先定义好的,但也有的属性是需要在应用过程中才去定义的。属性即可为对象提供数据,也能从对象取回信息。

VB.NET的变革

VB(6.0 及以前)不拥有的特性

继承 (计算机科学):Visual Basic 5 以后,VB 虽然提供了简化的类支持,但仍然不能满足程序员的需求。

多线程支持:虽然可以使用Windows API完成,不过稳定性与调试都很难保证。

异常处理:只支持"On Error Goto line"语句。

对指针的支持非常有限。

VB只能支持8到32位的整数,很多语言都有无限制的支持。

VB不允许在任何数组存储器在不变的变量。

VB不支持其它程序语言共享程序代码。

Visual Basic .NET(VB 7.0)以后的版本基本支持了上述特性。

VB 6 与 VB.NET 比较

很多程序编写者也会留恋VB6。VB6仍保留了一些script语言的特性,例如:不用事先声明变量类型。 当第一次对未声明类型的变量进行赋值时,VB6便会把这个值的类型作为该变量的类型。这种script语言的特性,对程序的可维护有很多不良的影响,尤其对初阶程序员来说,更会被培养成不良的编写程序习惯,所以VB.NET之后的版本已不保留这种特性。

Basic是作为初学者的编程语言而被制作,当时是以直译式(参见VB 伪代码)的形式出现。同样拥有不用事先声明变量类型的特性。这种特性对于帮助初学者快速入门,其实是有正面的作用,可以使初学者更快完成简单的代码编写,而不用顾虑到程序要用哪些变量,要选哪些类型。对于有一定程序编写经验的人来看,要经常为for i=1 to 9中的变量i声明类型也颇烦人,所以这种特性在某些场合上,是相当讨人欢心的。

VB.NET 的具体变革如下:

子程序(函数)的定义与调用。

数组的初值设定并且需要注明范围。

函数在格式上的改变:Date函数、Time函数、部分数学函数部分不能直接使用,String函数不能使用,DatePart、DateAdd、DateDiff函数的第一个参数在定义上有所改变。

Set保留字不再使用。

Wend保留字以End While取代。

新增运算符:+=、-=、/=、*=。

缺点

这样大的变革一度被认为是微软为了延长VB的生命力而做出的,结果把VB改得几乎面目全非,成了一个类似于C#的新语言。VB6的程序几乎无法运行在VB.NET中,尽管微软针对该问题提供了“升级向导”,也无法执行彻底的转换。这样,程序员不得不付出相当大的精力,手工转换代码。

2005年,微软宣布将不会再对非.NET版本的VB进行支持。VB社区立即作出反应表示关心这个消息,一些老用户还递交了希望能够继续对VB进行技术支持的请愿书。微软目前还不愿意改变他们的决定。

关于VB的争议

反对者

VB是一种充满了争议的语言:很多程序员对VB程序的品质有强烈的反感。很多人认为VB不配他们使用,认为它是一种给儿童和菜鸟程序员的语言。它自从设计开始就是一种简单的语言。一些C++和Java中的特性在VB中并没有出现。在感受开发的方便和快速的同时,一些类似于编译时进行类型和声明检查的功能在默认情况下是关闭的。这样一些程序员一边感叹VB的易用性,一边沮丧地看着一些类似于“未定义类型”错误的发生。

一些批评家认为VB的简单特性使得其在未来具有伤害性。很多人自学了VB,但是并没有学到好的编程习惯。当VB进入课堂的时候,学生们不会学到很多基础的程序技术和结构,因为很多技术已经包含在那些对用户可见的组件里面了。不用学习标准的编程习惯,因为VB具有可视化的特性,所以导致了一些莫名其妙的代码的产生。而且很多错误和警告的检查默认情况下都是关闭的,程序员很难找到隐藏的错误。有经验的程序员在用VB编程的时候都会把这些选项打开。

很多批评家批评微软简单地拷贝了BASIC的思想到VB中。著名的计算机科学家艾兹格·迪科斯彻说过一句名言:“如果一个学生最早学过BASIC,那么几乎不可能让他学会优秀的编程:因为这些人已经放弃了重生的希望。”(Dijkstra对待Fortran、PL/1、COBOL和APL同样也毫不留情。)另外一个笑话是:“真正的程序员不用BASIC。12岁以下的孩子才用。”

并不是非常简便,它开发的程序只能运行在Microsoft Windows中。

文件太大了。Visual Studio要用好几张盘才能装下。VB程序在运行时候还需要一个1.4M大小的运行库。

IDE中有错误。

VB不能很好的综合Windows的基础API,很多时候要使用低级运算的“小伎俩”来进行编程。而C语言的低级内存运算比VB的要简单得多。

支持者

但是很多VB的支持者解释说VB的易用性就是它最大的优势,可以让经验丰富的VB程序员或是刚刚懂得皮毛的人都能用自己的方式快速开发程序。而且VB的程序可以非常简单的和数据库连接。比如利用控件可以绑定数据库,这样一来用VB写出的程序就可以掌握数据库的所有信息而不用写一行代码。

很多语言的特性比如GoSub、On Error和用变量名字的最后一个字符判断声明类型(比如字符串型str$)都是从BASIC中来的。VB的语法和绝大部分语言都不同,可能会让新的程序员混淆。比如声明“Dim a, b, c As Integer”声明了 c 为整形变量,但是 a,b 依然是 Variant(.NET 中为 Object)类型的。(如果想声明 3 个 Integer,必须写 Dim a As Integer, b As Integer, c as Integer;而直接写Dim a,后面不写类型,则自动变成Variant类型——占用大量资源。这个问题在 VB.NET 以后的版本已经解决,Dim a, b, c As Integer的类型都将为整型)

还有一些特性,比如下划线字符“_”支持一行代码分多行写。一些程序员在使用的时候由于不符规范而引起错误。

总结

VB会吸引更多的赞誉和批评,也会继续为广大的用户和程序员使用。它非常适合用来开发拥有友好界面的程序(比如针对终端的数据),但是不适合开发其它程序(比如联合计算程序)。

VB对初学编程者是一个很好的入门软件,尤其对一些有编程才能而自己也不知道的人,由VB着手可轻易引发他们的潜能,发挥他们在这方面的才华。