


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、各种编程语言介绍 zz2022/08/19 00:14编程语言 HYPERLINK “ :/ /article.php?type=blog&itemid=788“ :/ /article.php?type=blog&itemid=788开放源代码的必要性在介绍编程语言之前,先说说开放源代码的必要性。现在,在软件生产领域存在巨大的智利铺张,大家把大量的精力用在编写别人已经实现的程序代码上。看看, 文本编辑器有多少,看看ftp 程序有多少,看看字处理程序有多少,这些程序虽然有差异,但主要的功能都是一样的。要实现共性化的功能,在已有的软件根底上修改会节约多少时间呀!而每个程序各编一套,又铺张多少时间
2、?假设,没有这些重复的工作量,世界上的程序员至少可以节约 80%的工作量。同时,开放源代码也便利了大家的沟通,阅读源代码应当是最直接最有效的学习途径,尤其是比较专业的领域。要开放源代码,下面几点比较重要:语言要流行。语言的函数和类库统一。语言的语法和编译器要统一。编译器是否开放源代码。API 是否开放源代码。语言的可重用性、功能、友好性。语言统一:假设大家都用一种编程语言,都用同样的函数,同样的类库,那么,大家的共同语言就会很多。大家只要学会一种语言,一套函数,一套类库, 就可以相互读懂源代码,这样,学习量是最少的;但是语言统一根本是不行能的事,由于各种语言都有其特色,假设取了其中一个优点,通
3、常就会牺牲另一个优点。可是学习的 API 铺张程序员大量的时间和精力,尤其是当这个 API 有大量和其他 API 重复的功能的时候。要增加代码的可重用性,要从下面几点着手:代码的可读性。如格式、是否接近英语语法和单词。代码的表达力量,也就是简洁性,能用最少的语句和单词实现同样的功能。代码的构造性,如函数、模块、类。语言功能的强大从下面几点来说:是否拥有大量的库支持。这是最重要的,要求编写任何功能的程序都有强大的库支持。语法功能是否强大,比方是否有出错处理。是否有指针。语言的友好性:语言包的大小,语言包越小,学习越简洁。语言是否有友好的编辑调试环境。语言的可视化和集成编程环境。简介各种程序语言注
4、在程序语言前划有号者,表示它有重大影响,但不代表它优良。适合编写商业程序、对效能有所要求。编写商业程序的程序语言,最根本的要求就是不是直译的,令使用者不能看到源码;其次就是有良好的性能、语法,适合编写大程序而效率不会过慢。2.1.1 C/C+自从 C 制造了以后,它就取代了汇编语言在操作系统编程的领导地位。从性能上说,除了汇编语言,C 语言是最接近机器的语言。各种操作系统的编程接口的默认语言都是 C 语言。因此,用 C 语言编程,可以最大限度发挥操作系统的力量。同时,由于绝大局部的商品软件都是C 或与 C 兼容的 C+实现的,都有C 编程接口,可以说,没有 C 不能实现的功能。C+是 C 语言
5、的加强版,C+增加了面对对象和其他有用的功能,但它的效能并没有大减,编程更便利轻松;而 C+亦支援大局部 C 的程序,令 C+和 C 变得近乎不行分割,大局部的 C 编译器也支援 C+。假设要在学 C 或学 C+ 选择,学 C+是明智的选择。在 Unix-like 的操作系统中,C 具有很好的开放源代码的条件,它有统一的编译器 gcc,有强大但比较难把握的编程环境 emacs,有统一的 API:posix 和 Linux接口。并且大局部编译器和 API 是开放源代码的。在 Unix-like 上编写图形界面程序,有两个选择 KDE 和 GnomeKDE 更成熟,但它使用了不是开源的Qt 函数库
6、;Gnome 支持多语言和面对对象的程序间的协同,有它的 GUI 工具GTK。在 Windows 环境中,现在通常使用 VC,但有一个缺点,Windows 的升级换代太快,从 dos 环境到 Windows31 ,从 Windows31 到 Windows95,到Windows2022,到.NET。API 经常变换,这样,在 Windows 上的程序代码的寿命会比较短。并且 vC 的编译器和 API 太简单,难于把握,并非开放源代码的工具。其他选择有从 Unix-like 系统移植过来的 djgpp、mingw。由于 C/C+具有现代语言的大量特征,现在经常代替 Pascal 作为教学的编程语
7、言。实际上,假设不深入学习,C 也是一种很简洁的语言。不学 Basic,直接学 C 完全没有问题。和其他语言相比,虽然 C 和 C+都已经定下了其标准,但编译器、函数库、操作系统 API 五花八门,有些又未必全面支援最的标准, 造成学习的难度大、统一性差的问题。Visual Basic(简称 VB)VB 是快速的界面生成语言,是快速的数据库程序开发语言。vba 是 vb 的应用版,嵌入在 MS office 中。编写 MS office 上的程序很好用。缺点是只能在Windows 平台运作。Delphi/Kylix和 vb 一样是快速开发环境,但性能更好,功能更强大,亦可以用于 Linux 平
8、台。语法建基于 Pascal,是面对对象的程序语言。Java相对 C,Java 作为现代语言,具有格外丰富的语法特征,如模块和类,不像 C 随操作系统和编译器的不同有极大差异,Java 是一个公司的产品,具有唯一的API,因此,Java 程序员没有语言隔膜。有人认为Java 根本是一个平台,并非真正的跨平台。相对跨平台的语言来说,Java 具有最好的图形界面编程 API。Java 全部的 API 都是类库,相对C 的函数来说,是格外大的进步。Java 具有现代语言几乎全部的特征。Java 最大的缺点,是它被一所公司把握着。AdaAda 语言和 C/C+是一种编译语言,他们最终编译出的执行文件的
9、机器码都很小。因此现在众多的语言只有 C/C+能够与 Ada 相提并论。和 C/C+相比, Ada 的特点是牢靠、可移植。他的牢靠是通过比其他语言都强大的类型,每种类型还都可以象数据库字段一样进展强类型、范围的检查。以此来保证在编译中就觉察错误。它有强大的标准化组织,严格认证 Ada 编译器的标准。有多线程力量。适于编写实时程序。但和 C/C+相比太简单、罗嗦,因此注定不能流行。Scripting Language假设不在乎商业机密,应用目标也不是太苛刻的话,编写大型跨平台程序的最正确就是脚本语言。有些脚本语言具有全面的库的支持,有和 C 语言的便利的交互力量。他们和 Java 相比,编程效率
10、更高。同时由于没有编译,程序更便利修改。由于他们的库都是 C 实现的,也比 Java 有更高性能。同时,他们都是开源的, 都是对商业应用友好的,也是简洁的、便利定制的。也是不满足Java 的不行把握的越来越浩大的库的又一个选择。Basic现在最着名的 Basic 版本是 vb,Basic 是简洁的初级语言。Basic 的丑陋在于参数还是默认传地址。太危急。PerlPerl 的最大特点是有强大的字符串模式匹配,是最好的文本文件的读取和生成语言,亦是 Unix 系统治理者的好帮手,由于它吸取了 awk、sed、grep 等工具的功能。Perl 具有很大的自由性,象英语一样有很大的任凭性,在 Per
11、l 里根本上无 Type Error 这回事,它的”Type”就是纯量和串行。Perl 有一个强大的数据库接口和其他各种接口。Perl 有大量的程序库CPAN。由于 Perl 较早消灭,某些功能是后期加上去,显得不协调,例如它的面对对象功能就被视为不是真正的面对对象。Perl 有个着名的缺点是难读懂,维护困难,被认为不适合编写大程序,只适合一千行以下的程序,也有个有名的优点是简练。Python首先,Python 是和 Basic 一样面对初学者的语言,和英语一样简洁懂。Python 有和 Perl 类似的简洁性,但没有模式匹配。Python 有和 Lisp 相像的地方,它有将字符串作为程序执行
12、的 eval 函数,可以对一个对象的全部数据进展保存, 可以把函数作为参数传给另一个函数。Python 具有格外好的扩大性,Python 程序可以和 C 程序,以及 Java 程序很好地结合。TclTcl 具有最简洁的语法,最好的和其他程序交互的力量,有编写图形界面程序的Tk。根本上已经没有个人用户学习 Tcl 语言,但是中国一些大型的嵌入式软件公司至今始终使用该语言进展软件测试工作,而且 Tcl 的工具包 Tk 也是很多Scripting Language 的 GUI 工具。RubyRuby 是吸取了全部语言精华的语言。Ruby 虽然是纯面对对象语言,但可以”扮成”程序式的程序语言;它的文件
13、主要都是日文和英文。Ruby 有:Perl 的正则表达式Python 的语言的简洁性可读性、最简洁的扩展力量,强大的可移植性。PHP 的嵌入功能和多种客户端smalltalk 的纯面对对象语法和单继承Lisp 的无穷嵌套的语法,也就是函数式的语法。用“块”来实现更快捷的数据构造的处理。不知道是不是 sCheme 的宏功能。用块能更清楚的实现 Python 的表处理功能。Java 和 Ada 的线程编程Java 的安全编程不得不成认 Ruby 确实是个精彩的语言,它完全学会了 Lisp 的全部编程都是函数的思想,smalltalk 的全部东西都是对象的思想,Perl 的一个目的多种手段的方法,P
14、ython 的简洁化的“最少惊喜”的原则,Java 的多线程和安全把握的功能,Tcl 的简洁扩展的功能,PHP 的嵌入功能和强大客户端的功能,最便利的shell 命令的调用。LuaLua 是一个小巧强大的脚本语言。第一眼看到 Lua 的介绍,感觉它象 Tcl 的替代品,由于它的主要目的是作为脚本语言。但接下来就看到它不是象 Tcl 那样是命令行式的函数语言,它和其它语言一样有语句构造。它实现和 C 程序互动的方式和 Python 类似,具有和 Python 一样的和 C 结合的力量。并且 Lua 全部是用 ansi C 实现的,可以实现完全的跨平台。然后,看到 Lua 的一个显着的特点就是具有
15、对象数据库功能,可以实现变量的永恒存储。这个特点让人首先联想到 fish,fish 的最重要的特点也是语言内含一个对象数据库,不过 fish 有 outline 的可视界面,和数据库扫瞄力量。但 fish 不是开源的,因此,假设需要一个非内存的变量存储空间可以选择 Lua。这种对象数据库都是不但能存储数据,也能存储操作数据的函数。实际 Python 也具有一个将整个内存存储在一个磁盘文件的功能,另外,还有zope 的 zodb 可以实现专业的永恒变量功能。另外,sCheme 自然具有永恒存储力量,它只要把表变量输出到一个文件中就可以了。由于 sCheme 是不分数据和程序的,因此可以实现将程序
16、和数据同样存储在文件中。Lua 和 Python 相比规模比较小,由于它是和 C 严密结合的,可以完全使用各种 C 库,就不需要有自己的库。Lua 给人的印象是小规模的 Python。Lua 也是动态数据类型,也有内存治理功能。只是 Python 自带强大的库,而 Lua 只携带一个小型的库,具有字符串和数学计算力量,同时 Lua 标准携带一个对象数据库。另外,可以把 C 库随时编译到 Lua 中。Lua 引以骄傲的是它的速度很快。Lua 的语法比较简洁,它把数组、字典、构造等简单的数据构造都统一为表。另外,Lua 具有正则表达式功能。网页编写客户端程序JavaScript编写动态网页的最正确
17、工具,可以造到很多效果,亦是 Mozilla 扩大套件的语言。VBScriptVBScript 是 vb 的脚本语言,可以产生效劳器端和客户端的动态网页。客户端的动态网页临时只有 IE 系列扫瞄器支援,所以 VBScript 兼容性很低,不及JavaScript。效劳器端程序PHPPHP 是特地写网页程序的语言,它的语法和 Perl 极之接近。PHP 可以嵌入HTML,更简洁编写效劳器端程序。PHP 自然和 web 效劳器以及 mysql 数据库相结合。PHP 可以动态生成图像。我始终认为 PHP 是一个垃圾,由于它只是实现了脚本语言得嵌入,却单独实现一种语言、实现大量得函数库,铺张了大量得开
18、发人员得贵重时间来重复其他脚本已经实现了得功能,也铺张了 PHP 开发人员得大量学习时间,还要单独学一种只能存在于 web 效劳器得语言,铺张了 Perl、Python 得已有得使用阅历。相像得还有 pike,一种 C 得脚本语言,没什么东西,还不如仍旧用 C 编译器。但我最近看书才了解 PHP 独特的开发目标。PHP 为什么不直接用 Perl 作脚本语言。是由于 Perl 是一种 Unix 语言,带有Unix 传统的字符奇特高深,让人难于学习。而编动态网页得人不见得会用 Perl 这种 Unix 工具,他们可能只有 HTML 学问。PHP 就简化了 Perl 得语言,变成了一种简洁友好得语言
19、,免去了人们学习 Perl 得困难。PHP 为什么不选 Python 作脚本。由于 Python 是一种面对对象的语言,大量得功能都要涉及面对对象概念,而 web 应用只是简洁得实现客户机规律和显示功能。没必要涉及面对对象得简单概念。函数是最简洁,最简洁理解得,因此, PHP 倾向于全部得功能都用函数来解决,而不是用对象来解决。这有点象 C 和C+之争。应当成认,函数在实现简洁功能得时候是最有利得工具,它得语句量最少。PHP 定位于以 HTML 为用户界面,充当各种效劳器得客户端,实现得是传统得客户端编程得任务。它有pop、smtp、ftp、多种数据库等各种效劳器得客户端得函数,也有图片、pd
20、f 生成,XML 处理等这种必要得功能。这些都是其他脚本比不上 PHP 得地方。其他特地写网页程序的语言有 ASP、JSP 和 CGI,但它们都不及 PHP 强大。Java、.NET、Zope在商业开发中流行的是 Java 和.NET,其实 zope 也是选择之一,zope 的特点就是全部开源,层次少,简洁。并且集成一个内容治理器和众多的附加产品。附加产品多是开源软件必定的优势。zope 之前的一些缺点在 zope3 中将得到解决。另外,zope 的组件架构和 Cmf 开发架构,并不必Java 的组件开发环境差多少我没接触很多 Java,只是评感觉说,其他人可以有不同意见。PHP 虽然看起来不
21、适合大程序开发,但在 PHP 平台上已经有了很多大规模的程序,比方 puke。tiki。另外,web 效劳器已经被很多程序缺省支持,用很多语言都能编写出独立的 web效劳器程序。其他LispLisp 的语法格外简洁统一,只有简洁的函数和参数的语句构造。Lisp 用上极多括号,不太便利。Lisp 数据和程序的界限模糊。Lisp 可以深度嵌套。prologprolog 是由 R. Kowalsk 首次提出,全称是 Programming in Logic。1972 年诞生世界上第一个 Prolog 系统。它基于规律程序设计,能自动实现模式匹配和回溯,且适合于并行处理。PROLOG 以一阶谓词演算为
22、根底。由于承受了合一、置换、回溯和匹配等机制来搜寻解答,所以用户不必要编写求解搜寻程序, 只要把待解决的问题输入计算机系统就可以了。PROLOG 的功能还不如 LISP 强,但它具有较好的进展前景,曾被用作第五代计算机开发争辩的核心语言。.NET支持多种语言的统一的 API 类库,可以编写 webform 程序,即全部的规律都在效劳器端,传到客户端的是标准的 HTML3.0,可以被各种扫瞄器支持。各程序组件间通过 soap 交换消息。其他编程概念Turing-complete programming:Brainfuck: Brainfuck,是一种微小化的计算机语言,它是由 Urban Mll
23、er 在 1993 年创立的。这种语言有时被称为 brainf*ck 或 brainf*,在一些严峻的场合也被称为 BF。Mller 的目标是建立一种简洁的、可以用最小的编译器来实现的、符合 Turing complete 思想的编程语言。这种语言由八种状态构成, 为 Amiga 机器编写的编译器(其次版)只有 240 个字节大小!就象它的名字所示意的,brainfuck 程序很难读懂。尽管如此,brainfuck 图灵机一样可以完成任何计算任务。虽然 brainfuck 的计算方式如此与众不同,但它确实能够正确运行。Functional Programming:Haskell: Haskel
24、l,是一门纯粹的函数式程序设计语言。特式是利用很简洁的表达就可以完成 Linked List、矩阵等数据构造。Clean: Concurrent Clean,简称 Clean,是纯函数式程序设计语言,它和Haskell 有很多相像之处。Clean 是用 C 写成的。Clean 程序很简洁跨平台, 在大局部状况下,要转移到另一个平台只需在那里重编译一次即可,不用改动原始码。平行处理:Fortran : Fortran,是由 Formula Translate 两个字所组合而成,意思是公式翻译,因此该计算机语言是为理工方面之计算所进展出来。1957 年进展出第一套Fortran 语言,而后1977
25、 年改进成为较具构造化特性之语言,称为Fortran77。1991 年则参加对象导向的观念与供给指针,并同时加强数组的功能,大幅改进旧版 Fortran 的型式,称为 Fortran 90。多脚本语言的大统一及疑问现在各种脚本语言太多了,有必要进展整合,parrot 是一个好的想法。.NET 也是好的想法。它为各种脚本供给了一个统一的虚机,为各种脚本语言供给了基于“类”的相互调用,为各种脚本供给了统一的类库。现在各种脚本语言只是供给了对 C 语言的交互性,这种交互也是费力的和效果不好的。比方 Python、Perl、Ruby 等都供给了对 C 的交互功能。脚本语言之间的沟通障碍重重。而类似.N
26、ET 的东西,供给了格外简洁的各种脚本的相互利用的途径,避开了很多的代码的重复编写。这种标准平台的力气是很大的,这种标准平台为什么没有在开源领域首先消灭呢?众多的脚本正是开源的特点和优势,为什么这种问题要微软来解决呢?前面有人提出了类似的问题,在 Linux 中为什么至今没有好用的类似 ODBC 的东西呢?可能这种整合只有商业公司有力量实现吧。我的理解是,假设有创思想的人都拿他的想法去卖钱了,因此,在开源中只剩下了仿照的人。kde 是仿照 Windows,koffice 是仿照 office,Linux 是仿照Unix,gcc、bash 等也全都是仿照,以及 gstep 等,还有 freedo
27、s、atheos等也是仿照,wxWindows、SDL 也是仿照。我想知道开源社区有没有自己的创?我所知道的创是 zope,但 zope 最初也是商业产品,后来才开源的。Perl 是创,Python 是创,但还有什么呢?是不是开源领域只有 haCk,没有 Creator?4.NET 平台.NET 所实现的 Java 的功能可控代码、跨平台的虚机和伪码、免费赠送命令行编译器、纯面对对象语言、对XML 和 XML web serviCes 的支持和 jsp 对应的 asp.NET、网页上的程序、一套统一的中间件环境。Asp.NET 跟 Jsp 不是同一个层次上的 web 技术, Asp.NET 使
28、用完善的大事响应机制,WinForms 类似的 WebForm 技术,只有 JSF 跟 Asp.NET 有可比性。.NET 实现的 Java 功能免费的集成开发环境 多厂家支持,跨平台的成熟度。免费的 IDE, #develop , ASP.NET 的有 MS 的 WebMatrix 而免费开源的 CLR 实现,有 MS 自己的 XP, FreeBSD,Mac OS 下的 实现原理演示不能进展商业应用, Novell 下的Mono 工程,已经公布了 Beta1 版本,在 2022-6-30 将会公布 Release1; 还有 GNU 的一个.NET 实现!.NET 实现的 Java 不具备的功
29、能多语言支持、强大的集成开发环境。 在 Windows 上媲美本机程序的速度。 对COM 的支持,对 vs 的继承 对 widows form 、web form、效劳器端程序的图形直观编程。相对 vs6 的改进统一了集成开发环境,使 C+程序也具有了 vb 的友好性。几种语言的点评XML 各种技术介绍XML:XML 是统一格式的构造化数据的文本文件。基于 XML 的程序,数据构造是开放的,便利不同程序处理同一种文件,这样,程序之间可以到达高水平的协作。XML 现在成为了各行各业统一数据格式的根底。XML 进展出了完善的语法,它用 DTD 或 sCheme 来界定 XML 的标记语言。用 ur
30、i 来唯一确定一个 XML 格式。用 Css 或 XLT 来转换 XML 格式,xlink 和 xpointer 等来建立 XML 的链接,用 xpath 来定位 XML 中的数据。XHTML:是严格符合 XML 格式的 HTML。RDF:基于 XML 的元数据描述语言。便利交换构造化数据。便利交换学问。RDF 是用主语、谓语、宾语来描述学问的。SVG:XML 格式的矢量图形格式。SMILE:XML 格式的各种多媒体在时间线上的协同。Xmath:XML 格式的公式描述语言。XML-RPC 和 Soap:以 协议和 XML 格式来进展网络程序之间的消息通讯。XUL:NetScape 的 mazi
31、lla 使用的程序界面语言,基于 XML 格式,比 HTML 强大的多的描述图形界面的 XML 语言。它用 Css 来换肤,用 DTD 来实现多语言界面, 用 JavasCript 来实现程序规律,以此编写跨平台的可便利定制界面的程序,现在这个程序 API 功能已经很强大了,整个 mazilla 程序就是基于 XUL 的。XAML:MS 在 LongHorn 平台的最编程语言, 将统一 Windows 与 Web 编程,直接使用。LongHorn 下的扫瞄器进展执行,跟 XUL 有类比性。5.2 最先进的 XML 格式图形界面程序开发工具XUL大家知道 NetScape 程序,一个仅次于 IE
32、 的扫瞄器,也有很多人知道 Mozilla, NetScape 的开放源代码版本。但很多人只是使用 Mozilla,不知道 Mozilla 另一个重要得功能程序开发。在 NetScape 开放源代码后三年 Mozilla 的 1.0 版还没有问世,很多人嘲笑他的超慢得开发速度,实际上,Mozilla 酝酿出了一个超酷的产品,可以看作是软件开发工具进展得另一个里程碑。现在基于扫瞄器得三层开发构造格外流行,微软的.NET 的思路就是基于这个构造的。另外,不考虑效劳器构造,就是基于网页的 JavaScript 小程序也对人很有吸引力,这些产品得思路都是以 HTML 为用户界面,但开发人员经常苦恼于H
33、TML 太简陋。而 Mozilla 的 XUL 解决了这个问题。XUL 是对 HTML 的扩展,完全兼容于 HTML,XUL 基于 XML 格式对 HTML 进展了扩展,实现了完整、强大得图形用户界面设计功能。可以设计出简单得图形界面程序。实际上 mazilla 整个就是由 XUL 设计的。XUL 用 Css 来把握界面风格、用 DTD 来替代字符串,便利的实现本地化,用 JavasCript 来对用户界面的操作作出反响,供给根本的规律编程,JavaScript 通过对象文档接口 DOM 来动态把握用户界面。同时JavasCript 通过调用Mozilla 供给的丰富的底层API来实现强大的功
34、能。Mozilla 供给了功能强大的 API 可以进展文件操作、网络操作、图形操作等各种操作,并且这种 API 是完全跨平台的。最终,Mozilla 用RDF 格式来存储独立于界面的数据。总结:XUL 由于兼容 HTML,供给了最强大的用户界面的定制,DTD 供给了最便利的本地化。XUL、JavasCript、RDF 供给了显示、规律、数据的分别。Mozilla 的底层 API 供给了跨平台的强大编程力量。期望大家都来关心 Mozilla。最接近人类语言的编程语言REBOLREBOL 的具体资料见 HYPERLINK “ :/ REBOL.org/“ REBOL.org。这里谈一下我的印象。R
35、EBOL 的缺点是明显的。它是一个商业公司的产品。它只是象 Java 一样免费使用。但不开放源代码。并且它的数据库连接的函数库是收费的。但它的优点也格外明显,假设由于不是开放源代码软件而不能放心使用,也可以欣赏和借鉴它的种种特点,并且了解了 REBOL 确定还会忍不住使用它。首先 REBOL 是一个 Lisp 语言的替代品,它能实现 Lisp 的全部力量。他具有Lisp 语言的数据和程序同等处理的特点,也有语句和表达式的统一。但大大打破了 Lisp 的局限。它允许中缀运算符的形式,没有满眼的括号,和一般编程语言的表达方法完全一样。同时具有丰富的库,有完全的图形界面库,完全的网络库。由于是一个公
36、司的产品,也保证了库的统一。REBOL 自称为网络编程语言,它的网络编程力量很强,一般一个语句就可以下载一个文件,或下载一个网页,或承受一个邮件。REBOL 一个奇特的特点是它的图形界面设计,它的界面编程格外简洁,完全不用语句和函数,而是和 HTML 一样只要表达核心内容就行了。这得益于 REBOL 的“方言”力量。REBOL 内置了“方言”力量。就是象 yacc 一样的语言解析力量。可以随时扩展“子语言”REBOL 内置了几十种数据类型,用它编程,语句确定是最精炼的。REBOL 可以实现 Java 一样的网络下载程序运行的力量,也有砂箱功能。它比Java 更进一步,有自己的桌面,在桌面上可以
37、任意启动各个 REBOL 程序,它的桌面象 HTML 一样有丰富的表达形式和超链接。链接到有 REBOL 功能的网站上就可以象扫瞄网页一样使用各种程序。由于 REBOL 语言比 Java 要简练的多,同时是不用编译的脚本语言,它的程序文件格外小,更适合网络传输。由于REBOL 有这样奇特的功能,它自称 internet 操作系统。由于 REBOL 是脚本语言,因此它自然是跨平台的。它有很多操作系统的实现。还有一个特点,REBOL 语言自身只是一个几百 k 的可执行文件,因此 REBOL程序的公布是格外简洁的。我为什么选择了 Python首先声明,我编程只编应用程序,就是代替自己工作的小程序。假
38、设编写系统程序总会用到 C 或 Java 的。我宠爱脚本语言,脚本语言不用编译就可以运行,格外便于修改,而编程序是一种经常性的活动,程序编完后总在不断的修改中,没必要搞的很盛大,还要编译。另外,脚本程序每个使用的人都可以顺手拿来修改,不会消灭还要去找源代码的状况。因此,C/C+和 Java 就被排解了。我宠爱简洁的语言,不宠爱为了编写简洁的程序而去学习大量简单的规定,需要大量的学习才会的语言不是好语言,是把人当机器看。C/C+和 Java 都有严格但啰嗦的语法,有永久学不完的函数、类、库。让人看到就头大。而 Perl 有各种怪里怪气的速记符号,程序经常让人头晕。简洁的含义除了简洁学,还要功能丰
39、富,常用到的东西要早就预备好,不用每个人都去写同样的数据构造程序等。Python 有丰富的数据类型,有完备的面对对象的构造,有规章表达式等各种方便编程的模块。这个规律就是程序做的多,人做的就少,假设程序做的少,就要人做的多。这就是界面友好的问题。简洁上手,功能丰富是程序设计的很重要的目标,Windows 就是靠这个流行的。而 Python 也很好的表达了这点。而 Perl 象 Unix 的 emaCs 之类其它工具一样,功能强大,但太难学,太难懂。是比较违反人性的。关于性能。现在 Cpu 已经很强大了。除了很大的程序和系统程序,没必要关心性能。关于功能。假设不是编写系统程序和贴近系统的程序,没
40、必要使用操作系统特别供给的功能。C 是可以干任何事情,但它编程效率低,简单。至于我为什么不用 vb,由于 vb 太浩大了。我没必要实现一个小功能启动这么浩大的程序。太夸大。另外,vb 没有类继承,虽然是应用编程,但假设要编略微大的程序,总会用到类继承的。Python 得强大得扩展力量使对 Python 得学习不会铺张。Python 经过简洁得处理能使用各种得 C 和 C+库,也可以被 C 和 C+调用。Python 可以直接使用 Java 得类,也可以直接被 Java 调用。这样,对 Python、Java、C 得学习和使用阅历都不会被铺张,还能相互补充。Python 可以提高 Java 和
41、C 得编程效率,Java 和 C 可以补充 Python 功能上得缺乏。Python 还可以和 Tcl 直接交互,这种功能是内置得。期盼 Python 能简洁的调用 Perl 和 PHP 得功能。能使用 Lisp 和 prolog 更好。最具有现代感的 Lisp 解释器 DrSchemeLisp 是一个古老的计算机编程语言,给人的印象是速度慢,输入输出力量弱, 没有图形界面,自身携带的库太少,很多功能不能实现。这一切在 DrScheme 手中转变了。DrScheme 具有大量的现代语言具有的功能,比方作为嵌入脚本的力量,图形界面的编程力量,面对对象的力量,组件编程力量,正则表达式力量,XML
42、力量,作为 web 效劳器和客户端来输入输出力量及其它网络力量,产生独立可执行文件的力量。一个集成的编辑调试环境。不过它的程序执行速度还是稍慢。固然,它具有全部 Scheme 的优点,语法的宏定义力量,命名空间力量,数据和程序不分的力量,堆栈式内存治理,无穷嵌套,用“表”来表现全部语句和数据的简洁方式,也自然带有程序环境的永恒存在力量。这些特点好似正在最消灭的编程语言中消灭。好似目前的编程语言的进展趋势是从 C 语言的方式向具有更多 Lisp 特点的方向进展。就像 Windows 渐渐具有了越来越多的 Unix 早已实现的功能。才知道 Lisp 的编程环境已经这么好了。eiffel 语言印象印
43、象深的是它是全开发周期的语言,并且是在开发周期可回溯的。它的ContraCt 和 Ada 类似。eiffel 是和 C+类似的编译的面对对象语言,不过更简洁,能够多继承。eiffel 是 C 语言的面对对象编程的代替物。mozart oz 语言oz 介绍它是面对对象的、能够规律编程的、并发分布的语言。我对 oz 印象最深的是它的多线程力量。一个简洁的Case 语句,就可以启动多个线程。另外,它也是一个 prolog 的代替物,可以编写分布并发的人工智能程序。各种语言的选择和语言之间的关系假设编写对性能要求苛刻,或和操作系统结合严密的程序,必定选择 C。假设编写处处可用的程序,选 Java。假设
44、编写大程序,可能的话尽量用脚本语言如 Python、Ruby,不行了再用Java 和 C。由于脚本语言带来了生产力。编写文本的处理程序用 Perl 或 Ruby。编写学问的处理程序用 prolog。编写最机敏,最模糊的程序用 Lisp。编写 office 程序用 vba。编写效劳器端程序,PHP、承受自己生疏的语言来写,例如Perl、Python、RubyCGI、ASP、生疏 Java 就用JSP 都是选择。编写数据库程序用 vb 或 delphi。假设要追求性能和程序的力量,要完全发挥操作系统的力量,使用 C/C+语言是适宜的。在 Windows 环境下用 VC,在 Unix-like 环境
45、下用 gcc。假设不是追求和操作系统完善结合,而只是性能,又要追求跨平台性,那么仍旧选择 C,但可以选择跨平台的库,如 qt、gtk、fox、wxWindows。假设要编写玩耍也有跨平台选择:SDL。假设不满足 C 领域标准的不统一,不满足C 的简洁出错,不满足C 的面对对象特征不彻底。假设不在乎跨平台,Windows 平台可以选择 C#,maC 平台可以选择 CoCo。假设需要跨平台,可以选择 Java。假设需要跨平台,又要广泛的支持的话,选择 Java。在 Unix-like 下,最便利的工具语言是 Perl,它有强大的社区和代码库的支持。假设只作为简洁应用的工具语言,Python 和 R
46、uby 是更好的选择,他们的跨平台移植性好,应用也比较广泛。其中Python 更适合入门和沟通,长期使用也不错。Ruby 是对 Python 不满足的另一个选择,它供给了很多额外的功能。假设要选择一个程序的嵌入语言,原来有 Lisp、Basic 和 Java,现在还可以选择 Python 和 Ruby。假设在要求动态解释执行语言,而又不想学其他语言的话,C 程序员的选择是pike,Java 程序员的选择是 beanshell。在 Java 平台,又想用脚本语言的话,可以用 Python。最正统的基于文档的语言或叫动态页面语言是 JavaScript。最特地的效劳器端语言是 PHP,固然也有很多
47、其他选择。XML 语言以 XUL 为最着名,dtml 也算一个,你自己也可以用XML 作为自己特别用途的语言。比方 jedit 就用 XML 作为一种模式定制语言。XML 语言是一种比较先进的趋势,比现有的语言在特别领域更高效。要找简洁实现的语言,Lisp 和 Tcl 是选择。Lisp 的数据和程序融为一体的能力和自由是其他语言都没有的。现在消灭了一个 Lisp 的现代化的变种:REBOL。假设有基于事实的编程的需要的话,prolog 和 Clips 是必定。一般是使用什么软件,就用什么软件的语言就拿我用的软件举例:使用 excel,就用 vba 编程。使用 autoCad 就用 autoLi
48、sp 编程使用 zope 就用 Python 编程假设使用 gimp 就用 Python 或 sCheme 编程使用 gnome office 就用 Python 或 Basic 编程使用 blender 就用 Python 编程然后看处理什么样类型的数据假设处理文件的操作就用 shell 语言。比方 bash假设处理文本文件,就用 Perl 或 awk,假设宠爱 Perl 的风格,又象编大程序, 就要用 Ruby假设处理数据库,简洁的用 sed。否则用 sql。假设是对象数据库,可以使用 Python+ZODB、或 Lua、fish 假设一般的数据库不能满足要求,需要做专家系统,就用 pro
49、log 假设处理构造化文本,如 XML,就用 xslt。处理 HTML,客户端用 JavasCript,效劳器端用 PHP假设处理类似语言分析的文本,就用 yacc假设处理出来的结果是打印文档或屏幕文档,就用 tex假设是图像、动画或其它二进制的文件,一般用 C 语言。假设处理的问题和操作系统底层打交道,用 C 语言从语言特点来说假设极端要求运行中的多线程的并发和分布,可以考虑 oz 语言。假设极端重视文档,期望把程序的文档写出来了,程序也几乎就完成了,那么用Cweb简单的程序,在编写之前需要做 uml 的文档。假设要编写规模较大的程序或打算只学一种编程语言,就要用 Python假设编写程序来
50、处理简单的数据构造和算法,就用 Lisp 和 sCheme宠爱 Lisp的风格,并期望更简洁,用 REBOL假设想最简洁的实现一个语言来作为嵌入语言,就用 Tcl,假设 Tcl 有局限,就用 LuaC 语言的改进C 语言是最普及的语言,但 C 语言有一些缺点,因此,就产生了很多改进 C 的语言。由于 C 不能编写大程序,就产生了 C+;由于 C+还有指针等缺点,就产生了 Java;假设不宠爱 C+的各种缺点,又想使用一个编译型语言,就选择 eiffel。C 语言的一个缺点是标准库规模小,不能解决全部的问题,就产生了大量不兼容的库, 导致了很多不行移植的程序。假设想要一个和C 用样级别的可移植的
51、编程语言, 就选择 Ada。Ada 的图形用户界面库和各种和操作系统相关的库都是标准化的, 可以选择不同卖家的解决方案。是军队要求的标准编程语言。假设不宠爱 C 语言的繁琐,期望常做的事编程能够简洁,那么可以用 Python。完成同样的工作, Python 代码行数是 C 的几分之一。C 风格的脚本化语言是 JavasCript,pike关于图形用户界面的选择最简洁的图形界面接口是 tk,可以在各种平台上可用假设有更高的要求使用 gtk。gtk 移植性差些。一个以移植性为目标的开源 C 库是 wxwindow假设期望简洁的编程,要求不很高,可以用 XUL跨平台的图形用户构造是 Java 的 a
52、wt 和 swing。假设不跨平台,还有 ibm的 Java 解决方案。假设对商业编程语言不排斥,可以用qt,由于qt 的程序,假设商业使用是要付费的。假设要编写全屏的文本界面程序,emaCs 是最权威的。我们可以回忆,turboC 的编程环境和图形用户界面一样友好。它就是全屏的文本用户界面。假设编写 office 家族类似的程序,在 openoffice 上也是可以考虑的选择。gtk 也可以。Ruby 和 Python 的比较Python 和 Ruby 的一样点都强调语法简洁,都具有更一般的表达方式。Python 是缩进,Ruby 是类Basic 的表达。都大量削减了符号。都是动态数据类型。
53、都是有丰富的数据构造。都具有 C 语言扩展力量,都具有可移植性,比Perl 的可移植性更好。也都可以作为嵌入语言。都是面对对象的语言,都可以作为大工程的开发工具。都有丰富的库支持。也有最宽松的版权许可,除了一些工具属于 GNU 世界。都有 Lisp 特色的 eval 函数,也都能把函数作为参数。也有图形界面的 Ruby 的特地编辑器。都获得了广泛的 C 库的支持。如 qt、gtk、tk、SDL、FOX 等,Ruby 打算实现 SWIG 接口。都有完善的文档。和 Python 相比 Ruby 的优点具有正则表达式和嵌入 HTML 的功能。Python 也有正则表达式,但没有 Ruby 的应用便利和广泛。Python 的嵌入 HTML 工程才刚起步。Ruby 还有 apaChe 的 mod 模块。Ruby 本身也实现和很多 Unix 工具,如 raCC,doCtools。比Python 更亲近 Linux。比 Python 功能更完整的面对对象的语法。Ruby 的整个库都是具有类继承的构造。他的根本的数据类型和运算符都是可以重载的。Ruby 主要的功能都是通过对象的方法调用来实现的,而不是函数。Python也在向这方面进展,但没有 Ruby 做的彻底。Ruby 的类是更标准的单继承,还有接口等概念的实现。Python 可以实现在列表内的条件语句、循环语句,而 Ru
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年黑龙江省双鸭山市第三十一中学高三三校联合测试语文试题试卷含解析
- 2025年高考语文作文预测11篇
- 《工厂供配电技术(第三版)》 课件 课题1-3 电力系统基本知识 -电力线路的结构与敷设
- 2024年中级经济师考试题库附完整答案(名师系列)
- 医院廉政建设警示教育
- 心理咨询师的团队协作技巧试题及答案
- 铸造工鉴定培训
- 2021年贵州省安顺市中考理综物理试题【含答案、解析】
- 2024年咨询工程师(经济政策)考试题库附完整答案【夺冠】
- 2024年中医主治医师临床诊断学及治疗专业医术知识考试题库与答案
- 招标代理服务服务方案
- 2022届上海高考语文调研试测卷详解(有《畏斋记》“《江表传》曰…”译文)
- 基于大数据的电商平台用户行为分析系统研究与实现
- 六年级下册语文试题-广东省广州市越秀区第一、二单元测验卷真卷(无答案)部编版
- 教学设计中的自适应学习模式
- 帕瓦娜的守候
- 2022年海南省高考物理真题试卷含答案与解析
- 意识障碍诊疗规范2023版
- 仪表检修规程
- 煤矿电气设备防爆检查细则
- 国家电网有限公司十八项电网重大反事故措施
评论
0/150
提交评论