自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP vs Ruby vs Python:三種編程語(yǔ)言誰(shuí)最強(qiáng)?(下)

譯文
開(kāi)發(fā) 后端
編程語(yǔ)言種類(lèi)繁多,每一種語(yǔ)言用來(lái)處理具體而獨(dú)特的任務(wù)。每種語(yǔ)言都有一套獨(dú)特的關(guān)鍵字和特殊語(yǔ)法來(lái)組織管理程序命令。我們?cè)诒疚闹袑⒅鹨唤榻B三種大受歡迎的語(yǔ)言:PHP、Ruby和Python。

【51CTO.com快譯】上期完成了對(duì)PHP和Ruby的介紹,這次為大家具體介紹Ruby與前兩個(gè)語(yǔ)言的不同,誰(shuí)在使用它們,以及每種語(yǔ)言受歡迎的程度。

Ruby:解釋型的、純粹的面向?qū)ο缶幊陶Z(yǔ)言

Ruby(編程語(yǔ)言)經(jīng)常與Ruby on Rails(或簡(jiǎn)稱(chēng)rails)在一起,后者是一種開(kāi)源全棧Web應(yīng)用程序框架。它是一種動(dòng)態(tài)、命令式的面向?qū)ο缶幊陶Z(yǔ)言,由日本的松本行弘(Yukihiro Matsumoto)開(kāi)發(fā)。這種語(yǔ)言受到了Perl、Eiffel和Smalltalk的影響。它有動(dòng)態(tài)類(lèi)型系統(tǒng)和自動(dòng)內(nèi)存管理功能。

Ruby:解釋型的、純粹的面向?qū)ο缶幊陶Z(yǔ)言


(1)Ruby的優(yōu)點(diǎn)
  • 和PHP一樣是開(kāi)源的
  • 適用于多個(gè)平臺(tái)
  • 可以嵌入到超文本標(biāo)記語(yǔ)言(HTML)中
  • 一種甚高級(jí)語(yǔ)言(VHLL)
  • 提供了將數(shù)據(jù)方法封裝在對(duì)象里面的功能
  • 純粹的OOP(面向?qū)ο缶幊蹋?/span>
  • 超豐富的字符串和文本處理技術(shù)/方法
  • 很容易連接DB2、MySQL、Oracle和Sybase等數(shù)據(jù)庫(kù)
  • 用Ruby編寫(xiě)的可擴(kuò)展程序很容易維護(hù)
  • 擁有一套整潔、簡(jiǎn)易的語(yǔ)法,讓新開(kāi)發(fā)人員很容易上手
  • 能夠用一套簡(jiǎn)單的API編寫(xiě)多線程的應(yīng)用程序
  • 提供了高級(jí)的數(shù)組類(lèi)
  • 能夠用Ruby或C編寫(xiě)外部擴(kuò)展庫(kù)
  • 允許“保留字”用作標(biāo)識(shí)符,只要解析器并不覺(jué)得有歧義,但是不太建議這樣做。
  • 更好的安全功能
  • 它有調(diào)試器
  • 它有靈活的語(yǔ)法
  • 功能強(qiáng)大的字符串處理機(jī)制
(2)Ruby的缺點(diǎn)
  • 很難學(xué)會(huì)
  • 缺少信息資源
  • 相比其他編程語(yǔ)言,處理時(shí)間(CPU時(shí)間)比較長(zhǎng)
  • 開(kāi)發(fā)和更新比較慢
(3)誰(shuí)在使用Ruby?
  • Google Sketchup
  • 37signals
  • GitHub
  • Shopify
  • Indiegogo
  • Basecamp
(4)受歡迎程度
據(jù)Ruby官方網(wǎng)站聲稱(chēng),Ruby躋身于全球十大最受歡迎的編程語(yǔ)言排行榜(比如TIOBE指數(shù))。其迅猛發(fā)展主要?dú)w功于用Ruby編寫(xiě)的軟件大行其道,尤其是Ruby on Rails Web框架。
 
(5)語(yǔ)法
所有Ruby文件都會(huì)有擴(kuò)展名“.rb”。使用/usr/bin目錄下的Ruby解釋器,你就可以運(yùn)行Ruby代碼。
 
 
  1. #!/usr/bin/ruby -wputs"Put something here"; 
 
 
學(xué)習(xí)一種新的編程語(yǔ)言很費(fèi)時(shí)間,也很乏味。.Net開(kāi)發(fā)人員會(huì)跳出來(lái)說(shuō)“我為啥要學(xué)?我是專(zhuān)業(yè)的.Net開(kāi)發(fā)人員,平日的工作讓我沒(méi)時(shí)間來(lái)學(xué)習(xí)一種新的編程語(yǔ)言。”
 
但實(shí)則不然。你可以從新的編程語(yǔ)言當(dāng)中學(xué)到許多知識(shí),如果它們對(duì)其他經(jīng)過(guò)優(yōu)化的語(yǔ)言加以完善,更是如此。Ruby就是這樣一種語(yǔ)言。我同樣認(rèn)為,由某種編程語(yǔ)言方面的開(kāi)發(fā)新手變成專(zhuān)業(yè)人員確實(shí)不易,但你會(huì)感謝這番經(jīng)歷?,F(xiàn)在我只想告訴大家:如果你堅(jiān)持使用Ruby,那么不會(huì)吃虧。樂(lè)觀些!

(6)Ruby是什么?
 
如上所述,Ruby是一種完善的語(yǔ)言,它結(jié)合了眾多編程語(yǔ)言的思想和方法。Ruby出色地融合了Python易于理解的流程、Smalltalk的優(yōu)雅性和Perl簡(jiǎn)單易學(xué)的語(yǔ)法風(fēng)格,同時(shí)也是一種高級(jí)的面向?qū)ο缶幊陶Z(yǔ)言(如今的大多數(shù)編程語(yǔ)言都是如此),它是在上世紀(jì)90年代中期出現(xiàn)在日本的,現(xiàn)在Ruby已逐漸開(kāi)始在歐美也更流行起來(lái)。
 
Ruby以動(dòng)態(tài)類(lèi)型系統(tǒng)和自動(dòng)內(nèi)存管理著稱(chēng)。我說(shuō)的動(dòng)態(tài)類(lèi)型是指,Ruby程序中的大多數(shù)類(lèi)型檢查是在運(yùn)行時(shí)執(zhí)行的,這意味著你沒(méi)必要為整數(shù)和字符串類(lèi)型而操心。Ruby會(huì)為你做這項(xiàng)工作。我們會(huì)在后面的一個(gè)簡(jiǎn)短例子中深入探討這個(gè)話題。
 
推出Ruby的基本目的是讓人們很容易了解代碼與機(jī)器交互。Ruby之父松本行弘堅(jiān)持認(rèn)為,設(shè)計(jì)Ruby的初衷是提高程序員的工作效率,而不是優(yōu)化機(jī)器。

(7)Rails是什么?
 
Rails是用Ruby編寫(xiě)的一種極其高效的應(yīng)用程序框架,由David Heinemeier Hansson開(kāi)發(fā)。據(jù)說(shuō),相比用基于Java的應(yīng)用程序框架來(lái)開(kāi)發(fā),用Rails開(kāi)發(fā)的Web應(yīng)用程序其速度要快十倍。Rails是基于Ruby的開(kāi)源框架,它可用于快速的數(shù)據(jù)庫(kù)集成。
 
Rails以打破常規(guī)的概念著稱(chēng),因此避免了約定,采用了一種動(dòng)態(tài)編程結(jié)構(gòu)。應(yīng)用程序的基本代碼和更新后的數(shù)據(jù)庫(kù)始終含有Rails從頭到尾執(zhí)行程序所需要的一切。
一個(gè)基本的Ruby程序
 
