ruby和python該學那一個?

來源:互聯網
上載者:User

回複內容:

先說觀點:你自己要先想明白學這些script語言的目標是什麼,目標不同答案也不同。

講一下我個人的感受(perl ruby python)經曆,供你參考:
0.) 在學校時,對 perl ruby python 都走馬觀花的瞭解了一下,初步印象是
perl 就是一堆雜草,印象像個建築工地上的村姑(沒歧視含義,只談形象)
python 印象就是個呆板凝滯的工科眼鏡女
ruby感覺就像一個才貌雙全校花和熱情似火的hot girl的結合體

1.)畢業第一份工作主要做backend的相關工作,主要是C++ 也用一些Java。
自己為了把一些手動工作進行自動化,寫了一些指令碼,開始是bash,
  後來發bash稍微複雜點超級坑爹,為此還玩過bashdb,後來實在受不了
決定換個指令碼,基於 0 提到的印象,決定以ruby作為script的首選,工作中邊學邊用,
ruby用下來感覺是非常high。

2.)後來參與了一個產品線的整合,跨部門合作,涉及多個BU,接觸各種Unix/Linux環境。
很多時候這些環境都是既有產品的標準,是不準許去安裝其他軟體的。
多數都沒有安裝ruby,shell也都是不同的,python有的有有的沒有。
但是但是,perl每個機子上都有!!甚至以硬體為主的BU使用的嵌入式Linux中也帶了perl。
為了方便做一些輔助工作,無奈只能學了一陣子perl。
當時的目標就是:當一個更好的shell script用。
說到這裡推薦一本書:Manning: Minimal Perl 非常好
有時候直接在shell用管道吧command結合perl結合在一塊形成一個命令列串的效果非常好。
如果是把perl當一個更好的shell script用,寫那種30~50行臨時指令碼的話,perl真的非常不錯。

3.)隨著工作的調整,以及自己接觸範圍的不斷擴大,發現非常的開來源程式主要支援的指令碼
都是python:vim,gdb,protocol buffer, opencv,rabbitmq(印象中rabbitmq 原始碼編譯過程中先用python生產erlang的介面檔案),連C++最執著的boost社區提供的指令碼介面也是python的。總之,python被大多數軟體作為支援script時的首選。逐漸切身的感覺python是script的最主流的廣泛選擇。

4. 一直做後端開發,想玩玩web,接觸了php,rails一路下來發現都不喜歡,感覺flask最對口味。
後來使用ipython後,感覺python真方便。但是仍然對ruby有一些念念不忘。然而,當我接觸到資料處理以後,接觸到 numpy,scipy,scikit-learn,scikit-image,ipython-notebook ,cython等等這些工具以後,我感覺徹底放下ruby了。如果涉及資料處理的話,以目前python在資料處理方面的優勢造成的馬太效應,ruby恐怕很難有機會追趕python了。以後會把python作為主要指令碼語言,準備仔細學學。

以上是大概整個折騰過程。回到問題本身,你自己要先想明白目標是什麼。

如果就是當幾十行的小指令碼處理臨時輔助任務用用,平時也和命令列結合直接在shell中敲,那麼perl也不錯,ruby好像也可以. 搜一下one line perl 或者 one line ruby。

如果是要寫一定指令碼處理任務,而且這個指令碼不是臨時性的,環境也能控制,喜歡很酷的coding感覺,喜歡玩玩元編程之類的那麼肯定選擇ruby。

除此以外就選擇python吧,python就是汪洋大海 :)
這是今年的一個演講,演講者強調了ruby的創造性,也就是更靈活。

python學習難度小一些,不過如果有老師的話,ruby也不難,自學要難一些。
ruby的文法多,不過常用的也不多,我覺得會有一些學習困擾,因為初學者不知道重點在哪裡。

不妨花一周時間兩個都學三天,畢竟這個口味只有自己知道吧。ruby創造性更強,也就是更靈活。

python學習難度小一些,不過如果有老師的話,ruby也不難,自學要難一些。

如果周圍沒有熟人大牛,可以到培訓機構去學習ruby,

作為ruby工程師,我依然推薦學ruby,這是一個非常有創造性,非常自由的程式設計語言,寫起來更自在更開心一些,且更裝B。python做一件事情,可能只有一兩條路且大多數人寫出來的代碼都差不多。
ruby做一件事情,完全取決於你的腦洞大小。
--------
ruby在文法設計上規避了python很多不能說失敗但是很不爽的設計。
比如python是靠縮排來安排代碼塊的,在嵌套 if 的複雜語句下很容易搞出bug。還有類屬性是無法完全對外隱藏的,容易引發安全性問題,可能造成別人不小心修改你了屬性導致BUG,你還花了半天檢查自己的代碼,這事我碰到了好幾次。
再就是ruby代碼可以寫的很裝B,很有一種極客感神秘感,雖然這事不一定在任何情況下都是好事。最好都學。必須要選的話。選ruby哪個給你的第一印象好就學哪個,兩種語言的差異沒你想象的那麼大。營運or做gui就python
web開發就ruby個人認為,Ruby在web開放方面很強大,可以用Rails架構快速上手,後期還可以用JRuby撐得起效能。Python在我先前的工作中只起到了協助工具輔助的作用,不過現在我也可以用Ruby來做一些輔助的事情,
另外,Ruby是純物件導向的,其中也包含了FP的一些重要元素,以及大量令人眼前一亮的文法糖。利用這些特性,Ruby能協助你更專註的解決實際問題,而不再去糾結語言細節。

最後,我選擇Ruby,一方面出於愛好,另一方面是工作需要。你可以抽空感受一下兩種語言,然後再做決定。可以都去學習一下,然後自己決定側重學哪個。
你在這問沒啥用, Rubyist當然是推薦你學Ruby了, Pythoner也當然是推薦你學Python了, 問了和沒問題有啥區別。都學
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.