-
1 # 新缸中之腦
-
2 # AI中國
你是否想開始區塊鏈開發人員的職業生涯?
無論如何,首先你需要了解一種程式語言。
下面由我來介紹一些程式語言,方便你找到最好的選擇!
隨著人類向所有事物的數字化邁進,即使對於不熱衷於技術的普通人來說,基本編碼也是必須的。 在涉及區塊鏈領域時,這一要求更加明顯。 如果我們尋求真正的去中心化,我們每個人都應該理解事物,至少要知道基本層面上是如何運作的。無論你是經驗豐富的軟體工程師,還是普通人,在學習區塊鏈功能之前需要學習如何選擇程式語言,這都是你應該做的第一件事。
對於一項正在飛速發展的新技術來說,選擇一種程式語言可能是一項艱鉅的任務。它們有很多可用的特性,不同的初創企業和開源社群所選擇不同的語言來構建它們的產品,因為它們的關注點和所需的特性集各不相同。在這個時間點並沒有所謂標準的供你參考,你的選擇很大程度上取決於你的個人標準和你渴望構建的應用程式型別。
在本文中,我們將回顧區塊鏈開發中使用的最流行的程式語言,以供你選擇最合適的選項。
關於區塊鏈中最流行的程式語言
首先,在使用區塊鏈編寫程式碼時,我們需要了解使用哪種程式語言最多。你可能會在以下列表中看到一些熟悉的名字。
c++要開始區塊鏈程式語言,我們需要了解一下c++。1985年,Bjarne Stroustrup釋出了他的語言,使原來的C語言更加靈活。30多年後,它被用來建立比特幣。
與最初的面向過程的C語言不同,c++是面向物件的。這種方法使c++在編寫程式碼時更省時。資料和函式一起儲存在所謂的物件中,這些物件以後可以在其他程式中重用。
由於它的成熟,就區塊鏈開發而言,特性方面的C ++非常強大並不奇怪。這種語言具有記憶體控制,透過高效的CPU管理來確保速度,允許同時執行並行/非並行任務的執行緒,方便地移動複製資料的語義,透過劃分職責實現更好的編譯時多型性,以及用於分離資料結構的程式碼隔離。此外,它的使用者群由400多萬開發人員組成。
對於區塊鏈開發人員來說,c++的一個主要缺點是它還沒有準備好智慧契約。這並不意味著不能在c++上編寫智慧契約,而是意味著必須實現一些修改。這就是區塊鏈特定語言開始出現的原因。
優點:獨立、多平臺、高速、類似C語言缺點:很難掌握、複雜、有時很難除錯,沒有垃圾回收最適合高階使用者,瞭解比特幣的原理c#c#比c++年輕,但它也相當老了。創建於90年代末的微軟內部,它很快就在開發者社群獲得了關注。它是一種面向物件程式語言,為企業級應用程式、雲計算和跨平臺開發提供了很好的特性。在微軟的大力支援下,這種語言對於專業人員和普通程式設計師來說都是一種方便的工具。
如果你熟悉c++或Java,你可能知道,c#不僅靈活且易於理解,而且它還包含了許多特性。除了一些c++功能之外,c#還提供. NET框架及其類庫、公共語言執行和開發框架(如WPF、XAML和ASP.NET)。
c#受到區塊鏈大玩家的青睞,原因如下:
1.對於大部分已經熟悉c++的440萬開發人員來說,它的語法很容易理解。
它是開源的。它允許為移動裝置編寫可移植程式碼。2. 由於BizSpark專案,它是可以負擔得起的。
基於c#的最著名的初創公司包括NEO和Stratis。此外,c#有一個專用的比特幣框架(NBitcoin)。可以說,微軟並沒有落後,而且他還為其Azure平臺引入了vNext區塊鏈。
優點:面向物件,強型別,動態程式碼支援缺點:Linux支援較弱最適合:構建基礎架構區塊鏈,Windows使用者JavaScript迄今為止,這可能是世界上少數被公認的程式語言之一。你每天滾動瀏覽的web頁面都使用javascript實現漂亮的外觀和高階功能。2007年,Jeff Atwood曾表示
"任何可以用JavaScript編寫的應用程式,最終都將用JavaScript來編寫。"
JavaScript是一種面向物件的語言,它很容易學習,同時功能多樣。使用JS,開發人員可以為客戶端和伺服器、物聯網裝置和機器學習編寫程式碼。就區塊鏈而言,JavaScript的主要優勢之一是非同步執行事件的特性,這意味著它允許節點自由有效地通訊。JS的另一個優點是不需要編譯。與此同時,簡單是有代價的。儘管有這麼多特性,JS與c++相差甚遠,但對於初學者來說,它是一門很棒的語言。
直到2017年ICO爆發之前,JavaScript在區塊鏈開發人員中並不十分流行。目前,有幾家在CoinMarketCap上排名靠前的初創公司基於這種語言,如Lisk、Ark和Nimiq。Ethereum最著名的競爭對手之一Tron也支援JavaScript。
優點:面向物件、基於原型、支援函數語言程式設計缺點:動態、弱型別最適合:進入區塊鏈空間,構建應用程式PythonPython是以一種極簡主義的方式建立的。這就是為什麼這種語言非常容易學習,是初學者的一個很好的入門點。它創建於1991年,用於應用程式開發、網路伺服器開發、物聯網和其他用途。它可能還不像JS那樣被認可,但它肯定會在科技界引起更大的轟動。
Python是一種OOP語言。編寫程式碼是一種樂趣,它是通用的。您將不需要超過50行的程式碼就可以編寫一個簡單的區塊鏈。程式碼編寫完成後,可以在安裝了不同OS(作業系統)的多個裝置上執行。還有著龐大的框架庫,如Tensorflow和Django,儘管它們的文件在某些情況下可能不完整。除此之外,目前還有專門用於區塊鏈開發的特定庫。與JavaScript一樣,Python也不需要編譯,不過它可以像c#和c++那樣編譯。將其與一個專用的測試環境相結合,您將得到一款方便除錯區塊鏈的工具。
Python已經被業界的超級明星所認可。IBM 的Hyperledger在Sawtooth中實現了它,Ethereum建立了自己的這種語言迭代:Pyethereum。
優點:非常容易學習,可以預製庫和框架,效率高缺點:主要用作伺服器語言,而不是智慧語境最適合為初學者構建應用程式GOGolang(或Go)是一種源自c語言的開源語言,它是一種非常年輕的語言,由谷歌的開發人員在2007年推出。Go語法的實現更像python,它簡化了提供效率,並使用它做的專案在未來不會受到影響。
Go在區塊鏈程式設計方面的優勢包括模組化程式設計的可用性,這使得開發過程靈活、方便的測試工具和龐大的函式庫。它對雲計算開發人員最有吸引力,因為就這種語言而言,分散式計算非常簡單。儘管這種語言需要編譯,但它是一個很好的安全因素,因為所有錯誤都會在程式碼啟動之前顯示給編寫程式碼的人。此外,並行程式設計與Goroutines一起提高了程式碼的效率和應用程式的吞吐量。這對於可伸縮性至關重要,而可伸縮性是當前區塊鏈領域的一個難點。最後,Go執行OS,而不是在它上面執行。這消除了建立EVMS時的額外步驟,從而提高了速度。
GO是區塊鏈領域的一種知名語言。考慮一下IBM Hyperledger,它使用Golang在其結構上編寫智慧合約。Docker不是一個區塊鏈啟動程式,但是它與分散式系統一起工作,並且是用Go構建的。
優點:記憶體安全性、垃圾回收、強型別缺點:不太容易學,社群比較小,包比較少最適合構建雲應用程式SoliditySolidity是新型的,就像Golang。2014年,Christian Reitwiessner和他的團隊釋出了這份報告。值得注意的是,在過去的兩年裡,由於各種各樣的初創公司湧入市場,這個生態系統已經增長了數百倍。因此,Solidity擁有龐大的使用者基礎。其標準(ERC20)已成為行業的主要產品。
Solidity是OOP和麵向聯絡的語言。 Solidity的語法類似於JavaScript,但與C ++和Python也有一些相似之處。 儘管早期階段,Solidity是一種函式語言,它提供繼承、各種庫等。缺點是早期的版本的缺點是文件方面的問題,這可能會讓一些開發人員陷入困境。
目前,可靠的主要用例是EVM和smart contract。雖然不是很多,但是這些都是非常重要的,並且是塊鏈特有的。如果你想建立一個dApp,Solidity是你的首選。
優點:靜態型別,易於學習,時髦缺點:不普遍,脆弱最適合開發智慧合約在區塊鏈上編碼的基礎知識剛剛,我們已經回顧了區塊鏈中最流行的程式語言,現在是動手編寫實際程式碼的時候了。讓我們看看基本操作是如何透過不同的程式語言來執行的。
在我們開始之前,對區塊鏈的定義進行細化是一件好事。區塊鏈是一個分散式分類賬,其中交易輸入在一系列區塊中。塊是交易記錄的佔位符。 每個新塊都以雜湊函式的形式指向前一個塊。在塊被填滿之後,使用它的所有事務生成一個雜湊並附加到它。還有一個時間戳伺服器(timestamp server),它可以防止重複開銷,還有一個共識機制,且允許節點就分類賬的正確版本達成一致。
-
3 # 假本聰區塊鏈日記
我的經驗是這樣的,首先你需要學習區塊鏈的底層知識,這樣才能弄清楚它的執行原理。
開頭建議閱讀《精通比特幣》這本書,現在好像已經出第二版了,不夠基本原理都差不多,主要包括私鑰的生成,私鑰到公鑰再到地址的轉換方法,交易的資料結構,交易之間是如何連線起來的,挖礦的演算法原理,比特幣難度調整演算法,指令碼指令等等。當你有個大致瞭解之後,可以嘗試閱讀最初版的比特幣原始碼,遵循各個模組把原始碼理解透徹,這裡差不多對區塊鏈有一定認識了。
然後如果你是想在公鏈上做開發,可以針對不同的公鏈去閱讀官方的技術文件,比如以太坊,eos,ont,neo, trx等等,一般都包括智慧合約的一些基本api,根據api去編寫智慧合約,不同的公鏈所支援的程式語言也不同,可以綜合考慮,最後就是對智慧合約的一些在測試網測試和上公鏈運行了。
回覆列表
區塊鏈不是單一平臺,有以太坊,eos,tendemintdent等,每個平臺下的開發都不一樣。
可以看下匯智網,有問題的話可以問助教。