PHP vs Ruby vs Python:三种编程语言谁最强?(下)

译文
开发 后端
编程语言种类繁多,每一种语言用来处理具体而独特的任务。每种语言都有一套独特的关键字和特殊语法来组织管理程序命令。我们在本文中将逐一介绍三种大受欢迎的语言:PHP、Ruby和Python。

【51CTO.com快译】上期完成了对PHP和Ruby的介绍,这次为大家具体介绍Ruby与前两个语言的不同,谁在使用它们,以及每种语言受欢迎的程度。

Ruby:解释型的、纯粹的面向对象编程语言

Ruby(编程语言)经常与Ruby on Rails(或简称rails)在一起,后者是一种开源全栈Web应用程序框架。它是一种动态、命令式的面向对象编程语言,由日本的松本行弘(Yukihiro Matsumoto)开发。这种语言受到了Perl、Eiffel和Smalltalk的影响。它有动态类型系统和自动内存管理功能。

Ruby:解释型的、纯粹的面向对象编程语言


(1)Ruby的优点
  • 和PHP一样是开源的
  • 适用于多个平台
  • 可以嵌入到超文本标记语言(HTML)中
  • 一种甚高级语言(VHLL)
  • 提供了将数据方法封装在对象里面的功能
  • 纯粹的OOP(面向对象编程)
  • 超丰富的字符串和文本处理技术/方法
  • 很容易连接DB2、MySQL、Oracle和Sybase等数据库
  • 用Ruby编写的可扩展程序很容易维护
  • 拥有一套整洁、简易的语法,让新开发人员很容易上手
  • 能够用一套简单的API编写多线程的应用程序
  • 提供了高级的数组类
  • 能够用Ruby或C编写外部扩展库
  • 允许“保留字”用作标识符,只要解析器并不觉得有歧义,但是不太建议这样做。
  • 更好的安全功能
  • 它有调试器
  • 它有灵活的语法
  • 功能强大的字符串处理机制
(2)Ruby的缺点
  • 很难学会
  • 缺少信息资源
  • 相比其他编程语言,处理时间(CPU时间)比较长
  • 开发和更新比较慢
(3)谁在使用Ruby?
  • Google Sketchup
  • 37signals
  • GitHub
  • Shopify
  • Indiegogo
  • Basecamp
(4)受欢迎程度
据Ruby官方网站声称,Ruby跻身于全球十大最受欢迎的编程语言排行榜(比如TIOBE指数)。其迅猛发展主要归功于用Ruby编写的软件大行其道,尤其是Ruby on Rails Web框架。
 
(5)语法
所有Ruby文件都会有扩展名“.rb”。使用/usr/bin目录下的Ruby解释器,你就可以运行Ruby代码。
 
 
  1. #!/usr/bin/ruby -wputs"Put something here"; 
 
 
学习一种新的编程语言很费时间,也很乏味。.Net开发人员会跳出来说“我为啥要学?我是专业的.Net开发人员,平日的工作让我没时间来学习一种新的编程语言。”
 
但实则不然。你可以从新的编程语言当中学到许多知识,如果它们对其他经过优化的语言加以完善,更是如此。Ruby就是这样一种语言。我同样认为,由某种编程语言方面的开发新手变成专业人员确实不易,但你会感谢这番经历。现在我只想告诉大家:如果你坚持使用Ruby,那么不会吃亏。乐观些!

(6)Ruby是什么?
 
如上所述,Ruby是一种完善的语言,它结合了众多编程语言的思想和方法。Ruby出色地融合了Python易于理解的流程、Smalltalk的优雅性和Perl简单易学的语法风格,同时也是一种高级的面向对象编程语言(如今的大多数编程语言都是如此),它是在上世纪90年代中期出现在日本的,现在Ruby已逐渐开始在欧美也更流行起来。
 
Ruby以动态类型系统和自动内存管理著称。我说的动态类型是指,Ruby程序中的大多数类型检查是在运行时执行的,这意味着你没必要为整数和字符串类型而操心。Ruby会为你做这项工作。我们会在后面的一个简短例子中深入探讨这个话题。
 
推出Ruby的基本目的是让人们很容易了解代码与机器交互。Ruby之父松本行弘坚持认为,设计Ruby的初衷是提高程序员的工作效率,而不是优化机器。

(7)Rails是什么?
 
Rails是用Ruby编写的一种极其高效的应用程序框架,由David Heinemeier Hansson开发。据说,相比用基于Java的应用程序框架来开发,用Rails开发的Web应用程序其速度要快十倍。Rails是基于Ruby的开源框架,它可用于快速的数据库集成。
 
Rails以打破常规的概念著称,因此避免了约定,采用了一种动态编程结构。应用程序的基本代码和更新后的数据库始终含有Rails从头到尾执行程序所需要的一切。
一个基本的Ruby程序
 
看看输入这段代码会有怎样的结果:
代码:
 
  1. personal = “I don’t love my girlfriend” 
  2. puts personal 
 
输出:
 
  1. I don’t love my girlfriend 
