Article reprinted from: SupraOracles
Programmers transition to Web3, Solidity, Go, Haskell, Rust, which language should I focus on?
1.
write in front
Although words such as Metaverse and NFT are familiar, for those in the industry, they can always feel that Web3 is still in its early stage, and new solutions, business models, concepts or ideas are emerging one after another. 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 sweets.
In 2021, more developers are joining Web3 than ever before, with over 34,000 joining the industry throughout the year. Similar to the situation in the traditional financial sector, employment in the blockchain sector is also at an all-time high.
[Pictured] After the Bitcoin price surged in 2017, the number of hiring increased year-on-year; during Covid-19, the Bitcoin price continued to rise, and hiring has maintained this trend.
Traditional Internet developers have mastered many languages such as Python, C++, Truffle, Javascript, Golang, etc. Therefore, it is easy for those with Web2 development skills to transition to Web3.
In addition to Ethereum, the most popular blockchains for developers are Cardano, Solana, Avalanche, Tezos, etc. These blockchains use a variety of programming languages, and no matter which language the developers master, there will be job opportunities. Of course, it would be more advantageous to join a large developer group, as they have a richer set of tutorials, compatibility libraries, and other plug-and-play tools for porting dApps. Of course, if you can master the combined skills of multiple coding languages, the road to blockchain development must be wider and wider.
This article mainly summarizes some development languages that are currently more valued, including Javascript and Solidity used on Ethereum, Haskell as the basis of Cardano’s native Plutus language, Go used in Cosmos, and finally Solana, NEAR protocol and Polkadot. Rust.
2.
Javascript & Solidity: Ethereum
Ethereum has four specialized languages: Serpent (inspired by Python), Solidity (inspired by JavaScript), Mutan (inspired by Go), and LLL (inspired by Lisp), all languages designed from the ground up for contract-oriented programming.
Among them, Solidity is the preferred language of Ethereum. It has all the features of Serpent built-in, and its syntax is close to Javascript, making it easy to master and use. Because JavaScript is already a common language for web developers, millions of developers in the market already have 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 now, and its code adds interactivity to Web displays, breathing new life into the Web through dynamic user experiences and functionality.
Just like web pages and mobile applications, Javascript can be used to create dApps during Web3 development, but it is worth noting that in blockchain applications, care needs to be taken to use JavaScript libraries such as web3.js and ethereum.js, which allow Users interact with Ethereum nodes locally or remotely using HTTP, IPC or WebSocket, and they also allow developers to use plug-and-play tools to make dApps compatible with Ethereum.
[Pictured] According to the data, mastering Rust, Kotlin, Haskell, and Go is the ideal skill set for developers. (Source: HackerEarth 2021 Developer Survey)
Solidity is not a very complex programming language, much like a miniature version of JavaScript, so it is easier for many developers to learn.
Even though Solidity is relatively young, the user base is relatively young, the scale is relatively small, and there are few standard libraries that can be reused. But the Solidity community and its codebase have grown rapidly since 2020, with over 2,000 active developers by the end of 2021. 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 undefined programming languages in the blockchain industry.
With the advent of Ethereum 2.0, there are great advantages to combining Solidity with other languages to create dApps on Ethereum. This is also a shortcut for many developers who want to get into Web3.
3.
Haskell: A purely functional Web3 programming language
Haskell is a general-purpose functional programming language. In the application of blockchain, Haskell is usually positioned as the underlying custom language of Cardano’s smart contract programming language Plutus.
Essentially, Haskell provides a theoretical framework for describing and evaluating functions, where each function is a function in the mathematical sense, with a high degree of safety. In Haskell, functions perform low-level tasks and specify what the program needs to do. At the same time it is a statically typed language, the code is easily evaluated during the compilation process, so type checking can ensure that the code is concise, clear and correct.
It uses lazy evaluation, it bypasses any irrelevant code if not necessary, and the program runs faster. In addition, it is also very convenient for developers to write in, because it takes advantage of Automatic Memory Management (AMM), developers do not need to write memory management tasks into the code when developing their dApps.
As of 2021, there are only a handful of Web3 developers using the Haskell programming language, which has not yet been embraced by most developers. Haskell has a high threshold for mastery, there are few Haskell libraries, and the number of developers is small and growing slowly. But Haskell plays a vital role in producing high-quality software, and mastering additional Haskell makes it easier for developers to stand out.
4.
Go: Cosmos and Polygon SD
Go is an open-source general-purpose programming language launched in 2009 by undefined software developers. It is an explicitly statically typed language, and what Go wants to do is to combine the ease of development of Python with the efficiency of compiled languages like C++.
The Cosmos and Polygon SDKs typically use Go. It has a large number of native libraries and is cross-platform and mobile compatible. Additionally, it utilizes “Goroutines” that enable dApps to start quickly and execute tasks without consuming too much memory. Go can also run multiple threads concurrently for efficient execution under heavy usage.
Web3 instances of Go include the Polygon Edge SDK, a modular framework for dApps and blockchains for building Ethereum-compatible networks. It bootstraps third-party networks onto Ethereum’s blockchain to transfer ERC-20 tokens and ERC-721 NFTs through their own solution. Other implementations of Ethereum can be embedded into Go using the Go Ethereum client.
Go is not difficult to learn, because the learning of Go in the initial stage is in line with the logic of JS or C developers, and at the same time provides a lot of learning resources. It will be faster for developers with C/C++/Java experience.
According to the 2020 Stack Overflow Developer Survey, Go is quite popular, with over 62% saying they love the language and will continue to develop with it.
5.
Rust: Simplicity, Concurrency, and Efficiency
Back in 2015, a former Mozilla employee first released Rust, a multi-paradigm programming language focused on safety and performance, built with speed and efficiency in mind, meaning it could provide zero-cost abstraction, inheritance and functional characteristics.
Rust is incredibly fast and memory efficient. Its rich type system and ownership model guarantees memory and thread safety to eliminate many typical errors at compile time. Additionally, it can concurrently (and parallelize) code, processing transactions quickly. This provides scalability for Rust programs, because of its high throughput, it handles more transactions per second (TPS) than other languages.
Zero-cost abstractions ensure that the abstractions you use have virtually no runtime overhead, meaning there is no speed difference between the underlying code and code written using the abstraction. The concept of zero cost has also become a core principle of Rust development.
Rust also provides excellent documentation and a handy compiler, which helps to easily diagnose problems and increase productivity. Means developers don’t need to spend as much time optimizing their code because the compiler will abstract their compilation. Applications written in Rust run faster compared to other languages, and even optimized code in other languages can’t match the speed of Rust.
Also, 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 Everything.
Because of these advantages, in 2020, a Stack Overflow survey of developers named Rust the “most popular programming language”, with about 86% of respondents saying they would like to continue coding in Rust in the future.
The launch of Polkadot and its use of Rust has directly led to vacancies for Rust developers; Solana’s active developer count has grown from around 180 to nearly 1,000 since its launch in 2021, an increase of nearly 500%, showing that Rust’s strong application potential.
[Pictured] Rust is best for high throughput and concurrent operations
6.
Finally: Rust is a potential stock
Because the Web3 protocol requires fast and powerful performance when dealing with tens of millions of untrusted inputs, Rust has a distinct advantage. It handles functionally complex tasks at lightning speed, while also reducing errors related to memory, bounds, null variables, initialization variables, or integer overflows.
Rust is difficult to learn, but there are still many developers learning it. Using Rust makes it possible to create more robust dApps that reduce many common mistakes and make dApps behave as expected after launch. Its concurrency is exactly what is needed to process tens or even hundreds of thousands of transactions per second, making Rust ideal for Web3 applications and virtual world transactions.
Solidity, on the other hand, offers a huge swarm and Ethereum library. This network effect fosters collaboration and increases the likelihood that a particular dApp will gain more uses.
The demand for jobs in each language is on the rise, and developers who master multiple languages will have more opportunities to choose jobs. Developers who master Solidity are in high demand right now, but learning Go, Haskell, or Rust would be an advantage because fewer programmers use them for development, and these languages are preferred by employers.
(This article and the pictures are the original content of [SupraOracles]. Without the authorization of the account, it is forbidden to reprint at will)
The text and pictures in this article are from Sina.com
This article is reprinted from https://www.techug.com/post/detailed-explanation-of-blockchain-programming-language-to-ambitious-developers9359e5d084cd7e8742c7/
This site is for inclusion only, and the copyright belongs to the original author.