Standard Languages Used To Write Smart Contracts On Various Platforms

Judy Davis
Blockspoint
Published in
4 min readNov 21, 2018

Introduction

The blockchain environment is friendly toward enthusiasm and various development concepts. There are many tools in the IT area that are used without modification in many crypto projects. We may recall the SQL language or the TCP stack implementation in nodes information exchange. Perhaps, the most widespread and clear one for audience is smart contracts programing with common programing languages.

In fact, a smart contract is nothing but a program. It is written in the same way as any other program but has an uncommon environment and conflicts resolution algorithms. Most of the programs are written in several dozens of well-known programing languages. Thus, nothing can stop us from using them for smart contracts creation. That is exactly what many different crypto projects did. Under the term “common” we understand a popular language actively used to write software.

General information

There are several requirements to satisfy before implementing a programing language in a crypto project. First of all, we should choose goals. We might want different languages to create flexible, reliable, efficient, universal or simple smart contracts. In some cases it will be necessary to use the Ethereum Virtual Machine or software recommended by developers.

Now let’s get closer to the business. The languages we are going to talk about are Java, Kotlin, C++, GO, Python, Rust, and JavaScript.

Java

The Java language might be used in Corda, Hyperledger Fabric, and NEO projects. In most cases, its implementation requires the launch of the Java Virtual Machine. Corda developers state that contracts on Corda can be written in any language targeting the JVM. Fabric uses containers simulating the JVM, while NEO uses compilers and supports contracts plugins to implement Java written programs. All compilers transform the contracts to the NEO virtual machine bytecodes.

Kotlin

This is a less famous language used in Corda and NEO. Kotlin is a language with a strict typization that can call the JVM, Android, JavaScript, and Native. It has some advantages compared to Java, although Java libraries are used. Kotlin can be called the main Corda language as the project itself and many examples are written in it. NEO uses Kotlin in the same way as other languages. Compiler, bytecode, the NEO virtual machine.

C++

C++ is one of the oldest and most popular programing languages used in NEO and EOS. As for NEO, nothing changes in comparison with Java and Kotlin. EOS uses WebAssemly programs transformation and C++ compiler to implement written smart contracts to blockchain. This language is recommended for EOS dApps.

GO

GO is a programing language developed by the Google company. It is open-source and strongly supported. Its implementation in Hyperledger Fabric and NEO is the same as in Java. Containers simulate the JVM to run smart contracts in GO. NEO compilers with further implementation use GO as well.

Python

The Python language became popular in last several years. Many developers switched to work within its environment. It is used by NEO and EOS projects in the same way they use C++. There is no big difference in various languages application within a single project.

Rust

Rust is a system language implemented with increased safety requirements. It is similar to C++ in terms of syntax. However, memory management rules are much stronger and rigorous. The only project that uses Rust is EOS.

JavaScript

JavaScript is well-known by the majority of IT specialists. This language is one of the most used in the Internet. Almost all of websites use it in order to run web applications. It may be utilized within Hyperledger Fabric and NEO projects the same as Java and GO languages.

Additional information

To summarize all information we propose the table of languages and projects written in them.

It is worth saying that Hyperledger Sawtool allows writing command groups called transaction families for transactions in various languages like Java, C++ and some others. Meanwhile, pure contracts are written in Solidity only.

Other languages are also used within the crypto ecosystem but they are less popular: C#, VB.Net, F#, C. Among specific solutions we can also mention various types of bytecodes and domain-specific languages.

Afterword

It seems that many different platforms use various popular languages to write smart contracts. They are implementing virtual machines, containers and compilers to place contracts code on the chain. This approach is very useful for involving proficient programmers to the crypto environment. Their enthusiasm and experience might positively influence the area.

This article is the property of blockspoint.com

--

--

Judy Davis
Blockspoint

You can find there a lot of useful information about Bitcoin, fresh Ethereum news and my reviews on new cryptocurrencies. https://blockspoint.com/