ruby和python該學那一個?
都學
這是今年的一個演講,演講者強調了ruby的創造性,也就是更靈活。
python學習難度小一些,不過如果有老師的話,ruby也不難,自學要難一些。
ruby的語法多,不過常用的也不多,我覺得會有一些學習困擾,因為初學者不知道重點在哪裡。不妨花一周時間兩個都學三天,畢竟這個口味只有自己知道吧。可以都去學習一下,然後自己決定側重學哪個。你在這問沒啥用, Rubyist當然是推薦你學Ruby了, Pythoner也當然是推薦你學Python了, 問了和沒問題有啥區別。
先說觀點:你自己要先想明白學這些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就是汪洋大海運維or做gui就pythonweb開發就ruby
python做一件事情,可能只有一兩條路且大多數人寫出來的代碼都差不多。ruby做一件事情,完全取決於你的腦洞大小。--------ruby在語法設計上規避了python很多不能說失敗但是很不爽的設計。比如python是靠縮進來安排代碼塊的,在嵌套 if 的複雜語句下很容易搞出bug。還有類屬性是無法完全對外隱藏的,容易引發安全性問題,可能造成別人不小心修改你了屬性導致BUG,你還花了半天檢查自己的代碼,這事我碰到了好幾次。
再就是ruby代碼可以寫的很裝B,很有一種極客感神秘感,雖然這事不一定在任何情況下都是好事。
Ruby照理來講應該更讓程序員享受工作。但就我個人二把刀的經歷而言,這兩種語言用起來差不多。扔硬幣吧。
哪個給你的第一印象好就學哪個,兩種語言的差異沒你想像的那麼大。
你在糾結用什麼語言是因為你一個都不愛。放棄吧。用clojure!
個人認為,Ruby在web開放方面很強大,可以用Rails框架快速上手,後期還可以用JRuby撐得起性能。Python在我先前的工作中只起到了輔助工具的作用,不過現在我也可以用Ruby來做一些輔助的事情,
另外,Ruby是純面向對象的,其中也包含了FP的一些重要元素,以及大量令人眼前一亮的語法糖。利用這些特性,Ruby能幫助你更專註的解決實際問題,而不再去糾結語言細節。最後,我選擇Ruby,一方面出於愛好,另一方面是工作需要。你可以抽空感受一下兩種語言,然後再做決定。為了自己寫的爽: ruby
為了好找工作: python
有代碼潔癖: ruby有反日癖: pythonruby創造性更強,也就是更靈活。
python學習難度小一些,不過如果有老師的話,ruby也不難,自學要難一些。
如果周圍沒有熟人大牛,可以到培訓機構去學習ruby,
作為ruby工程師,我依然推薦學ruby,這是一個非常有創造性,非常自由的編程語言,寫起來更自在更開心一些,且更裝B。看你幹什麼了,如果只是為了寫一些小工具,那python就挺好,語法少一些,簡潔易懂,不用學太多東西,就能開搞了話說ruby語法太魔幻了,要是喜歡這些特性的人會很推崇,我反正是懶得學,我有選擇強迫證,要是實現一個東西有兩個方法,我指定會去搜哪個方法好
簡單幾句話概括,ruby語言可以最直接反應程序員的能力,而Python不行
Python寫出來的大同小異,很多人會不尊重Python之禪去寫嵌套而難讀的代碼,但是py絕對不會限制使用者的思維,想寫什麼就可以寫出來。ruby中,不光可讀性高,代碼的信息量大的恐怖,還擁有性能外最強大的庫。ruby代碼是程序員的腦洞堆砌的。rails框架的信息量是大部分程序完全無法比擬的。當熟悉精通元編程的時候,ruby的強大完全是py望塵莫及的。(說白了我是ruby廚。但這段話比較客觀
學py圖方便,學rb圖能力。看看你喜歡哪一類人生苦短,我用Python。
python 玩了一年多寫了各種爬蟲flask 是時候玩玩ruby了 啊哈哈哈
最好都學。必須要選的話。選ruby
都可以,兩者在做web開發方面都有很多成熟的框架。不過個人建議,可以去看看Ruby的Rails框架。Rails是很多web端開發精髓思想的集大成者。雖然現在別的語言也都有了類似於Rails的框架,但是我覺得作為先驅者和引導者,Rails是有很大的學習意義的。
我認為兩個都可以學。
這兩種語言都不乏優秀的項目; 使用的場景也差不多。通常是可以互換的。他們之間的差別是編程語言「品味」之間的差別,都學了才好體驗。學習順序看具體情況。
如果很在意學習速度的話就先學Python。因為上手容易。
如何有的是時間就可以直接學習 Ruby。它有更高級的語言特徵,所以會難一點。看工作需求
python
推薦閱讀:
※python中的協程(yield)內部是怎麼實現的?python和lua在yield的實現原理上有什麼區別?
※如何向不懂 Python 的人介紹 Python?
※Mac下搞 Python 開發用什麼 IDE?