这实际上会将结果打印输出到控制台。没有初始化、分号和主要方法。
现在,不妨看一下我们要翻转字符串时PHP与Ruby在编程方面的简单区别:
 
PHP:
 
  1. strrev(“string”); 
  2. Ruby: 
  3. “string”.reverse 
 
哇!你的字符串马上就会翻转。看一下用这两种编程语言来实现的难易程度。基于Ruby的编程语言让你很容易编写程序。它更像用英语来编写,而不是用编码语言来编写。它是编程语言的未来。


(8)Ruby(和Rails)的优点
我知道Ruby这个世界很大,我连皮毛都未触及,一篇小小博文根本不足以探究Ruby的世界。因此,我们不妨直接介绍Ruby的优点:
  • 优雅――正如我在前面指出,这个优点正是Ruby的强项。作为一种编程语言,Ruby超优雅,几乎就像英语。正是由于类似英语的这个优点,新手也很容易上手Ruby,不必害怕。
  • 简洁而强大――上面的例子本身就解释了Ruby代码有多简洁。代码尽可能简短。另外,Ruby与其他任何语言一样强大,因为它是面向对象的高级编程语言,就像其他新潮的编程语言那样。
  • 从不重新发明轮子――Rails(Ruby)是一种编程接口,它根本不会让你重新发明轮子。它生成的代码可反复地重复使用。
  • 内置测试――Rails以用具(harness)和示例数据(fixture)著称,它们充当支持代码,因而让程序员更容易编写测试用例。另外,Rails创建简单的测试桩模块(test stub),这些桩模块可以由程序员来扩展。
  • 开发、测试和生产环境――Rails巧妙地在三个不同的环境(即开发环境、测试环境和生产环境)下启动你的项目。这三个环境用起来彼此略有不同,各自补充原始的软件开发生命周期。

(9)展示时间
现在,不妨看一下几个使用Ruby来实现的总体比较优秀的网站(其实是知名网站)。你会看到设计人员如何借助Ruby在众多网站中脱颖而出。
 
A List Apart
 
Basecamp

PHP vs Ruby vs Python:三种编程语言谁最强?

CrunchBase

PHP vs Ruby vs Python:三种编程语言谁最强?


Github


 
那么,哪种是我该使用和学习的最佳编程语言?
 
你从大多数程序员会听到的答案是“你用它们都可以处理各项任务。”它们都是不错的选择。没有好坏之分。这总是取决于你想完成什么样的任务。
如果你迈出一步学习一种编程语言,那么很可能会使用内置框架来用于你的项目。基本上来说,Web框架让你更容易开发应用程序。大多数网站都有一系列共同的功能(比如处理会话和数据验证),框架可以防止你每当创建网站时重写这部分内容。
 
如果你已经有了深入了解,PHP有几种CMS框架可供使用。最流行的PHP内容管理系统(CMS)是WordPress、Joomla和Drupal,大多数有丰富的插件。你可以轻松编写新的CMS,只需要耐心地看完几天的教程。
 
还有其他相当好的框架,但是使用流行框架提高了迅速找到支持或找到所需插件的可能性。就Python而言,有Django和CherryPy这两种Web框架,它们为你提供了相当不错的工具包。
如果你选择了Ruby,你认为你受到的限制性会大一点(因为这种语言比较新),但其基本框架是Rails。你还需要考虑哪种语言提供最出色的支持,那样万一你在代码方面遇到了问题,可以迅速找到答案。
  • PHP是用于编写HTML页面的最佳语言。
  • Python是一种通用编程语言。它可以用于构建从Web应用程序、爬虫程序、守护进程到桌面GUI应用程序的几乎一切程序。
  • Ruby最擅长快速构建数据实体的Web应用程序,那样你可以专注于特别功能,而不是插入、更新和删除这些查询操作。
就是这样。但愿你已大致了解了要学哪种编程语言。
 
原文标题:The Three Programming Languages in a Nutshell
文章审核人:回忆的翅膀  

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:陶家龙 来源: 51CTO
相关推荐

2017-01-20 16:55:13

编程PHPRuby Python

2017-02-24 19:08:48

PythonPHPRuby

2017-09-12 14:35:08

PythonRubyWeb

2017-04-21 10:16:07

web语言Python

2022-07-25 17:44:59

编程计算机

2017-04-11 15:15:20

CentOSPHP拓展安装

2018-05-07 08:54:34

GolangPython语言

2010-07-15 14:15:58

最强Linux超级计算

2018-09-06 12:30:40

编程语言PythonJava

2018-10-10 14:21:06

Python 工具程序员

2018-09-08 09:25:05

编程语言PythonVS Code

2012-08-07 10:02:06

JSP

2009-12-04 15:42:57

PHP文件缓存

2022-03-29 07:33:21

内网穿透工具

2018-08-15 08:33:33

编程Go语言开发

2019-03-01 09:36:25

ReactAngular开发

2022-03-26 17:13:22

ElasticJobxxl-job分布式

2019-04-28 13:59:31

苹果高通5G

2022-05-23 09:11:18

AngularBlazor前端

2009-11-03 10:04:06

VS.PHPVisual StudPHP
点赞
收藏

51CTO技术栈公众号