Detailed explanation of blockchain programming language: to ambitious developers

Published on 3 Days ago   47 views   0 Comments  
For the transition from programming ape to Web3, which language should we focus on, such as solidity, go, Haskell and rust?

one Write in frontโ€‹

Although yuancosmos, NFT and other words are familiar, people in this industry can still feel that Web3 is still in its early stage, and new solutions, business models, concepts or ideas emerge in an endless stream. At the same time, this unstoppable industry wave has created a huge demand for talents, and blockchain developers are one of the most sought after pastries.

In 2021, more developers joined Web3 than ever before, and more than 34000 people joined the industry throughout the year. Similar to the situation in the traditional financial field, the number of employees in the blockchain field is also at the highest level in history.

[figure] after the soaring price of bitcoin in 2017, the number of recruits rose year-on-year; During the covid-19 period, the price of bitcoin continued to rise, and the recruitment has also maintained this trend.

Traditional Internet developers have mastered many languages such as python, c++, truffle, JavaScript, golang, etc., so it is easy for people with web2 development technology to transition to Webthree

At present, besides Ethereum, the most popular blockchain among developers also includes Cardano, Solana, avalanche, tezos, etc. These blockchains use various programming languages, and no matter which language the developers master, they will have job opportunities. Of course, joining a large development community will have more advantages, because they have richer tutorials, compatibility libraries and other plug and play tools for porting dapps. Of course, if you can master the combination skills of multiple coding languages, the road of blockchain development must be wider and wider.

This article mainly summarizes some development languages that are highly valued at present, including JavaScript and solidity used on Ethereum, Haskell as the basis of Cardano's native Plutus language, go used by Cosmos, and finally, rust used by Solana, near protocol and Polkadot.

two Javascript & Solidity: Ethereum

Ethereum has four special languages: serpent (inspired by Python), solidity (inspired by JavaScript), Mutan (inspired by go) and LLL (inspired by LISP), which are designed from the bottom for contract oriented programming.

Among them, solidity is Ethereum's preferred language. It has all the features of serpent built in. The syntax is close to JavaScript and is easy to master and use. Because JavaScript has become a common language for web developers, millions of developers on the market have already had the foundation for Ethereum contract development.

As both object-oriented languages, JavaScript and solidity have many similarities, but their functions are different. JavaScript has been used in web development for some time. Its code increases the interactivity of web display and injects new vitality into the web through dynamic user experience and functions.

Just like web pages and mobile applications, JavaScript can be used to create dapps during Web3 development, but it is worth noting that web3 JS and ethereum JavaScript libraries such as. JS allow users to interact with Ethereum nodes locally or remotely using HTTP, IPC or websocket. At the same time, they also allow developers to use plug and play tools to make DAPP compatible with Ethereum.

[figure] according to the data, mastering rust, kotlin, Haskell and go is an ideal skill combination for developers. (source: hacker earth 2021 developer survey)

Solidity is not a very complex programming language. It is much like a miniature version of JavaScript, so it is easier for many developers to get started.

Although solidity is relatively young, its users are relatively young, its scale is relatively small, and there are few reusable standard libraries. However, since 2020, the solidity group and its code base have developed rapidly. By the end of 2021, it has more than 2000 active developers. In addition, Ethereum is still the largest development ecosystem at present. There is no doubt that solidity is still one of the most widely used gold programming languages in the blockchain industry.

With the emergence of Ethereum two0, it has great advantages to combine solidity with other languages to create dapps on Ethereum. This is also a shortcut for many developers who want to enter Webthree

three Haskell: pure functional Web3 programming language

Haskell is a general functional programming language. In blockchain applications, Haskell is usually positioned as the underlying customization language of Plutus, Cardano's smart contract programming language.

In essence, Haskell provides a theoretical framework for describing and evaluating functions, in which each function is a function in the mathematical sense and has high security. In Haskell, functions perform low-level tasks and specify the tasks to be completed by the program. At the same time, it is a statically typed language, and the code is easy to be evaluated during compilation, so type checking can ensure that the code is concise, clear and correct.

It uses lazy evaluation, bypassing any irrelevant code if it is not necessary, and the program runs faster. In addition, it is very convenient for developers to write with it, because it uses automatic memory management (AMM), and developers do not need to write memory management tasks into the code when developing their dapps.

