c語言和java對於網絡編程技術而言是通用的嗎?

道德專判


c語言的場景是偏硬件,跨硬件平臺,嵌入式,資源敏感的場景等。

操作系統,交換機,防火牆,基站,光貓等等一些傳統IT CT廠家喜歡用的。

現在互聯網用java c++ golang甚至Python node.js的都多。c語言語法本身太簡單,操作原生套接字和原始報文,要做點什麼高級點的事情都要自己花很大經歷造輪子,要不就用別人開源的東西。

一般公司能hold嗎,光字符編碼,內存洩露,踩內存,這些經常出現的問題就玩死一票小公司了,還別說極度依賴各種第三方庫了,還有c語言是極度不安全的編程語言,因為極度靈活,所有安全性基本上全靠程序員自身的約束。

還有人說效率問題,開發效率也是效率。

阿里巴巴用大量java做後端,騰訊百度大量用c++做後端。gmail用java,知乎用Python。

c的性能強是強在計算,網絡這種io密集型,語言間的計算性能差異根本就不是很重要。

說完了企業方面,再說個人方面,用c語言寫個最簡單的echo服務器,因為c語言沒有網絡功能,win平臺和linux mac都需要使用對應平臺的api從socket層面開始寫,select epoll kqueue都需要自己實現,而且你沒有大公司那一套編程規範,內存安全函數,已經內存調試手段,出問題都很難找。這些東西在其他原生支持網絡庫的語言都是一句話的事情。要是自己寫著玩,用c寫就是找罪受,而且業界也用得不多。為了找工作也不受待見。每個語言擅長面是不一樣的,拿java寫軟交換,一樣蛋疼。

如何你想學習網絡,學習報文底層的收發,用c沒問題,因為高級語言屏蔽了細節,但並不說這是適合。


分享到:


相關文章: