Web後台語言的選擇?
後台語言比較多。在選擇方面 PHP vs. Node.js,想請教一下建議。Node有崛起之勢,就像以前一樣,比較少人涉足程序員這個職業,所以敲代碼敲代碼。
感覺PHP現在仍處於上升趨勢,在天朝PHP第一估計10年內沒有問題,更何況PHP要7了
寫過7年PHP,5年Javascript,讓我從頭選,我選Javascript。
原因如下:
PHP到目前仍然只是WEB後台語言,Javascript已經是全棧語言(WEB,桌面,移動,嵌入式,資料庫等都有重要應用),如果編程語言是一種投資,Javascript的長期回報更高。
PHP在實際編程環境里主要仍然是一種OO語言,Javascript實際場景里的多範式應用隨處可見(OOP,Functional,Event Driven,Declarative Programming等等),學習Javascript能打開你的思維。
WEB開發無可避免的是全棧開發,當你需要做前端的事的時候,Javascript是唯一的目標語言。
Javascript的工具鏈比PHP的靈活,迭代更快,社區支持更好(PHP的核心社區小很多);再者,PHP能做的,還沒發現Javascript在V8上做不了的。題主想自己玩玩還是拿來謀生?拿來玩玩就在這裡繼續看答案。想找工作去拉勾看看自然有答案了。學會一門優秀的技術然後沒有沒有offer也是很苦惱的。
要麼有社區,要麼有爹。
在有爹方面,Java、C#、Golang比較好。Java有Oracle/IBM等廠商支持,C#有Microsoft支持,Golang有Google支持,都是有實力的公司。PHP勉強可以算有爹,畢竟有Zend/Facebook/Sina等公司支持和使用。Node.js這種東西就算了吧。
在有社區方面,Java、C#、PHP、Python比較好,Golang發展的速度也比較快。中小項目。首推Rails。
PHP代碼醜陋,Node.js玩玩可以,真做項目頭疼。
唯有Rails,寫Web項目如行雲流水。擁有中小企業快速起步所必須的開發效率。ROR也是國外初創企業的首選。例如:twitter airbnb 500px kickstater square hulu producthunter等等 各種強大的GEM,比如登錄管理Devise、圖片上傳管理Papaerclip、角色許可權管理cancan等等。令一般編程語言3天5天才能搞定的功能,在Rails裡面幾分鐘就搞定了。一個用PHP和PYTHON需要寫到絕望的項目,用Rails可能一個月就搞定了。看圖。Github上的語言排行,JavaScript還是比Php要火一點點的。
php不適合,推薦lua,用openresty
雖然都是高級語言,但lua可以跟nginx無縫結合,lua是跑在nginx進程中的,這樣就很有意思了。
我寫了一個簡單的hello world,用ngx_lua跟php_fpm測試,lua每秒1萬次,php每秒55次。為什麼會如此懸殊?1,php通過php-fpm跟nginx實現業務功能,之間要通過網路;而lua是內嵌的,嵌入nginx內部,實現業務功能跟c語言掉個函數差不多。2,php每次執行都要編譯。lua只編譯一次,就駐內存中了。這個不僅僅是編譯的開銷,腳本文件本身從硬碟讀取就是耗時的操作。當然php有一些優化手段,但無論怎麼優化,都沒有隻載入一次速度快。php每次執行都是這個速度,而lua第一次執行稍慢,以後就快了。3,php是同步的,長時間的操作很容易耗盡連接數。lua是非同步的。php調用mysql,文件讀取等,用api調用,這個是同步操作。而lua是通過nginx的子請求實現的,而nginx本身是非同步的。不僅僅是mysql這些,業務本身的一些操作也可以分為幾個子請求完成。而nginx的子請求非常快,損耗忽略不計,業務代碼可以通過劃分子請求來實現業務耦合,降低耦合度有很多的幫助,每個子系統也相對簡單很多。這個問題和下面的回復槽點有些讓人一時間處理不了。。
說寫php啥也不懂的人,,估計用PHP的fb已經哭暈了。。
題主問問題能先說清楚背景么,學習?項目?興趣?找工作?
程序員比較少。。我咋感覺現在10個人裡面有5個是程序員。。就這兩種語言比較
php
- 東西多的話,尤其mvc需要有一種熟練的框架,CodeIgniter, Yii, Zend 等等。。- 上手簡單,可以直接在頁面中通過echo之類的函數載入動態值,做個mvp之類的東西出活快- 社區強大,各種問題都有現成的解node
-比較火- 非同步很強大,語法和js一樣- 但個人感覺其實易用性易讀性程度不如php做程序員,這種選什麼語言之類的問題,百度,谷歌一下你就知道。只用過js,表示賊拉拉的好用~~~
看答案沒用,每個人都會推薦他心中的神器,但是實際上帶有太強的主觀性能,這也是無法避免的,因為不存在精通所有語言的人,俺感覺cpp js這四門語言夠了。
兩層的用python,node,ruby,三層的用java,嗯,java。另外如果要弄rpc之類的,我推薦c++。
看到某公司招php開發工程師,要求有一項就是能用nodejs進行開發。程序員不要畏懼嘗試,多學多接觸~
題主要找工作的話,還是PHP吧,別聽忽悠去學小眾技術。
PHP是世界上最好的語言
PHP 是一個不懂編譯原理和語言特性的人設計的,他只是把功能揉在一塊,把你想要的實現了.
就我目前的淺顯的使用感想來看:
Nodejs有前途,很火,Node本身在不斷發展,日趨完善。
Node從非同步的思想起身,是非常有遠見的。性能非常厲害,我測試請求IO一個100中文字的markdown文件,1000並發,10000請求共用了3s,當然測試可能不是那麼考慮周到。
單單用Node,簡略的測試,首頁模版渲染,靜態文件,一共20s。
用Nginx代理靜態文件,23s。當然測試可能不是那麼合理,但也說明了Node性能非常好。缺點,目前適合中小型項目,代碼多了由於JS本身不好調試,加上非同步回調,會非常難測試,Bug難找。JS只有函數模擬的面向對象,當然ECMAS在發展,但是目前JS還是無法比擬其他OOP語言。這是目前Node最大的不足之處。推薦閱讀:
※什麼開發語言可以替代PHP?
※微軟.Net架構現在被不少人吐槽「老掉牙」,相比其它技術(如php)它是否真的失去優勢?
※大部分已經幹了兩三年的程序員水平是怎樣的?
※如何對程序員績效考核?
※同為動態語言,python的性能為何只有PHP的五分之一?