看看輸入這段代碼會(huì)有怎樣的結(jié)果:
代碼:
 
  1. personal = “I don’t love my girlfriend” 
  2. puts personal 
 
輸出:
 
  1. I don’t love my girlfriend 
這實(shí)際上會(huì)將結(jié)果打印輸出到控制臺(tái)。沒(méi)有初始化、分號(hào)和主要方法。
現(xiàn)在,不妨看一下我們要翻轉(zhuǎn)字符串時(shí)PHP與Ruby在編程方面的簡(jiǎn)單區(qū)別:
 
PHP:
 
  1. strrev(“string”); 
  2. Ruby: 
  3. “string”.reverse 
 
哇!你的字符串馬上就會(huì)翻轉(zhuǎn)??匆幌掠眠@兩種編程語(yǔ)言來(lái)實(shí)現(xiàn)的難易程度。基于Ruby的編程語(yǔ)言讓你很容易編寫(xiě)程序。它更像用英語(yǔ)來(lái)編寫(xiě),而不是用編碼語(yǔ)言來(lái)編寫(xiě)。它是編程語(yǔ)言的未來(lái)。


(8)Ruby(和Rails)的優(yōu)點(diǎn)
我知道Ruby這個(gè)世界很大,我連皮毛都未觸及,一篇小小博文根本不足以探究Ruby的世界。因此,我們不妨直接介紹Ruby的優(yōu)點(diǎn):
  • 優(yōu)雅――正如我在前面指出,這個(gè)優(yōu)點(diǎn)正是Ruby的強(qiáng)項(xiàng)。作為一種編程語(yǔ)言,Ruby超優(yōu)雅,幾乎就像英語(yǔ)。正是由于類(lèi)似英語(yǔ)的這個(gè)優(yōu)點(diǎn),新手也很容易上手Ruby,不必害怕。
  • 簡(jiǎn)潔而強(qiáng)大――上面的例子本身就解釋了Ruby代碼有多簡(jiǎn)潔。代碼盡可能簡(jiǎn)短。另外,Ruby與其他任何語(yǔ)言一樣強(qiáng)大,因?yàn)樗敲嫦驅(qū)ο蟮母呒?jí)編程語(yǔ)言,就像其他新潮的編程語(yǔ)言那樣。
  • 從不重新發(fā)明輪子――Rails(Ruby)是一種編程接口,它根本不會(huì)讓你重新發(fā)明輪子。它生成的代碼可反復(fù)地重復(fù)使用。
  • 內(nèi)置測(cè)試――Rails以用具(harness)和示例數(shù)據(jù)(fixture)著稱(chēng),它們充當(dāng)支持代碼,因而讓程序員更容易編寫(xiě)測(cè)試用例。另外,Rails創(chuàng)建簡(jiǎn)單的測(cè)試樁模塊(test stub),這些樁模塊可以由程序員來(lái)擴(kuò)展。
  • 開(kāi)發(fā)、測(cè)試和生產(chǎn)環(huán)境――Rails巧妙地在三個(gè)不同的環(huán)境(即開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境和生產(chǎn)環(huán)境)下啟動(dòng)你的項(xiàng)目。這三個(gè)環(huán)境用起來(lái)彼此略有不同,各自補(bǔ)充原始的軟件開(kāi)發(fā)生命周期。

(9)展示時(shí)間
現(xiàn)在,不妨看一下幾個(gè)使用Ruby來(lái)實(shí)現(xiàn)的總體比較優(yōu)秀的網(wǎng)站(其實(shí)是知名網(wǎng)站)。你會(huì)看到設(shè)計(jì)人員如何借助Ruby在眾多網(wǎng)站中脫穎而出。
 
A List Apart
 
Basecamp

PHP vs Ruby vs Python:三種編程語(yǔ)言誰(shuí)最強(qiáng)?

CrunchBase

PHP vs Ruby vs Python:三種編程語(yǔ)言誰(shuí)最強(qiáng)?


Github


 
那么,哪種是我該使用和學(xué)習(xí)的最佳編程語(yǔ)言?
 
