编程语言介绍.pdf
《编程语言介绍.pdf》由会员分享,可在线阅读,更多相关《编程语言介绍.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 本文由2008146683贡献 d o c 1。编程语言介绍 目录 隐藏 1 开放源代码的必要性 2 各种语言的选择 3 各种语言的选择 4 我为什么选择了 Py t h o n 5 Ru b y 和 Py t h o n 的比较 51 Py t h o n 和 Ru b y 的相同点 52 和 Py t h o n 相比 Ru b y 的优点 53 和 Py t h o n 相比 Ru b y 的不足 54 Py t ho n 和 Ru b y 的语言的选择 6 多脚本语言的大统一及疑问 7 NET 介绍 71 NET 所实现的 Ja v a 的功能 72 NET 未实现的 Ja v a
2、功能 73 NET 实现的 Ja v a 不具备的功能 74 相对 v s 6 的改进 8 XML 各种技术介绍 9 最先进的 XML 格式图形界面程序开发工具XUL 10 最接近人类语言的编程语言REBOL 11 最具有现代感的 Li s p 解释器 Dr Sc h e m e 12 e i f f e l 语言印象 13 m o z a r t o z 语言 14 各种语言的选择和语言之间的关系 141 一般是使用什么软件,就用什么软件的语言 142 然后看处理什么样类型的数据 143 从语言特点来说 144 C 语言是最普及的语言,但 C 语言有一些缺点,因此,就产生了很多改进 C 的语
3、言 145 关于图形用户界面的选择 146 d i s c u s s 15 文学编程和 CWEB 介绍 16 贡献 编辑 开放源代码的必要性 在介绍编程语言之前,先说说开放源代码的必要性。现在,在软件生产领域存在巨大的智力浪费,大 家把大量的精力用在编写别人已经实现的程序代码上。看看,文本编辑器有多少,看看 f t p 程序有多少,看看字处理程序有多少,这些程序虽然有差别,但主要的功能都是一样的。要实现个性化的功能,在已有 的软件基础上修改会节省多少时间呀!而每个程序各编一套,又浪费多少时间?如果,没有这些重复的工 作量,世界上的程序员至少可以节省 80%的工作量。同时,开放源代码也方便了大
4、家的交流,阅读源代码 应该是最直接最有效的学习途径,尤其是比较专业的领域。要开放源代码,下面几点比较重要:语言要流行。语言的函数和类库统一。语言的语法和编译器要统一。编译器是否开放源代码。API 是否开放源代码。语言的可重用性、功能、友好性。语言统一:如果大家都用一种编程语言,都用同样的函数,同样的类库,那么,大家的共同语言就会 很多。大家只要学会一种语言,一套函数,一套类库,就可以相互读懂源代码,这样,学习量是最少的;但是语言统一根本是不可能的事,因为各种语言都有其特色,如果取了其中一个优点,通常就会牺牲另一 个优点。可是学习新的 API 浪费程序员大量的时间和精力,尤其是当这个 API 有
5、大量和其他 API 重复的功 能的时候。要增加代码的可重用性,要从下面几点着手:代码的可读性。如格式、是否接近英语语法和单词。代码的表达能力,也就是简单性,能用最少的语句和单词实现同样的功能。代码的结构性,如函数、模块、类。语言功能的强大从下面几点来说:是否拥有大量的库支持。这是最重要的,要求编写任何功能的程序都有强大的库支持。语法功能是否强大,比如是否有出错处理。是否有指针。语言的友好性:语言包的大小,语言包越小,学习越简单。语言是否有友好的编辑调试环境。语言的可视化和集成编程环境。编辑 各种语言的选择 如果编写对性能要求苛刻,或和操作系统结合紧密的程序,必然选择 C。如果编写到处可用的程序
6、,选 Ja v a。如果编写大程序,可能的话尽量用脚本语言如 Py t h o n、Ru b y,不行了再用 Ja v a 和 C。因为脚本语 言带来了生产力。编写文本的处理程序用 Pe r l 或 Ru b y。编写知识的处理程序用 p r o l o g。编写最灵活,最模糊的程序用 Li s p。编写 o f f i c e 程序用 v b a。编写服务器端程序,PHP、(采用自己熟悉的语言来写,例如 Pe r l、Py th o n、Ru b y)CGI、ASP、(熟悉 Ja v a 就用)JSP 都是选择。编写数据库程序用 v b、Po w e r Bu i l e r 或 d e l
7、 p h i。进行算法研究、设计,用 Pa s c a l。编辑 各种语言的选择 如果要追求性能和程序的能力,要完全发挥操作系统的能力,使用 C/C语言是合适的。Wi n d o w s 在 环境下用 VC,在 Un i x l i k e 环境下用 g c c。如果不是追求和操作系统完美结合,而只是性能,又要追求跨平台性,那么仍然选择 C,但可以选择 跨平台的库,如 q t、g t k、f o x、w x Wi d g e t s。如果要编写游戏也有跨平台选择:SDL。如果不满意 C 领域标准的不统一,不满意 C 的容易出错,不满意 C 的面向对象特征不彻底。如果不在 乎跨平台,Wi n d
8、 o w s 平台可以选择 C#,m a c 平台可以选择 Co c o a (Ob j e c t i v e C)。如果需要跨平 台,可以选择 Ja v a。如果需要跨平台,又要广泛的支持的话,选择 Ja v a。在 Un i x l i k e 下,最方便的工具语言是 Pe rp a g e 1l,它有强大的社区和代码库的支持。如果只作为简单应用的工具语言,Py t h o n 和 Ru b y 是更好的选择,他们的跨平台移植性好,应用也 比较广泛。其中 Py t h o n 更适合入门和交流,长期使用也不错。Ru b y 是对 Py t h o n 不满意的另一个选择,它提供了很多额外
9、的功能。如果要选择一个程序的嵌入语言,原来有 Li s p、Ba s i c 和 Ja v a,现在还可以选择 Py t h o n 和 Ru by。如果在要求动态解释执行语言,而又不想学其他语言的话,C 程序员的选择是 pi k e,Ja v a 程序员的 选择是 b e a n s h e l l。在 Ja v a 平台,又想用脚本语言的话,可以用 Py t h o n。最正统的基于文档的语言或叫动态页面语言是 Ja v a Sc r i p t。最专门的服务器端语言是 PHP,当然也有很多其他选择。XML 语言以 XUL 为最着名,d t m l 也算一个,你自己也可以用 XML 作为自
10、己特殊用途的语言。比如 j e d i t 就用 XML 作为一种模式定制语言。XML 语言是一种比较先进的趋势,比现有的语言在特殊领域更高 效。要找容易实现的语言,Li s p 和 Tc l 是选择。Li s p 的数据和程序融为一体的能力和自由是其他语言都没有的。现在出现了一个 Li s p 的现代化的变 种:REBOL。如果有基于事实的编程的需要的话,p r o l o g 和 Cl i p s 是必然。编辑 我为什么选择了 Py t h o n 首先声明,我编程只编应用程序,就是代替自己工作的小程序。如果编写系统程序总会用到 C 或 Ja v a 的。我喜欢脚本语言,脚本语言不用编译就
11、可以运行,非常便于修改,而编程序是一种经常性的活动,程 序编完后总在不断的修改中,没必要搞的很隆重,还要编译。另外,脚本程序每个使用的人都可以随手拿 来修改,不会出现还要去找源代码的情况。因此,C/C和 Ja v a 就被排除了。我喜欢简单的语言,不喜欢为了编写简单的程序而去学习大量复杂的规定,需要大量的学习才会的语 言不是好语言,是把人当机器看。C/C和 Ja v a 都有严格但罗索的语法,有永远学不完的函数、类、库。让人看到就头大。而 Pe r l 有各种怪里怪气的速记符号,程序常常让人头晕。简单的含义除了容易学,还要 功能丰富,常用到的东西要早就准备好,不用每个人都去写同样的数据结构程序
12、等。Py t h o n 有丰富的数 据类型,有完备的面向对象的结构,有规则表达式等各种方便编程的模块。这个逻辑就是程序做的多,人 做的就少,如果程序做的少,就要人做的多。这就是界面友好的问题。容易上手,功能丰富是程序设计的 很重要的目标,Wi n d o w s 就是靠这个流行的。Py t h o n 也很好的体现了这点。Pe r l 象 Un i x 的 e m a Cs 而 而 之类其它工具一样,功能强大,但太难学,太难懂。是比较违背人性的。关于性能。现在 Cp u 已经很强大了。除了很大的程序和系统程序,没必要关心性能。关于功能。如果不是编写系统程序和贴近系统的程序,没必要使用操作系统
13、特别提供的功能。C 是可 以干任何事情,但它编程效率低,复杂。至于我为什么不用 v b,因为 v b 太庞大了。我没必要实现一个小功能启动这么庞大的程序。太夸张。另外,v b 没有类继承,虽然是应用编程,但如果要编稍微大的程序,总会用到类继承的。Py t h o n 得强大得扩展能力使对 Py t h o n 得学习不会浪费。Py t h o n 经过简单得处理能使用各种得 C 和 C库,也可以被 C 和 C调用。Py t h o n 可以直接使用 Ja v a 得类,也可以直接被 Ja v a 调用。这样,对 Py t h o n、Ja v a、C 得学习和使用经验都不会被浪费,还能相互补充
14、。Pyt h o n 可以提高 Ja v a 和 C 得编 程效率,Ja v a 和 C 可以补充 Py t h o n 功能上得不足。Py t h o n 还可以和 Tc l 直接交互,这种功能是内置得。期待 Py t h o n 能简单的调用 Pe r l 和 PHP 得功能。能使用 Li s p 和 p r o l o g 更好。编辑 Ru b y 和 Py t h on 的比较 编辑 Py t h o n 和 Ru b y 的相同点 都强调语法简单,都具有更一般的表达方式。Py t h o n 是缩进,Ru b y 是类 Ba s i c 的表达。都大量减少 了符号。都是动态数据类型。
15、都是有丰富的数据结构。都具有 C 语言扩展能力,都具有可移植性,比 Pe r l 的可移植性更好。也都可以作为嵌入语言。都是面向对象的语言,都可以作为大项目的开发工具。都有丰富的库支持。也有最宽松的版权许可,除了一些工具属于 GNU 世界。都有 Li s p 特色的 e v a l 函数,也都能把函数作为参数。也有图形界面的 Ru b y 的专门编辑器。都获得了广泛的 C 库的支持。如 q t、g tk、t k、SDL、FOX 等,Ru b y 计划实现 SWIG 接口。都有完善的文档。编辑 和 Py t h o n 相比 Ru b y 的优点 具有正则表达式和嵌入 HTML 的功能。Py t
16、 h o n 也有正则表达式,但没有 Ru b y 的应用方便和广泛。Py t h o n 的嵌入 HTML 项目才刚起步。Ru b y 还有 a p a Ch e 的 m o d 模块。Ru b y 本身也实现和很多 Un i x 工具,如 r a CC,d o Ct o ol s。比 Py t h o n 更亲近 Li n u x。比 Py t h o n 功能更完整的面向对象的语法。Ru b y 的p a g e 2整个库都是具有类继承的结构。他的基本的数据类型和运算符都是可以重载的。Rub y 主要的功能都是通过对象的方法调用来实现的,而不是函数。Py t h o n 也在向这方面发展
17、,但没 有 Ru b y 做的彻底。Ru b y 的类是更规范的单继承,还有接口等概念的实现。Py t h o n 可以实现在列表内的条件语句、循环语句,Ru b y 用“块”的方式来实现这个功能,Py t h o n 而 比 的更灵活,更具有通用性。Ru b y 具有类似 Li s p 的彻底的函数方式的条件语句、循环语句等。语句的表达能力更强。附带一些 Un i x 工具,如 r a CC 等。编辑 和 Py t h o n 相比 Ru b y 的不足 最大的不足正是因为 Ru b y 的强大所引起的。它没有 Py t h o n 的简单性好。比较复杂的面向对象语法、“块”语法的引入、正则
18、表达式的引入、一些简写标记都增加了语言的复杂性。Py t h o n 的缩进表达方式比 Ru b y 的 Ba s i c 的表达方式更让人悦目,Ru b y 程序的满眼的 e n d 让人不 舒服。当然,Ru b y 认为 e n d 的方式比 Py t h o n 更先进。Ru b y 还没有 Py t h o n 的“自省”的能力,没有从程序文件中生成文档的能力。Ru b y 支持不及 Py t h o n 广。国际化支持在 Ru b y 的计划中。这是因为 Ru b y 的历史比 Py t h o n 要短 造成的。编辑 Py t h o n 和 Ru b y 的语言的选择 从简单的就
19、是好的来说,Py t h o n 是没错的。选 Py t h o n 适合寻找简单语言的人,这很可能造成 Py t h o n 更流行,因此也有更多的支持。但如果要追求更强大的语法功能,对编程语言感兴趣,想了解各种编程概 念的人,则 Ru b y 是好的选择。Ru b y 和 Py t h o n 都想取代 Pe r l,解决 Pe r l 的缺点面向对象不足,但 Py t h o n 用是方法是混合面向对象和程序式的程式语言,Ru b y 是允许自己这个面向对象语言扮成程序式的 程式语言,编辑 多脚本语言的大统一及疑问 现在各种脚本语言太多了,有必要进行整合,p a r r o t 是一个好
20、的想法。NET 也是好的想法。它为各 种脚本提供了一个统一的虚机,为各种脚本语言提供了基于“类”的相互调用,为各种脚本提供了统一的类 库。现在各种脚本语言只是提供了对 C 语言的交互性,这种交互也是费劲的和效果不好的。比如 Py t h o n、Pe r l、Ru by 等都提供了对 C 的交互功能。脚本语言之间的交流障碍重重。而类似NET 的东西,提供了 非常容易的各种脚本的相互利用的途径,避免了很多的代码的重复编写。这种标准平台的力量是很大的,这种标准平台为什么没有在开源领域首先出现呢?众多的脚本正是开源的特点和优势,为什么这种问题要 微软来解决呢?前面有人提出了类似的问题,在 Li n
21、u x 中为什么至今没有好用的类似 ODBC 的东西呢?可能这种整合只有商业公司有能力实现吧。我的理解是,如果有创新思想的人都拿他的想法去卖钱了,因此,在开源中只剩下了模仿的人。k d e 是模仿 Wi n d o w s,k o f f i c e 是模仿 o f f i c e,Li n u x 是模仿 Un i x,g c c、b a s h 等也全都是模仿,以及 g s t e p 等,还有 f r e e d o s、a t h e o s 等也是模仿,w x Wi n d o w s、SDL 也是模仿。我想知道开源社区有没有自己 的创新?我所知道的创新是 z o p e,但 z o
22、 p e 最初也是商业产品,后来才开源的。Pe r l 是创新,Py t h o n 是 创新,但还有什么呢?是不是开源领域只有 h a c k e r,没有 Cr e a t o r?编辑 NET 介绍 编辑 NET 所实现的 Ja v a 的功能 可控代码 跨平台的虚机和伪码 免费赠送命令行编译器 纯面向对象语言 对 XML 和 XML w e b s e r v i Ce s 的支持 和 j s p 对应的 a s p NET 网页上的程序 一套统一的中间件环境。a s p NET 跟 j s p 不是同一个层次上的 w e b 技术,a s p NET 使用完善的事件响应机制,Wi n
23、 Fo r m s 类似的 We bFo r m 技术,只有 JSF 跟 As p NET 有可比性。编辑 NET 未实现的 Ja v a 功能 免费的集成开发环境 多厂家支持,跨平台的成熟度 免费的 IDE,#d e v e l o p ,ASPNET 的有 MS 的 We b Ma t r i x 而免费开源的 CLR 实现,有 MS 自己的 XP,Fr e e BSD,Ma c OS 下的 实现(原理演示不能进行商业应用),No v e l l 下的 Mo n o 项目,已经发布了 Be t a 1 版本,在 2004630 将会发布 Re l e a s e 1;还有 GNU 的一个N
24、ET 实现!编辑 NET 实现的 Ja v a 不具备的功能 多语言支持 强大的集成开发环境。在 Wi n d o w s 上媲美本机程序的速度。对 COM 的支持,对 v s 的继承 对 w i d o w s f o r m 、w e b f o r m、服务器端程序的图形直观编程。编辑 相对 v s 6 的改进 统一了集成开发环境,使 C程序也具有了 v b 的友好性。编辑 XML 各种技术介绍 XML:XML 是统一格式的结构化数据的文本文件。基于 XML 的程序,数据结构是开放的,方便不同程序处理同一种文件,这样,程序之间可以达到高水 平的协作。XML 现在成为了各行各业统一数据格式
25、的基础。XML 发展出了完善的语法,它用 DTD 或 XMLs c h e m e 来界定 XML 的标记语言。用 u r i 来唯一确定 一个 XML 格式。用p a g e 3 Cs s 或 XLT 来转换 XML 格式,x l i n k 和 x p o i n t e r 等来建立 XML 的链接,用 x p at h 来定位 XML 中的数据。x HTML:是严格符合 XML 格式的 HTML。RDF:基于 XML 的元数据描述语言。方便交换结构化数据。方便交换知识。RDF 是用主语、谓语、宾语来描述知识的。SVG:XML 格式的矢量图形格式。SMILE:XML 格式的各种多媒体在时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 语言 介绍
限制150内