C++,Java,Python,Ruby,Go哪個好?我們選哪個?

我們在開始想學一門計算機開發語言的時候,相信都會有過這樣的經歷:學那門語言好呢?那麼多語言。C/C++,Java,Python,PHP,Ruby,Go等等,還有很多。但是你每門都不會,自己又沒辦法比較,自能網上去搜。網上各種開發語言有貶也有贊,你又拿不定主意了。現在,我就簡單講一下這些語言的特點:

C/C++

編程語言:C/C++,Java,Python,Ruby,Go哪個好?我們選哪個?

C/C++

現在寫C/C++的好像少了很多,它們主要寫一些比較底層的東西,什麼是比較底層的東西呢?就比如:

  1. 操作系統的開發,就像我們使用的windows/linux/Android等等;
  2. 驅動的開發,就像洗衣機、空調裡面的單片機控制程序之類的;
  3. C++是C的升級版,C++其實就是C的基礎上擴展了許多包進去,開發相對來說比C要簡快一點,C++比C要火一點。大部分招聘的C/C++都處於遊戲、引擎之類的開發上了。

C/C++相對於PHP、python、Ruby而言偏於底層,好多東西——庫方法模塊都需要自己寫,所以這兩個語言相對來講就比較複雜。

Java

編程語言:C/C++,Java,Python,Ruby,Go哪個好?我們選哪個?

JAVA

Java誕生於90年代初,因為那時候一出來便有跨平臺的特性。C/C++都不是跨平臺的,就比如說在windows上開發的東西,想移植到linux上,是一件非常麻煩的事情,你就要開發兩套一樣的軟件,甚至更多。Java就避免了這樣的事情,它有個自己的虛擬機,你只要在每個平臺上安裝了它的虛擬機,你在windows或linux上開發的代碼切換到另一個平臺上,基本上不用怎麼改動就可以跑起來。所以他的跨平臺性特別好,這樣的特性讓它火了起來。

現在它的這個特性,已經沒有特別的優勢了,只是因為佔領了早期的市場,企業中使用最廣泛。很多企業的早期軟件都是它開發的,逐年使用擴展下來,已經不可能再用其它的編程語言再寫一次了(通俗來講,也就是錢的原因),除非系統有很大的問題,不然不可能會換了。

當然,經過多年的發展,他也是一個很成熟、穩健的一個語言。但是相對於某些領域,比如運維開發,使用Java沒有python、ruby、perl方便。學習成本也相對較高,沒有腳本語言簡單易學的特點。

PHP

編程語言:C/C++,Java,Python,Ruby,Go哪個好?我們選哪個?

PHP

PHP它的誕生就是為了用來做WEB(網頁)開發的語言。所以它有它的侷限性,它主要的優勢是做中小型網站開發的時候能很高效、快速做出來。當然,也有些人用它來做一些服務器端的(後臺)開發,比如:系統管理軟件、遊戲開發等等的軟件。這樣不是不行,也能幹,但是這樣它的優勢便沒有了。就好比你用linux shell(另一門命令行式的腳本語言)去寫一個俄羅斯方塊遊戲,特別牛的人也能寫出來,但是它不是做這個事情的。

PHP現在是挺火的語言,它也是火在它能迅速的開發一箇中小型網站。並且與Java出生年代相似,佔領的市場比較早也是原因中之一。大家一直用,所以就用起來了。但是一些新創業公司,新起來的網站,他也很有可能會選擇其它語言去做,比如:python、ruby。

ruby

編程語言:C/C++,Java,Python,Ruby,Go哪個好?我們選哪個?

ruby

它在國內應用不是很廣泛。由一個日本人開發的,代碼風格有python的影子。它最出名的框架是有個由美國人開發的,叫ruby on rail,主要用來最web的開發。在應用開發方面發展比較緩慢。在我看來,它也是一門非常優秀的開發語言。因為它出生比python晚,也不比python優秀多少。學會了python其實看Ruby的代碼也能懂。

Go

編程語言:C/C++,Java,Python,Ruby,Go哪個好?我們選哪個?

Go

谷歌新出的語言,比較火。其實我看到現在很多人都很推崇學Go,但是有的人連Go是幹嘛的都不知道。谷歌之前用python比較多,但是後來發現有些地方python不夠高效,運行速度不夠快,但是用C語言開發又比較麻煩,所以就借鑑了很多C語言的東西,做出來了一個Go語言。在國內新創業公司企業,有部分企業是使用Go語言開發的。代碼看上去也不算複雜,比python稍微難點。但是,相信我,他很可能主要做開發方面的,就是開發服務器端的。但是做一些小腳本、自動化、運維這些,它肯定不如ruby、python。

python

編程語言:C/C++,Java,Python,Ruby,Go哪個好?我們選哪個?

python

python相較於以上語言,它集成了以上的所有特點:跨平臺、web開發、運維自動化開發、桌面應用、服務端開發、遊戲、甚至硬件也正在摻和。但是國內大部分應用都是在運維、web、科學計算、爬蟲方面的。特別是爬蟲,現在只要一提爬蟲,一般人就會聯想到python,我覺得這是走偏了。因為它的第三方庫非常非常多,它沒有隻適合做某個方向的開發,幾乎所有領域(對我們普通一般人而言,不指某些特殊職業)都有對應的庫/框架。可以說,都是它所擅長的。

後記

介紹到這裡,相信大家心裡也有數了,學哪門語言取決於你自己最想要幹嘛,你想要做一個挖掘機自動炒菜的程序你不可能用除了C之外的php、Ruby等其它語言去做,也做不出來。你想要做運維,你肯定不回去學了Java然後去幹運維的活,你要寫遊戲輔助腳本你也不可能用C去做。*(“PHP天下第一!”,求各位PHPer不要打我(討好臉~))

選擇取決於你想幹什麼,而不是哪個語言“棒棒”喲


分享到:


相關文章: