久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

再談PHP,、Python與Ruby

 浩然正氣l 2014-06-27

一句話總結(jié)

簡單地總結(jié):

  • 假如你想幫他盡快找個活兒,賺到錢,,推薦PHP,。
  • 假如你想讓他成為一個高效工程師,推薦 Python,。 
  • 假如你想讓他愛上他的工作,,推薦 Ruby。

語言的選擇

編程語言非常重要,,不要認為他們都圖靈等價,,用起來都一樣。實際上,,好的語言,,帶給你的東西是超乎想像的。

下面是一些看法:

  1. 程序員的時間遠比機器的時間寶貴:選擇開發(fā)效率最高的語言吧,,不要過于在乎運行性能,,如果你開發(fā)不出東西,那么跑得多快也沒用,。
  2. 優(yōu)雅的抽象勝于簡單的堆砌: 這意味著你的代碼是最簡潔而又充滿設(shè)計感的,,面向?qū)ο螅菀椎拈]包,,一切都是表達式等等,,而最好的抽象是語言本身能夠分層,既能夠書寫語言的語言,,比如 DSL 能力強弱是個指標,。
  3. 才華橫溢的社區(qū)勝過有難度的招聘:這種語言一定要擁有一個活躍且才華橫溢的社區(qū),只要使用她的人,,就有一種自豪感和精英意識,,在社區(qū)里的每個人都自認為比別人強。即使,你不那么容易招聘到程序員,,但我們不都知道,,一個有才華的程序員勝過100個平庸之輩嘛?選用這種語言,,能保證團隊里一起編碼的每一個人,,都是高手。
  4. 也是最重要的,,樂趣勝過一切: 靈活,,好玩,永遠有新發(fā)現(xiàn)的魔術(shù)般的語言,,只有你想不到的,,沒有你做不到的,對一個真正的hacker來說,,這是選擇語言唯一的理由,,這也是 Perl 為什么能夠長期存活的原因,因為她是 hacker 為 hacker 創(chuàng)作的,。

如果能看完這些觀點,,相信你能猜出我的選擇了 :) 是的,Ruby是主流語言中我認為最出色的,,最高的開發(fā)效率,,最優(yōu)雅簡潔的抽象能力,最有才的社區(qū)(Github為中心),,和最大的樂趣,。 

做為一個程序員,是應(yīng)該去選取不同思路的語言去學(xué)習(xí)的,,而且當然要選擇最有代表性的語言,,在編程的世界里,主流的思路其實就兩種,,一是結(jié)構(gòu)化編程,,一是函數(shù)化編程,面向?qū)ο笾皇墙Y(jié)構(gòu)化編程進化的一個階段而已,,其他各種各樣的思路大多數(shù)是這兩個的分支,。

社區(qū)的創(chuàng)造力

選擇一門語言要看這個語言社區(qū)的氣質(zhì),以及你想用他做什么東西,。

Mac 上可以運行那么多種語言,有很多人用 git,。但卻只有 Ruby 的用戶開發(fā)出了 homebrew 這樣牛逼的包管理系統(tǒng),,善用了 github 的諸多特性,真正的把每一個用戶都變成了潛在的 repo 貢獻者。我相信這絕對不是巧合,。如果同樣的條件擺在面前,,你做出了一個全新的東西而別人沒有,說明了你的創(chuàng)造力比別人要高,。

作為 Python 的使用者,,我覺得 Ruby 語法的優(yōu)劣不太重要。但是從外部看 Ruby 社區(qū)近些年持續(xù)的向外輸出一些從技術(shù)到開發(fā)上的理念,,不斷的有大大小小的很酷的項目從 Ruby 社區(qū)中誕生的出來,。使得我覺得 Ruby 社區(qū)是一個很有創(chuàng)新氣質(zhì)的社區(qū)。因此如果你學(xué)編程是想做出一個很酷的東西,,那么我強烈建議你直接學(xué)習(xí) Ruby,。

從 Web 開發(fā)去比較

對于 Web 開發(fā),這三種語言都能勝任,,但是還是有不少區(qū)別:

  • Ruby 的 rails 框架確實是稱得上是快速開發(fā)的典范,,但是 Ruby 的語法過于靈活,有些時候?qū)ν粋€處理會有很多種不同的寫法,。
  • PHP 是老牌的網(wǎng)頁腳本語言,,相對其他兩門而言比較成熟。PHP 雖然快速成型,,但容易失控,,尤其項目稍大的時候。
  • 對于 Python 來說,,由于自身的簡約設(shè)計,,可能應(yīng)用的方面的更多,幾乎是可以涉及到IT的各個方面,,Web 只是它其中一個方面,,而且有比較成功的殺手級應(yīng)用,Youtube 就是用 Python 開發(fā)的,,服務(wù)器的各種原來用 shell 或者 perl 的腳本,,科學(xué)計算,游戲的腳本,,甚至在桌面客戶端上也能看到 Python 的佳作,,如 UliPad,對于初學(xué)者來說 Python 是個不錯的選擇,,在這三者中它的語法是最簡潔和清晰的,,適合初學(xué)者學(xué)習(xí)。

入門語言還是應(yīng)該選擇一個比較嚴謹?shù)?,像Java,Python那樣的語言比較合適,,從 PHP 語言不太容易學(xué)到 OO 的思想和設(shè)計模式之類的東西,,而這些對于一個優(yōu)秀的 PHP 程序員來說也是很必要的。這里不是黑 PHP,,每個語言都有自己的優(yōu)點,,比如 PHP 入門快,可以增加編程的信心,,明白編程那點事后,,可以觸類旁通的接觸其他語言。很多編程者就是從 PHP 入門的,。