As of 2021, only a few Web3 developers use Haskell programming language, which has not been accepted by most developers. Haskell has a high mastery threshold, few Haskell libraries, a small number of developers and slow growth. However, Haskell plays a crucial role in producing high-quality software. It is easier for developers to stand out by mastering additional Haskell.โ€‹

four Go:cosmos and polygon SD

Go is an open source universal programming language, which was launched by Google software developers in 2009. It is an explicit statically typed language. What go wants to do is to combine the easy development feature of python with the efficient feature of c++ as a compilation language.

Cosmos and polygon SDKs usually use go. It has a large number of local libraries, and is cross platform and compatible with mobile devices. In addition, it uses "goroutines" to enable DAPP to start quickly and perform tasks without consuming too much memory. Go can also run multiple threads at the same time, so that it can be executed efficiently in case of heavy use.

The Web3 instance of go includes the polygon edge SDK, a modular framework for DAPP and blockchain, which is used to build a network compatible with Ethereum. It guides the third-party network to Ethereum's blockchain to transmit erc-20 tokens and erc-721 NFT through their own solutions. Other Ethereum implementations can be embedded into go using the go Ethereum client.

The learning of go is not difficult, because the learning in the initial stage of go conforms to the logic of JS or c developers, and provides a large number of learning resources. Developers with c/c++/java experience will master it faster.

According to the 2020 stack overflow developer survey, go is quite popular. More than 62% of people say they like this language and will continue to develop with it.

five โ€‹ Rust: simplicity, concurrency, and efficiency

As early as 2015, a former Mozilla employee released rust for the first time. It is a multi paradigm programming language focusing on security and performance. Its construction takes into account speed and efficiency, which means that it can provide abstraction, inheritance and functional features at zero cost.

Rust has amazing speed and memory efficiency. Its rich type system and ownership model ensure the safety of memory and threads, so that many typical errors can be eliminated at compile time. In addition, it allows concurrent (and parallel) code to process transactions quickly. This provides scalability for the rust program, which has more transactions per second (TPS) than other languages because of its high throughput.

Zero cost abstractions ensure that the abstractions you use have little runtime overhead, meaning that there is no speed difference between the underlying code and the code written using abstractions. The concept of zero cost has also become the core principle of rust development.

Rust also provides excellent documentation and a simple compiler, which helps to easily diagnose problems and improve work efficiency. This means that developers don't need to spend too much time optimizing code, because compilers will abstract their compilation. Compared with other languages, applications written in rust run faster. Even the optimized code in other languages can not run faster than rust.

In addition, rust works well with other languages, making it easy to call another language, and vice versa. This feature can highlight its interoperability value in the Internet of things. โ€‹

Due to these advantages, in 2020, a stack overflow survey for developers showed that rust was the "most popular programming language", and about 86% of the respondents said they hoped to continue to use rust for coding in the future.

The launch of Polkadot and its use of rust directly led to the vacancy of rust developers; The number of active developers in Solana has increased from about 180 to nearly 1000 since its launch in 2021, an increase of nearly 500%, which shows the strong application potential of rust.

[figure] rust is most suitable for high throughput and concurrent operations

six โ€‹ Finally: rust is a potential stock

Since Web3 protocol needs fast and powerful performance when processing tens of millions of untrusted inputs, rust has obvious advantages. It handles complex tasks with lightning speed, while reducing errors associated with memory, bounds, empty variables, initialization variables, or integer overflows.

Rust has some learning difficulties, but there are still many developers to learn. Use rust to create a more powerful DAPP, which can reduce many common errors and make DAPP run as expected after release. Its concurrency is just what it needs to process tens of thousands or even hundreds of thousands of transactions per second, which makes rust an ideal choice for Web3 applications and virtual world transactions.

On the other hand, solidity provides a large group and Ethereum library. This network effect promotes cooperation and increases the possibility that specific dapps can be used for more purposes.

The demand for jobs in each language is on the rise, and developers who master multiple languages will have more opportunities to choose jobs. At present, there is a great demand for developers who master solidity, but learning go, Haskell or rust will be more advantageous because fewer programmers use them for development, and these languages are more favored by employers.

(this article and pictures are the original content of [supraoracles], and are not allowed to be reproduced without authorization of the account)

Generic placeholder image
Promote your coin to 10k unique users daily
contact us PM Twitter
50 views   0 Comments   4 Days ago
39 views   0 Comments   5 Days ago