C++適合本地程序的開發(fā)。Go語言適合網(wǎng)絡程序和本地程序的開發(fā)。Go的優(yōu)點:垃圾回收,語意明確,格式統(tǒng)一。?Go的缺點:效率目前沒有C++高,但對于桌面程序而言,效率問題不大,因為硬件已經(jīng)很快了。c++過于復雜了,加入很多炫技的內容。這些內容脫離了事情的本質。
成都創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站建設、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元埇橋區(qū)做網(wǎng)站,已為上家服務,為埇橋區(qū)各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
最明顯的就是所謂的面向對象?;诿嫦驅ο蟮墓こ倘绻銐虼蟮那闆r下,會帶來很大的耦合度,如果再加上內存管理,多線程等等。項目后期基本上沒辦法維護和增加功能。
關于c++的語言復雜性,你可以問知乎上的任何一位高手。沒一個敢說自己精通c++。你也可以去看一下所有的c++編繹器,沒有任何一個敢說自己完全實現(xiàn)了c++的標準。不同的編繹器之間實現(xiàn)細節(jié)又不同。所以功能再強大沒有實用性,就失去了意義,只會制造更多的問題。
c:面向過程,語法太麻煩c#:面向對象(跟java很像如果你對java了解估計你就會明白c&c#之間的區(qū)別了),是ms.netframework的主力之一,它的代碼運行是安全的,里面沒有指針,像java一樣有垃圾回收機制。語法基本沒有區(qū)別,個人感覺首先c#不必對指針進行太多的研究,然后可遺址性等,其它的區(qū)別相當大??梢哉f不是一個方向的。開發(fā)環(huán)境跟開發(fā)語言也是兩個不同的概念學習c#并不必須有c語言的基礎,不過,如果你學過c語言,那會事半功倍的,因為他們之間有很多語法是一樣的。作為初學者,并沒有必要先去學習c語言,你只需要有c#的完整的教程就行了。舉個簡單的例子,你想學開高檔的轎車并不需要先去學習開低檔的面包車。但如果你已經(jīng)會開面包車的話,那么學開轎車就一定會容易一些了,因為他們有很多相同的地方。C語言:C語言是國際上廣泛流行的、很有發(fā)展前途的計算機高級語言。它適合作為系統(tǒng)描述語言,即可用來編寫系統(tǒng)軟件,也可用來編寫應用軟件。早期的操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語言編寫的(包括UNIX操作系統(tǒng)在內)。由于匯編語言依賴于計算機硬件,程序的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現(xiàn)匯編語言的某些功能(匯編語言可以直接對硬件進行操作),例如:對內存地址的操作、位操作等)。人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優(yōu)點于一身。于是,C語言就在這種情況下應運而生了。C語言是在B語言的基礎上發(fā)展起來的,它的根源可以追溯到ALGOL60。1960年出現(xiàn)的ALGOL60是一種面向問題的高級語言,它離硬件比較遠,不宜用來編寫系統(tǒng)程序。1963年英國的劍橋大學推出了CPL(CombinedProgram-mingLanguage)語言。CPL語言在ALGOL60的基礎上接近了硬件一些,但規(guī)模比較大,難以實現(xiàn)。1967年英國劍橋大學的MatinRichards對CPL語言作了簡化,推出了BCPL(BasicCombinedProgrammingLanguage)語言。1970年美國貝爾實驗室的KenThompson以BCPL語言為基礎,又作了進一步簡化,設計出了很簡單的而且很接近硬件的B語言(取BCPL的第一個字母),并用B語言寫第一個UNIX操作系統(tǒng),在PDP-7上實現(xiàn)。1971年在PDP-11/20上實現(xiàn)了B語言,并寫了UNIX操作系統(tǒng)。但B語言過于簡單,功能有限。1972年至1973年間,貝爾實驗室的D.M.Ritchie在B語言的基礎上設計出了C語言(取BCPL的第二個字母)。C語言既保持了BCPL和B語言的優(yōu)點(精練、接近硬件),又克服了它們的缺點(過于簡單、數(shù)據(jù)無類型等)。最初的C語言只是為描述和實現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設計的。1973年,K.Thom-pson和D.M.ritchie兩人合作把UNIX的90%以上用C改寫(UNIX第5版。原來的UNIX操作系統(tǒng)是1969年由美國的貝爾實驗室的K.Thompson和D.M.Ritchie開發(fā)成功的,是用匯編語言寫的)。后來,C語言多次作了改進,但主要還是在貝爾實驗室內部使用。直到1-975年UNIX第6版公布后,C語言的突出優(yōu)點才引起人們普遍注意。1977年出現(xiàn)了不依賴于具體機器的C語言編譯文本《可移植C語言編譯程序》,使C移植到其它機器時所做的工作大大簡化了,這也推動了UNIX操作系統(tǒng)迅速地在各種機器上實現(xiàn)。例如,VAX,ATT等計算機系統(tǒng)都相繼開發(fā)了UNIX。隨著UNIX的日益廣泛使用,C語言也迅速得到推廣。C語言和UNIX可以說是一對孿生兄弟,在發(fā)展過程中相輔相成。1978年以后,C語言已先后移植到大、中、小、微型機上,已獨立于UNIX和PDP了。現(xiàn)在C語言已風靡全世界,成為世界上應用最廣泛的幾種計算機語言之一。以1978年發(fā)表的UNIX第7版中的C編譯程序為基礎,BrianW.Kernighan和DennisM.Ritchie(合稱KR)合著了影響深遠了名著《TheCProgrammingLan-guage》,這本書中介紹的C語言成為后來廣泛使用的C語言版本的基礎,它被稱為標準C。1983年,美國國家標準化協(xié)會(ANSI)根據(jù)C語言問世以來各種版本對C的發(fā)展和擴充,制定了新的標準,稱為ANSIC。ANSIC比原來的標準C有了很大的發(fā)展。KR在1988年修改了他們的經(jīng)典著作《TheCProgra-mmingLanguage》,按照ANSIC的標準重新寫了該書。1987年,ANSIC又公布了新標準--87ANSIC。目前流行的C編譯系統(tǒng)都是以它為基礎的。C#:C#是Microsoft公司設計的一種編程語言。它松散地基于C/C++,并且有很多方面和Java類似。Microsoft是這樣描述C#的:“C#是從C和C++派生來的一種簡單、現(xiàn)代、面向對象和類型安全的編程語言。C#(讀做‘Csharp’)主要是從C/C++編程語言家族移植過來的,C和C++的程序員會馬上熟悉它。C#試圖結合VisualBasic的快速開發(fā)能力和C++的強大靈活的能力?!备剑阂粋€簡單的C#程序是怎樣的?可以是這樣:classCApplication{publicstaticvoidMain(){System.Console.Write(“Hello,new.NETworld!”);}}(你不能將Main()作為全局函數(shù)——C#沒有全局函數(shù))C#是面向對象的嗎?是的,C#像Java和C++一樣,是一個面向對象的語言。C#有自己的類庫嗎?不,就像所有的.NET語言(VB.Net,JScript.Net)一樣,C#訪問.NET類庫,C#沒有自己的類庫。C#提供什么標準類型?C#支持的基本類型和C++很相似,包括int,long,float,double,char,string,arrays,structs和classes。然而,不要假設太多,名字可能很形似,但是一些細節(jié)不相同。例如C#中的long是64位的,而C++的long取決于平臺,32位的平臺上是32位的,64位的平臺上是64位的。class和struct在C++中幾乎完全一樣,但在C#中并不是這樣的。
不能吧,現(xiàn)在用c語言搞開發(fā)都是用在更加底層的開發(fā)中,更加底層的開發(fā)需要高運行效率,go語言的運行效率是比不上c語言的,所以go語言在這些方面還無法取代c語言。應該說是各有所長吧,go和c都有它們自己的適用環(huán)境,誰也不能取代誰。
不可能。Go到目前為止,其本身就是用C寫的。只是在語言層面實現(xiàn)了一些如果用C會很難寫的feature,比如goroutine。在1.5版本中,Go會bootstraping,用Go來編譯自己。
C語言,幾乎每種操作系統(tǒng)的系統(tǒng)調用都是C,C最大的作用就是用來實現(xiàn)新的語言。
不可以,完全沒有可比性。
Golang的優(yōu)勢是開發(fā)速度,C可以自由、精準的操控內存。
拿string類型舉個栗子:
1、修改字符串:
golang:需要分配新內存,然后進行內存copy。
c:可直接修改,可realloc。
2、存一段data:
golang:使用[]byte類型,[]byte轉成string需要進行內存拷貝(排除掉利用指針進行類型轉換的情況)。
c:直接用char[],可讀可寫。
golang中為了語言的安全性,類似的這種限制有很多,犧牲了一部分性能。但golang的優(yōu)勢也是顯而易見的,goroutine、chan都很好用,而c則需要自己進行進程、線程的管控。
C++適合本地程序的開發(fā).
Go語言適合網(wǎng)絡程序和本地程序的開發(fā).
相對于C++Go的優(yōu)點:
垃圾回收
語意明確
格式統(tǒng)一
缺點:
效率目前沒有C++高,但對于桌面程序而言,效率問題不大,因為硬件已經(jīng)很快了.
C++是目前的主流語言,相信會和C一樣成為經(jīng)典.
成為經(jīng)典的意思就是:學它的人能拿一份不錯的工資,但也僅僅是不錯而己.
將來的網(wǎng)絡的世界,Go發(fā)熱的機會很大,認為其前途看好.
Go的開發(fā)者包括Unix的創(chuàng)始人和C語言的創(chuàng)始人等,都是一代黑客之首,相信會做得很好.