Ruby语言的优点和缺点
生活随笔
收集整理的這篇文章主要介紹了
Ruby语言的优点和缺点
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
總結(jié)自己過去這段時(shí)間Ruby的開發(fā)經(jīng)歷以及網(wǎng)上的評(píng)論,列出以下幾點(diǎn),希望能夠有助于加深對(duì)Ruby語(yǔ)言本身的了解,也希望大家多多提意見。
優(yōu)點(diǎn):
1 采用虛擬機(jī)實(shí)現(xiàn)跨平臺(tái)
2 支持垃圾回收
3 腳本語(yǔ)言,靈活,容易擴(kuò)展
4 支持面向?qū)ο?
5 基于腳本語(yǔ)言,易于同Linux Shell進(jìn)行交互
6 擁有功能強(qiáng)大和完善的標(biāo)準(zhǔn)類庫(kù)
7 擁有良好的交互式運(yùn)行環(huán)境:IRB,方便進(jìn)行開發(fā)和調(diào)試
8 語(yǔ)言內(nèi)置對(duì)規(guī)則表達(dá)式(Regular Express)的支持
9 直觀的Block語(yǔ)法來(lái)實(shí)現(xiàn)循環(huán)遍歷和函數(shù)回調(diào)
10 開放源代碼
11 支持異常機(jī)制
12 同Perl和Python相比更容易用C語(yǔ)言擴(kuò)展(來(lái)自Ruby官方網(wǎng)站)
13 支持動(dòng)態(tài)載入類庫(kù)
14 因?yàn)槭墙忉屝驼Z(yǔ)言,不需要編譯,修改后馬上就可以執(zhí)行
15 擁有一個(gè)完善的Web開發(fā)框架Rails
缺點(diǎn)
1 性能不如純靜態(tài)編譯語(yǔ)言,例如C,但可以通過用C語(yǔ)言來(lái)擴(kuò)展來(lái)解決
2 完全沒有類型檢查,靈活但容易隱藏潛在的問題
3 使用Module來(lái)實(shí)現(xiàn)多重繼承,不如JAVA所采用的接口(Interface)方式清晰,而且由于沒有嚴(yán)格的類型檢查,所以框架層的設(shè)計(jì)無(wú)法對(duì)實(shí)現(xiàn)有很嚴(yán)格的約束
4 沒有很完善的開發(fā),重構(gòu)的工具,雖然現(xiàn)在Eclipse已經(jīng)提供Ruby的開發(fā)插件,但還沒有實(shí)現(xiàn)重構(gòu),跳轉(zhuǎn)和自動(dòng)代碼生成等很有用的功能,主要原因是由于Ruby支持動(dòng)態(tài)類型
5 依然保留部分非面向?qū)ο蟮恼Z(yǔ)法,例如全局變量,全局方法
6 允許在擴(kuò)展代碼中隨意替換現(xiàn)有類的方法定義或變量,非常靈活,但可能會(huì)因?yàn)殄e(cuò)誤地修改了框架邏輯而引發(fā)難以發(fā)現(xiàn)的錯(cuò)誤,但可以用freeze方法來(lái)組織被修改
7 不支持真正的多線程,多線程環(huán)境是通過在虛擬機(jī)環(huán)境中模擬出來(lái)的,不能充分發(fā)揮多CPU的功能,如果一個(gè)線程在執(zhí)行底層調(diào)用被Block住則整個(gè)應(yīng)用程序也被Block住。
8 對(duì)Unicode和多國(guó)語(yǔ)言的支持不好(來(lái)自Martin上海演講實(shí)錄3:細(xì)數(shù)Ruby語(yǔ)言優(yōu)缺點(diǎn))
上述很多缺點(diǎn)都可以通過良好的編程方法和規(guī)范來(lái)避免。
優(yōu)點(diǎn):
1 采用虛擬機(jī)實(shí)現(xiàn)跨平臺(tái)
2 支持垃圾回收
3 腳本語(yǔ)言,靈活,容易擴(kuò)展
4 支持面向?qū)ο?
5 基于腳本語(yǔ)言,易于同Linux Shell進(jìn)行交互
6 擁有功能強(qiáng)大和完善的標(biāo)準(zhǔn)類庫(kù)
7 擁有良好的交互式運(yùn)行環(huán)境:IRB,方便進(jìn)行開發(fā)和調(diào)試
8 語(yǔ)言內(nèi)置對(duì)規(guī)則表達(dá)式(Regular Express)的支持
9 直觀的Block語(yǔ)法來(lái)實(shí)現(xiàn)循環(huán)遍歷和函數(shù)回調(diào)
10 開放源代碼
11 支持異常機(jī)制
12 同Perl和Python相比更容易用C語(yǔ)言擴(kuò)展(來(lái)自Ruby官方網(wǎng)站)
13 支持動(dòng)態(tài)載入類庫(kù)
14 因?yàn)槭墙忉屝驼Z(yǔ)言,不需要編譯,修改后馬上就可以執(zhí)行
15 擁有一個(gè)完善的Web開發(fā)框架Rails
缺點(diǎn)
1 性能不如純靜態(tài)編譯語(yǔ)言,例如C,但可以通過用C語(yǔ)言來(lái)擴(kuò)展來(lái)解決
2 完全沒有類型檢查,靈活但容易隱藏潛在的問題
3 使用Module來(lái)實(shí)現(xiàn)多重繼承,不如JAVA所采用的接口(Interface)方式清晰,而且由于沒有嚴(yán)格的類型檢查,所以框架層的設(shè)計(jì)無(wú)法對(duì)實(shí)現(xiàn)有很嚴(yán)格的約束
4 沒有很完善的開發(fā),重構(gòu)的工具,雖然現(xiàn)在Eclipse已經(jīng)提供Ruby的開發(fā)插件,但還沒有實(shí)現(xiàn)重構(gòu),跳轉(zhuǎn)和自動(dòng)代碼生成等很有用的功能,主要原因是由于Ruby支持動(dòng)態(tài)類型
5 依然保留部分非面向?qū)ο蟮恼Z(yǔ)法,例如全局變量,全局方法
6 允許在擴(kuò)展代碼中隨意替換現(xiàn)有類的方法定義或變量,非常靈活,但可能會(huì)因?yàn)殄e(cuò)誤地修改了框架邏輯而引發(fā)難以發(fā)現(xiàn)的錯(cuò)誤,但可以用freeze方法來(lái)組織被修改
7 不支持真正的多線程,多線程環(huán)境是通過在虛擬機(jī)環(huán)境中模擬出來(lái)的,不能充分發(fā)揮多CPU的功能,如果一個(gè)線程在執(zhí)行底層調(diào)用被Block住則整個(gè)應(yīng)用程序也被Block住。
8 對(duì)Unicode和多國(guó)語(yǔ)言的支持不好(來(lái)自Martin上海演講實(shí)錄3:細(xì)數(shù)Ruby語(yǔ)言優(yōu)缺點(diǎn))
上述很多缺點(diǎn)都可以通過良好的編程方法和規(guī)范來(lái)避免。
總結(jié)
以上是生活随笔為你收集整理的Ruby语言的优点和缺点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R语言使用grid包的unit函数将数据
- 下一篇: 天生量化将才?理工科程序员 做量化投资优