简介各种程序语言
注︰在程序语言前划有☆号者,表示它有重大影响,但不代表它优良
适合编写商业程序、对效能有所要求
编写商业程序的程序语言,最基本的要求就是不是直译的,令使用者不能看到源码;第二就是有良好的性能、语法,适合编写大程序而效率不会过慢。
☆ C/C++
自从 C 发明了以后,它就取代了汇编语言在操作系统编程的领导地位。从性能上说,除了汇编语言, C 语言是最接近机器的语言。各种操作系统的编程接口的默认语言都是 C 语言。因此,用 C 语言编程,可以最大限度发挥操作系统的能力。同时,由于绝大部分的商品软件都是 C 或与 C 兼容的 C++ 实现的,都有 C 编程接口,可以说,没有 C 不能实现的功能。
C++ 是 C 语言的加强版, C++ 增加了面向对象和其他有用的功能,但它的效能并没有大减,编程更方便轻松;而 C++ 亦支援大部分 C 的程序,令 C++ 和 C 变得近乎不可分割,大部分的 C 编译器也支援 C++ 。假如要在学 C 或学 C++ 选择,学 C++ 是明智的选择。
在 Unix-like 的操作系统中, C 具有很好的开放源代码的条件,它有统一的编译器 gcc ,有强大但比较难掌握的编程环境 emacs ,有统一的 API : posix 和 Linux 接口。并且大部分编译器和 API 是开放源代码的。
在 Unix-like 上编写图形界面程序,有两个选择 KDE 和 Gnome ∶ KDE 更成熟,但它使用了不是开源的 Qt 函数库; Gnome 支持多语言和面向对象的程序间的协同,有它的 GUI 工具 GTK 。
在 Windows 环境中,现在通常使用 vC ,但有一个缺点, Windows 的升级换代太快,从 dos 环境到 Windows31 ,从 Windows31 到 Windows95 ,到 Windows2000 ,到 .NET 。 API 常常变换,这样,在 Windows 上的程序代码的寿命会比较短。并且 vC 的编译器和 API 太复杂,难于掌握,并非开放源代码的工具。其他选择有从 Unix-like 系统移植过来的 djgpp 、 mingw 。
由于 C/C++ 具有现代语言的大量特征,现在常常代替 Pascal 作为教学的编程语言。
实际上,如果不深入学习, C 也是一种很简单的语言。不学 Basic ,直接学 C 完全没有问题。
和其他语言相比,虽然 C 和 C++ 都已经定下了其标准,但编译器、函数库、操作系统 API 五花八门,有些又未必全面支援最新的标准,造成学习的难度大、统一性差的问题。
☆ Visual Basic( 简称 VB)
VB 是快速的界面生成语言,是快速的数据库程序开发语言。 vba 是 vb 的应用版,嵌入在 MS office 中。编写 MS office 上的程序很好用。缺点是只能在 Windows 平台运作。
Delphi/Kylix
和 vb 一样是快速开发环境,但性能更好,功能更强大,亦可以用于 Linux 平台。语法建基于 Pa
scal ,是面向对象的程序语言。 后果飞过海飞过海
☆ Java
相对 C , Java 作为现 [[ 代语言,具有非常丰富的语 == Headline text ==]] 法特征,如模块和类,不像 C 随操作系统和编译器的不同有极大差异, Java 是一个公司的产品,具有唯一的 API ,因此, Java 程序员没有语言隔阂。有人认为 Java 根本是一个平台,并非真正的跨平台。
相对跨平台的语言来说, Java 具有最好的图形界面编 Media:Example.mp3 程 API 。
Java 所有的 API 都是类库,相对 C 的函数来说,是非常大的进步。 Java 具有现代语言几乎所有的特征。
Java 最大的缺点,是它被一所公司控制着。
Ada
Ada 语言和 C/C++ 是一种编译语言,他们最后编译出的执行文件的机器码都很小。因此现在众多的语言只有 C/C++ 能够与 Ada 相提并论。
和 C/C++ 相比, Ada 的特点是可靠、可移植。
他的可靠是通过比其他语言都强大的类型,每种类型还都可以象数据库字段一样进行强类型、范围的检查。以此来保证在编译中就发现错误。
它有强大的标准化组织,严格认证 Ada 编译器的标准。有多线程能力。
适于编写实时程序。
Scripting Language
如果不在乎商业机密,应用目标也不是太苛刻的话,编写大型跨平台程序的最佳就是脚本语言。有些脚本语言具有全面的库的支持,有和 C 语言的方便的交互能力。他们和 Java 相比,编程效率更高。同时因为没有编译,程序更方便修改。因为他们的库都是 C 实现的,也比 Java 有更高性能。同时,他们都是开源的,都是对商业应用友好的,也是简单的、方便定制的。也是不满意 Java 的不可控制的越来越庞大的库的又一个选择。
Basic
现在最着名的 Basic 版本是 vb , Basic 是简单的初级语言。 Basic 的丑陋在于参数还是默认传地址。
☆ Perl
Perl 的最大特点是有强大的字符串模式匹配,是最好的文本文件的读取和生成语言,亦是 Unix 系统管理者的好帮手,因为它吸收了 awk 、 sed 、 grep 等工具的功能。 Perl 具有很大的自由性,象英语一样有很大的随意性,在 Perl 里基本上无 Type Error 这回事,它的” Type ”就是纯量和串行。 Perl 有一个强大的数据库接口和其他各种接口。 Perl 有大量的程序库( CPAN )。
因为 Perl 较早出现,某些功能是后期加上去,显得不协调,例如它的面向对象功能就被视为不是真正的面向对象。 Perl 有个着名的缺点是难读懂,维护困难,被认为不适合编写大程序,只适合一千行以下的程序,也有个著名的优点是简练。
Python
首先, Python 是和 Basic 一样面向初学者的语言,和英语一样容易懂。
Python 有和 Perl 类似的简单性,但没有模式
匹配。
Python 有和 Lisp 相似的地方,它有将字符串作为程序执行的 eval 函数,可以对一个对象的所有数据进行保存,可以把函数作为参数传给另一个函数。
Python 具有非常好的扩充性, Python 程序可以和 C 程序,以及 Java 程序很好地结合。
Tcl
Tcl 具有最简单的语法,最好的和其他程序交互的能力,有编写图形界面程序的 Tk 。基本上已经没有个人用户学习 Tcl 语言,但是中国一些大型的嵌入式软件公司至今一直使用该语言进行软件测试工作,而且 Tcl 的工具包 Tk 也是很多 Scripting Language 的 GUI 工具。
Ruby
Ruby 是吸取了所有语言精华的语言。 Ruby 虽然是纯面向对象语言,但可以”扮成”程序式的程序语言;它的文件主要都是日文和英文。
Ruby 有
* Perl 的正则表达式
* Python 的语言的简单性可读性、最容易的扩展能力,强大的可移植性。
* PHP 的嵌入功能和多种客户端
* smalltalk 的纯面向对象语法和单继承
* Lisp 的无穷嵌套的语法,也就是函数式的语法。
* 用“块”来实现更快捷的数据结构的处理。不知道是不是 sCheme 的宏功能。用块能更清楚的实现 Python 的表处理功能。
* Java 和 Ada 的线程编程
* Java 的安全编程
不得不承认 Ruby 确实是个精彩的语言,它完全学会了 Lisp 的所有编程都是函数的思想, smalltalk 的所有东西都是对象的思想, Perl 的一个目的多种手段的方法, Python 的简单化的“最少惊喜”的原则, Java 的多线程和安全控制的功能, Tcl 的容易扩展的功能, PHP 的嵌入功能和强大客户端的功能,最方便的 shell 命令的调用。
Lua
Lua 是一个小巧强大的脚本语言。第一眼看到 Lua 的介绍,感觉它象 Tcl 的替代品,因为它的主要目的是作为脚本语言。但接下来就看到它不是象 Tcl 那样是命令行式的函数语言,它和其它语言一样有语句结构。它实现和 C 程序互动的方式和 Python 类似,具有和 Python 一样的和 C 结合的能力。并且 Lua 全部是用 ansi C 实现的,可以实现完全的跨平台。
然后,看到 Lua 的一个显着的特点就是具有对象数据库功能,可以实现变量的永恒存储。这个特点让人首先联想到 fish , fish 的最重要的特点也是语言内含一个对象数据库,不过 fish 有 outline 的可视界面,和数据库浏览能力。但 fish 不是开源的,因此,如果需要一个非内存的变量存储空间可以选择 Lua 。这种对象数据库都是不但能存储数据,也能存储操作数据的函数。实际 Python 也具有一个将整个内存存储在一个磁盘文件的功能,另外,还有 zope 的 zodb 可以实现专业的永恒变量功能。另外, sCheme 天然具有永恒存储能力,它只要把表
变量输出到一个文件中就可以了。因为 sCheme 是不分数据和程序的,因此可以实现将程序和数据同样存储在文件中。
Lua 和 Python 相比规模比较小,因为它是和 C 紧密结合的,可以完全使用各种 C 库,就不需要有自己的库。 Lua 给人的印象是小规模的 Python 。 Lua 也是动态数据类型,也有内存管理功能。只是 Python 自带强大的库,而 Lua 只携带一个小型的库,具有字符串和数学计算能力,同时 Lua 标准携带一个对象数据库。另外,可以把 C 库随时编译到 Lua 中。 Lua 引以自豪的是它的速度很快。
Lua 的语法比较简单,它把数组、字典、结构等复杂的数据结构都统一为表。另外, Lua 具有正则表达式功能。
网页编写∶客户端程序
JavaScript
编写动态网页的最佳工具,可以造到很多效果,亦是 Mozilla 扩充套件的语言 jhgjghjgh 。
VBScript
VBScript 是 vb 的脚本语言,可以产生服务器端和客户端的动态网页。客户端的动态网页暂时只有 IE 系列浏览器支援,所以 VBScript 兼容性很低,不及 JavaScript 。
服务器端程序
PHP
PHP 是专门写网页程序的语言,它的语法和 Perl 极之接近。 PHP 可以嵌入 HTML ,更容易编写服务器端程序。 PHP 天然和 web 服务器以及 mysql 数据库相结合。 PHP 可以动态生成图像。
我一直认为 PHP 是一个垃圾,因为它只是实现了脚本语言得嵌入,却单独实现一种语言、实现大量得函数库,浪费了大量得开发人员得宝贵时间来重复其他脚本已经实现了得功能,也浪费了 PHP 开发人员得大量学习时间,还要单独学一种只能存在于 web 服务器得语言,浪费了 Perl 、 Python 得已有得使用经验。相似得还有 pike ,一种 C 得脚本语言,没什么新东西,还不如仍然用 C 编译器。
但我最近看书才了解 PHP 独特的开发目标。
PHP 为什么不直接用 Perl 作脚本语言。是因为 Perl 是一种 Unix 语言,带有 Unix 传统得字符神秘高深,让人难于学习。而编动态网页得人不见得会用 Perl 这种 Unix 工具,他们可能只有 HTML 知识。 PHP 就简化了 Perl 得语言,变成了一种简单友好得语言,免去了人们学习 Perl 得困难。
最容易上手的编程语言PHP 为什么不选 Python 作脚本。因为 Python 是一种面向对象的语言,大量得功能都要涉及面向对象概念,而 web 应用只是简单得实现客户机逻辑和显示功能。没必要涉及面向对象得复杂概念。函数是最简单,最容易理解得,因此, PHP 倾向于所有得功能都用函数来解决,而不是用对象来解决。这有点象 C 和 C++ 之争。应该承认,函数在实现简单功能得时候是最有利得工具,它得语句量最少。
PHP 定位于以 HTML 为用户界面,充当各种服务器得客户端
,实现得是传统得客户端编程得任务。它有 pop 、 smtp 、 ftp 、多种数据库等各种服务器得客户端得函数,也有图片、 pdf 生成, XML 处理等这种必要得功能。这些都是其他脚本比不上 PHP 得地方。
其他专门写网页程序的语言有 ASP 、 JSP 和 CGI ,但它们都不及 PHP 强大。
Java 、 .NET 、 Zope
在商业开发中流行的是 Java 和 .NET ,其实 zope 也是选择之一, zope 的特点就是全部开源,层次少,简单。并且集成一个内容管理器和众多的附加产品。附加产品多是开源软件必然的优势。 zope 之前的一些缺点在 zope3 中将得到解决。另外, zope 的组件架构和 Cmf 开发架构,并不必 Java 的组件开发环境差多少(我没接触很多 Java ,只是评感觉说,其他人可以有不同意见)。
PHP 虽然看起来不适合大程序开发,但在 PHP 平台上已经有了很多大规模的程序,比如 puke 。 tiki 。
另外, web 服务器已经被很多程序缺省支持,用很多语言都能编写出独立的 web 服务器程序。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。