做後臺是選擇Java 、Go ,還是 PHP?
我們都知道,大部分有過4年以上的工作經驗的前端最起碼接觸過後臺的,不管是java,php,python或者說.net,很多人就會去擴充套件第二第三語言 了 ,你可以去問問他們,基本都有過了解,但這個瞭解不是完全會去寫,而且瞭解一個過程。
但是對於所有學前端的小夥伴,我建議的是一定要學習和了解一門後臺語言。
可以選擇Go
對於一個研發團隊來說,專案成敗的關鍵因素是:成本、質量和時間!
1、人力資源的成本人力資源是研發團隊最重要的資源,也是唯一的資源。其成本不僅僅是團隊要支付的薪資代價。也包括獲得資源的難易程度,例如招聘和培訓的速度。以及維持資源,也就是保持員工滿意度或者說士氣的代價,也就是管理成本。(上述成本不僅指錢,時間也是非常昂貴的成本)
Golang有一系列特點,使它既容易上手,又易於維護。Golang可以讓初階和中階工程師,經過少許培訓,就寫出相當不錯的程式碼。直接點說,一票1-2年經驗少許靈性的年輕工程師轉Golang,只要少許指導,很快就可以寫出高併發高負載能力生產級別的程式碼,而且質量相當有保證。而同樣的工程,如果用C++或java等語言,則需要至少3-5年經驗的工程師來完成,同時質量還是要讓人擔心。
那麼,對於團隊特別是成長型的或創業團隊來說,現在有Golang這樣一種語言,可以讓大量初階和中級工程師承擔主要開發工作,還能保證相當優秀的結果,從資金成本和時間成本控制的角度,簡直就是美夢成真。
2、專案研發的效率說到高併發高負載,讓我不能不想起nginx。nginx在2004年從web server領域橫空出世,所向披靡。精巧嚴謹易於維護和擴充套件的程式碼結構,也是教科書級別的。
但是要知道,一個用C寫出一個nginx,是需要世界上最優秀的工程師的。這樣的工程師,不僅團隊裡面沒有,連遇到一個都很難。可現在,我再告訴你,一個使用Golang的中級工程師,就已經可以寫出效能與nginx相近的高併發高負載應用。而且不僅效能相近,而且需要的程式碼行數和開發時間也短很多。
可以 選擇Java
Java是元老級別的語言了,Java能做很多事情:寫網站後臺,寫安卓程式,寫嵌入式系統。至於做後臺有以下優缺點:
優點:效能好,適合大中專案,跨平臺,安全性高,穩定可靠,執行效率高(尤其是JIT的出現之後差距更大了),不容易犯錯(強型別、預編譯、必須攔截異常等等),能有效的提高複用度,提升效能和吞吐能力,能規避安全問題。
缺點:開發複雜,開發和釋出的效率相對較低,維護成本高,開發人員費用高
選擇Python
因為python很靈活,一定程度上函式也可以傳參和注入,所以程式碼的靈活性要大的多,而Java在Java 8之前是無法做到函式傳參的,所以這種情況下,Java開發者只能寫大量的匿名類去注入程式碼塊(這點相比,還是ruby塊程式碼注入更牛逼,不是嗎)。python自帶了函式的curry化以及遲滯運算方式,以及閉包語法更容易實現,所以在一定層面上python還是比java難掌控的。當然python最好的還是duck typing屬性,作為動態語言專有的特性,python可以讓物件擺脫靜態語言正規化的約束,隨意的給程式打補丁,所以程式擴充套件性更好。同時,作為解釋型語言,伺服器熱部署這塊,python肯定有優勢,一旦程式出問題,直接覆蓋原有的原始檔就行,而Java 的伺服器熱部署基於classloader的切換,其中像tomcat這種伺服器的熱部署(也就是reload功能)其實很容易造成JVM heap爆掉,且完全依賴伺服器後臺執行緒對各程式碼檔案的時間戳掃描,所以熱部署這塊python優於java。
優點:
-
1、 Python作為動態語言更適合初學程式設計者。Python可以讓初學者把精力集中在程式設計物件和思維方法上,而不用去擔心語法、型別等等外在因素。而Python清晰簡潔的語法也使得它除錯起來比Java簡單的多。至於哪個更“優雅”純屬個人喜好,但對於初學程式設計的人Python更直觀應該沒什麼異議。
-
2、Python有一些Java沒有的強大的架構 2.1. Advanced Python Constructs ,可以表達非常複雜的Logic
-
3、 Python有非常強大的支援非同步的框架如 Eventlet Networking Library ,而據我所知Java要實現這些功能要麻煩的多。也因此Python適合一些可擴充套件的後臺應用。(但除此以外Python可擴充套件性是不如Java的)
-
4、Python作為指令碼語言,更適合開發小的應用,而且極其適合在應用發展初期時用來做原型
缺點:
由於Python的優點也無可避免會有犧牲———由於是動態語言,比Java還慢。你可以想象一下編譯器對於沒有typing的變數,需要一個一個check具體type所耗得時間。而Java相比起C++等等本來就不快,可想而知更慢的效果… 但很多人覺得Python code更短小精悍,所以實際跑起來不見得比Java耗時。
可以 選擇php
1)、網站開拓是PHP說話最擅長的,沒有任何說話可以與其對抗。
PHP的快速,開拓成本低,週期短,前期保護費用低,開源產物豐盛,PHP已經是國際大部門Web項手段首選,以至良多公司從其它說話(如ASP,JAVA)轉到了PHP。不只國際的騰訊、百度、淘寶、京東、點評網、糯米網,以至國外的大型網站例如facebook、youtobe、google也需求用PHP來停止開拓。毫無疑問,PHP已成為各IT公司首選的網際網路程式設計說話,被譽為WEB開拓首選手藝,所以此刻若是做網站,毫無疑問企業就用PHP。在“網際網路+”的大期間中,企業幾近都在用php說話停止WEB開拓!
2)、PHP可以對App停止資料傳輸,在移動網際網路期間照舊有廣發的用武之地。
今朝最經常使用的手機APP開拓,主如果用iOS和Andriod兩大類。但手機App按照其適用性,需求快速開拓,複雜便利,這與PHP的開拓肉體不謀而合。同時PHP完善支撐RESTFULL法則,更適合手機App介面的挪用標準,故經常使用來作為手機App資料傳輸物件。這也意味著,PHP在手機網際網路期間一樣有著遍及用武之地!
3)、Hybrid App的出世,完成PHP法度圭表標準員也可以開拓手機App!
Hybrid App前臺採取同化式開拓,其後端採取PHP開拓即可。這類開拓方式可以不用學Object-c,也不用學Android,也就意味著PHP法度圭表標準員只需把握前端常識(Html5、Css3、Javascript)也可以開拓手機APP。該種編制開拓出來的APP客戶端,不只其後果與原生安卓和iOS一樣,而且還可以相容安卓手機和iOS手機,大大著落移動端開拓成本,深受企業接待。Hybrid App的出世,為PHP說話在“網際網路+”期間注入了壯大性命力。
總結
當然還有很多語言後臺開發,如:C、rails、asp.net等。討論哪個語言更好,就像在爭論姚明和劉翔誰是更優秀的運動員。因為各自的座標象限不同,常常會陷入一個難有結論怪圈。 如果你是前端程式設計師,想學習後臺語言,建議結合自己的專案和公司多去思考一下,前提是學以致用,選擇合適的才是重要的。
原文釋出時間為:2018-09-28
本文作者:yuer