你從大多數(shù)程序員會(huì)聽(tīng)到的答案是“你用它們都可以處理各項(xiàng)任務(wù)。”它們都是不錯(cuò)的選擇。沒(méi)有好壞之分。這總是取決于你想完成什么樣的任務(wù)。
如果你邁出一步學(xué)習(xí)一種編程語(yǔ)言,那么很可能會(huì)使用內(nèi)置框架來(lái)用于你的項(xiàng)目?;旧蟻?lái)說(shuō),Web框架讓你更容易開(kāi)發(fā)應(yīng)用程序。大多數(shù)網(wǎng)站都有一系列共同的功能(比如處理會(huì)話和數(shù)據(jù)驗(yàn)證),框架可以防止你每當(dāng)創(chuàng)建網(wǎng)站時(shí)重寫(xiě)這部分內(nèi)容。
 
如果你已經(jīng)有了深入了解,PHP有幾種CMS框架可供使用。最流行的PHP內(nèi)容管理系統(tǒng)(CMS)是WordPress、Joomla和Drupal,大多數(shù)有豐富的插件。你可以輕松編寫(xiě)新的CMS,只需要耐心地看完幾天的教程。
 
還有其他相當(dāng)好的框架,但是使用流行框架提高了迅速找到支持或找到所需插件的可能性。就Python而言,有Django和CherryPy這兩種Web框架,它們?yōu)槟闾峁┝讼喈?dāng)不錯(cuò)的工具包。
如果你選擇了Ruby,你認(rèn)為你受到的限制性會(huì)大一點(diǎn)(因?yàn)檫@種語(yǔ)言比較新),但其基本框架是Rails。你還需要考慮哪種語(yǔ)言提供最出色的支持,那樣萬(wàn)一你在代碼方面遇到了問(wèn)題,可以迅速找到答案。
  • PHP是用于編寫(xiě)HTML頁(yè)面的最佳語(yǔ)言。
  • Python是一種通用編程語(yǔ)言。它可以用于構(gòu)建從Web應(yīng)用程序、爬蟲(chóng)程序、守護(hù)進(jìn)程到桌面GUI應(yīng)用程序的幾乎一切程序。
  • Ruby最擅長(zhǎng)快速構(gòu)建數(shù)據(jù)實(shí)體的Web應(yīng)用程序,那樣你可以專(zhuān)注于特別功能,而不是插入、更新和刪除這些查詢操作。
就是這樣。但愿你已大致了解了要學(xué)哪種編程語(yǔ)言。
 
原文標(biāo)題:The Three Programming Languages in a Nutshell
文章審核人:回憶的翅膀  

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:陶家龍 來(lái)源: 51CTO
相關(guān)推薦

2017-01-20 16:55:13

編程PHPRuby Python

2017-02-24 19:08:48

PythonPHPRuby

2017-04-21 10:16:07

web語(yǔ)言Python

2017-09-12 14:35:08

PythonRubyWeb

2017-04-11 15:15:20

CentOSPHP拓展安裝

2022-07-25 17:44:59

編程計(jì)算機(jī)

2018-05-07 08:54:34

GolangPython語(yǔ)言

2025-01-26 10:29:04

2025-03-24 13:17:11

2010-07-15 14:15:58

最強(qiáng)Linux超級(jí)計(jì)算

2018-09-06 12:30:40

編程語(yǔ)言PythonJava

2018-09-08 09:25:05

編程語(yǔ)言PythonVS Code

2018-10-10 14:21:06

Python 工具程序員

2012-08-07 10:02:06

JSP

2009-12-04 15:42:57

PHP文件緩存

2022-03-29 07:33:21

內(nèi)網(wǎng)穿透工具

2025-03-26 02:55:00

2009-11-03 10:04:06

VS.PHPVisual StudPHP

2018-08-15 08:33:33

編程Go語(yǔ)言開(kāi)發(fā)

2019-03-01 09:36:25

ReactAngular開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)