在編程學(xué)習(xí)里有這么一個現(xiàn)象:直接推薦 Python 的人,,基本都沒深入學(xué)習(xí)過 Ruby。學(xué)過 Python 和 Ruby 的人,,基本都喜歡 Ruby,。

具體使用什么語言,不是唯一的,。根據(jù)場景是要分的,。一個人至少是需要學(xué)習(xí)3種語言的:

  • 一種是工作語言,比如C++,,Java,,PHP,這三種語言,,是互聯(lián)網(wǎng)的萬能藥,,只要會了,工作是永遠都不愁的,,大型公司一般都會使用,,用來開發(fā)一些大型項目。
  • 一種是自己使用的語言,,比如 Python,,Ruby,當然,,我也推薦 Ruby,。我也用過 python ,后來因為工作需要,,忍痛放棄了 Python,,最后,竟然深深喜歡上 Ruby 了,。然后就不再回頭了,,對于個人使用來說,是要非常注重開發(fā)效能的,,一門語言,,至少能用10年,,如果自己選擇的語言,可以在開發(fā)效能上超越其他語言十分之一,,那么在十年內(nèi)這種收益是非常大的。
  • 還有一門是新語言使用,,不必深入,,但是一定要了解,這有助于比較不同語言的不足,,才不至于成為井底之蛙,。比如 Nodejs, Scale等。

關(guān)于 Ruby

我覺得直接學(xué) Ruby 也是不錯的選擇,。

  1. 本來 rails 框架就自帶了 server,,WEBrick??粗?Log 做開發(fā)效率非常高,。
  2. 如果要部署的話,用 passenger 也是絕對方便,。
  3. Views 層的模板系統(tǒng),,ERB 應(yīng)該比 Python 的各種要來得美,而且更加簡單,。之前用過 Django,,覺得太重了。
  4. Rails 可以讓你不斷的驚訝程序可以這樣寫的啊,,我第一次看到有 7.days.ago 的時候驚掉了,。
  5. Rails強調(diào)一種DSL,一來符合人們的語言習(xí)慣,、二來我覺得是一種編程語言的顛覆,,我們并不是在用某個特定的語言(比如Ruby)來實現(xiàn)一個功能(就如同是用C還是用Java來寫一個編譯器),而是我可以在這些語言的基礎(chǔ)上定義一種新的語言(類似于lex,,yacc這樣的詞法語法生成器),。看看routes.rb的設(shè)置吧,,能有多么驚訝,,這是程序么,簡直就是詩,。美不只是在于內(nèi)容,,同樣在于形式。

Ruby 或者說 Rails 的缺點或許就是學(xué)習(xí)的曲線太陡,,我之前有過 MVC 的經(jīng)驗,,上手RoR 還是花了三周的時間,,或許也是自己接受能力不強吧,但更確切的問題應(yīng)該在于 Rails 的慣用法太多:當然,,我在用 ActiveRecord 拿數(shù)據(jù)的時候,,可以寫 find_by_sql("blablabla"),但是細查 Rails 的文檔,,他是提供類似于 Joins.Group.Select 等等的方法的,,姑且不論效率是不是真的會快點,少寫一點 sql 在 .rb 的文件里面不是會更美一些么,。再到后來,,偶然又發(fā)現(xiàn)有 metawhere 這種東西,是不是又要忍痛拋棄既往學(xué)到的那一堆 works but not elegant 的東西,,義無反顧的投身到 metawhere 的學(xué)習(xí)中,。

當然,如果不追求完美,,上手也沒有這么恐怖,。

關(guān)于 Python

python的優(yōu)勢很多,比如:

  1. 語法簡潔,,無需編譯,。Python 語法簡潔高效,一句話“人生苦短,,我用 Python”啥都說明了,,高效是 Python 的特點。
  2. 強大的數(shù)據(jù)結(jié)構(gòu),。默認安裝的Python開發(fā)環(huán)境已經(jīng)附帶了很多高級數(shù)據(jù)類型,,如列表、元組,、字典,、集合、隊列等,,無需進一步編程就可以使用這些數(shù)據(jù)類型的操作,。使用這些數(shù)據(jù)類型使得實現(xiàn)抽象的數(shù)學(xué)概念非常簡單。
  3. 強制縮進,,讓代碼自然顯得有條理,。
  4. 插件齊全,可以完成絕大部分的程序設(shè)計任務(wù),。

當然還很多,,具體還可以去看看 《Python的設(shè)計哲學(xué)》 這個 chapter。

小結(jié)

  • 沒有最好的語言,,只有最合適的語言,。
  • 沒有糟糕的語言,,只有糟糕的程序員。
  • 沒有一種語言是萬能的,,只會一種語言是萬萬不能的,。

用什么語言不重要,最重要的是效率:開發(fā)效率和執(zhí)行效率,。PHP 語法很傻,,一點都不炫,但凡是學(xué)過C,、JS、AS等等語言的,,很容易上手,,因為語法上有很多重合的地方。很多人看不起 PHP,,說 PHP 太簡單的人,,往往是因為對 PHP 本身不夠深入了解,其實 PHP 里面的東西一般人用到的很少,,5.3 以上的特性也慢慢讓這種語言生動起來,,你越是深入,就越能發(fā)現(xiàn)它的強大和優(yōu)勢,。

這里僅僅列出 PHP,,Python 與 Ruby 的一些情況,讓讀者更好地挑選學(xué)習(xí)的語言,。

語言沒優(yōu)劣之分,,Just follow your passion.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多