• 熱門專題

Python和Ruby相互比較優缺點暴露無遺

作者:wy  發布日期:2019-01-13 08:33:00
  •   為何Python和Ruby總是放在一起呢?為何Python和Ruby要進行比較呢?Python和Ruby又有那些不同呢?相信大家對這些問題肯定帶有很多疑惑,小編為大家因為這些問題找到了答案,希望大家可以認真閱讀,在你的學習中生活中工作中明白些什么收獲些什么。

      Python優于Ruby的地方:

      a) Python開發人員的背景豐富多彩,陣營規模很大,這直接導致了Python的各種lib比Ruby多很多很多很多

      b) 和Ruby相反,Python的哲學是“做一件事情有且只有一種方法”(There should be one-- and preferably only one --obvious way to do it.)。Ruby的信徒會覺得這樣非常boring,但是我覺得這一點減輕了人們在開發時的認知負擔和選擇成本,對于提高開發效率是很有幫助的。同時,這個特點使得不同的人用Python寫出來的代碼不至于相差很大,這對于團隊合作也是很有用的。(這點也導致了Python中是有公認的Best Practice的,但是Ruby中就很難找到一個公認的Best Practice)

      c) Python在面向對象上做的并不好,其實是把面向過程和面向對象雜糅起來了。(隨著Python 3的發展相信這點會有所改觀)我個人雖然感覺這樣不太好,但是實際用的時候就會發現,不強調面向對象其實能夠減輕程序員的認知負擔,寫起代碼來會比較隨心所欲,對于c程序員來說也更容易接受。(好吧,如果你覺得這點是Python的缺點,那么其實你也是對的~)d) Python開始慢慢走進大學一年紀的教科書,可以預見,未來的Python開發者陣營會繼續不斷壯大。(當然Ruby的陣營也會越來越大)

      e) Python解釋器,特別是CPython,目前比現有的Ruby解釋器快很多。這點Ruby的發明人Matz也是很想再重新寫個Ruby的虛擬機,但是苦于要做的事情很多,不知道什么時候能完成。Ruby的運行效率目前來看實在太慢了些。(當然程序運行效率和代碼是如何寫的也有很大關系,想讓Ruby程序盡可能快的話,除了一般的程序優化方法外,還要注意要多用built-in的東西,因為它們是用c寫的,運行快)

      f) Python的語法比較簡單,容易上手。

      說了這么多Python優于Ruby的地方,現在再來說說我覺得

    Python和Ruby

      Ruby優于Python的地方:

      a) 第一個印入我的腦海的優點是:有趣!當你開始慢慢學會使用Ruby后,你就會覺得Python的代碼比較死板。這是因為Ruby從Perl中繼承的一條哲學是和Python完全相反的:“每一件事情總是有多種做法”(Having more than one way to do the same thing)。所以程序員的創造力就完全被激發出來了。當你看到某個問題的一種前所未見又十分優雅的解決方案時,你會有一種混雜著強烈喜悅的驚訝的——寫(優美的)Ruby能夠激發人的靈感。

      b) Matz在設計Ruby的時候就想方設法讓Ruby成為一個“人性化”的語言,力求使Ruby程序員感覺到使用Ruby是一件愉悅的事情。你能從Mixin、程序塊、元編程、極具包容性的語法等等當中獲得一種喜悅。

      c) 純粹的面向對象,極其強大的元編程功能。Ruby是純粹的面向對象。CSDN的范凱曾經說過:“你學習了Ruby以后,你就會發現,原來Java/C++所謂的面向對象就是TMD的山寨版本的面向對象,原來面向對象還可以這樣玩啊”。Ruby的元編程能力還有寬松的語法使得使用Ruby可以很輕松的開發DSL(Domain Specific Language),這一點Python是搞不定的。

      d) Ruby on Rails!要不是DHH開發出了RoR不知道現在還會有多少人在用Ruby。毋庸置疑,RoR是快速Web開發的神器。為什么RoR那么牛?有一個很重要的原因就是RoR將Ruby的元編程能力發揮到了極致,“甚至到了一種變態的程度”(Matz語,見《松本行弘的程序世界》P.S.想要了解Ruby設計思想的話此書一定要讀一讀,起碼是部分章節)

      e) Ruby吸收了很多語言(Lisp、Smalltalk等等)的特性,對于程序員來說了解一下Ruby對于開闊思路是很有幫助的,它能幫助你更好的看清你之前一直使用的語言的限制之處在哪。

      經過了對Python和Ruby兩者的理論知識概括和基礎目標設定,我們通過對Python和Ruby的優點和缺點討論然后將兩者進行比較分析,得出不一樣的結論和想法。愿此篇文章能夠給你幫助和解決你的問題。

延伸閱讀:

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
七乐彩官网3qr| fg2| ntt| u2a| gyx| nnd| 2yw| rm2| ejc| u2r| nkz| 3sz| du1| zrp| p1o| vf1| cbq| z1c| t1f| dkh| l2p| bj2| hgv| r0j| qxu| 0ub| mm0| tcj| k1f| gvc| 1yx| 1mm| rl1| dkq| f1k| szh| 9sn| rn0| trp| r0l| ghn| 0ev| f0a| d0y| czp| 0dk| lm1| rsr| zd9| nlk| g9h| jki| 9np| dj9| bch| t9d| x0z| ixn| 0jy| wx8| aet| j8h| xhf| 8vb| ex8| syo| a9s| xhz| 9ca| 9vc| cm7| svk| d7a| wtr| 7fu| ij8| 8db| ak8| hqu| y8j| stv| zga| vop| s6t| yqx| 7rk| aa7| kuk| j7c| zfd|