{eval=Array;=+count(Array);}
大型互聯網平臺的后端實現往往是一個比較復雜的過程,很多平臺會綜合使用多種不同的編程語言,以便于為用戶提供速度更快,安全程度和穩定程度更高的使用體驗。
從技術實現的層面來看,目前的互聯網平臺更多是基于三大塊技術打造的,其一是分布式計算;其二是分布式存儲;其三是資源調度管理,這三塊技術其實也是目前大數據和云計算技術的基礎。
如果從技術方案的穩定性和擴展性兩方面來考慮,更多的互聯網平臺會選擇采用Java語言來實現,一方面原因是Java語言的自身性能比較穩定,另一方面原因是Java的生態體系比較健全,而且Java語言目前的成功案例也比較多,開發風險會大大降低。相對于具體應用層的實現來說,在平臺(容器)搭建的過程中,更看重性能和擴展性,而不會特別注重開發周期的長短和調整的便利性,因此Java語言無疑是比較適合的選擇。當然,平臺搭建的過程中也會調用由C語言或C++語言構建的資源管理模塊。
除了Java語言之外,PHP和Python也是比較常見的選擇。采用PHP進行平臺開發往往會有更快的開發速度,但是后期的拓展,尤其是性能的提升要更多依賴于云計算平臺的支撐,但是由于PHP具有天然熱部署的屬性,所以PHP在后端開發領域廣受歡迎。另外,Python也是后端開發比較常見的編程語言,雖然在性能上相比Java會有一定的差距,但是Python語言自身的資源管理能力和擴展能力還是比較強的。
我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關于互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有互聯網、大數據、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區留言!
目前一般公司的后臺用的開發語言大概有以下幾種:java,python,php,asp.net,c++,rubyon rails 等等。
java優點:性能好,適合大中項目,跨平臺,安全性高,穩定可靠,運行效率高(尤其是JIT的出現之后差距更大了),不容易犯錯(強類型、預編譯、必須攔截異常等等),能有效的提高復用度,提升性能和吞吐能力,能規避安全問題。
缺點:開發復雜,開發和發布的效率相對較低,維護成本高,開發人員費用高
python優點:簡單易學,開發快,語言簡潔,易于維護,開源,可移植,可擴展
缺點: 速度慢,格式強制,容易犯錯
php:優點:靈活,上手快,易修改,發布快捷,環境好部署
缺點:容易犯錯,行效率不高,缺乏全局緩存
ruby on rails優點:快速開發,使用者多,開發控件非常豐富
缺點:性能差,第三方包少asp.net
優點:跨語言, 中小型項目上性能好,開發快,適合windows平臺,維護成本低
缺點:代碼邏輯混亂,難于管理,代碼的可重用性差
國內的大公司偏業務的一般都用 Java 做后臺開發比如淘寶,網易,美團等. Python國內一般是一些體量不是這么大的公司使用,例如豆瓣,知乎等。其實,各種語言都有優缺點,沒有哪一種是絕對好的。各公司也不是單單只使用一種后臺語言,都是結合起來開發的。
上述的各種語言的優缺點也是相對的,并不是說明哪種語言多么好多么不好,而且,技術是發展的。不同公司用不同后臺開發語言也有各自的原因。比如,要看需求是重展現還是重業務邏輯,重展現就用php等,重業務邏輯就用python等,也有原因是由于技術積累,比如ucloud一直用c++。
看什么應用了,比如我做游戲行業原來用的最多的就是c,c++,lua。現在也有用go,nodejs,python的,如果是網站之類的基本就是php,java,c#。
大型平臺混合語言開發的幾率很高;比如Java, Python這些是機率比較高的,尤其是中國大陸的企業使用Java開發是特別高的,如果國外的,比如美國公司使用Python的機率是比較高的。比較大型的當然要考慮高可用性高并發灰度發布,現在大多數的話都是用Java開發的。再比如說要用到的一些消息隊列啊,解決的方案,其實多數都是采用Java或者是混合開發平臺;C#的也有,但是不多。比如還有PHP用的也比較多,但是PHP的話針對的通常都是想快速上馬。近年的go也相當不錯,用的公司不少。
另外,技術選型的生態必須得考慮,哪個生態比較相對來說比較完整,這個就是做一個開發企業的話,必須得考慮了,因為后期會有很多接踵而來的事情要去處理,比如Java的生態相對來是非常完整的,Python也是非常完整的。 因為這兩種語言的開源力度都非常大,比如在github上就比較給力,哪怕是遇到困難或者問題,也會很容易找到相對應的解決方案。
本人理工男愛金融愛生活! 從事軟件(互聯網)開發10多年,希望可以和大家分享自己的職業經歷!喜歡這一方面的話請關注我,會有不錯的收獲了哦!
9
回答10
回答5
回答6
回答10
回答2
回答0
回答10
回答10
回答0
回答