Which programming language is the best for blockchain?

Duomly on October 17, 2019

This article was originally published at: https://www.blog.duomly.com/which-programming-language-is-the-best-for-blockchain/ Blockchain because is... [Read Full]
markdown guide
 

The design of the pictures is on point, but the content is just lacking..

C++ -> Cons -> Code redundancy

I don't think this is a language-specific shortcoming. Redundancy can be found in code-bases regardless of the language.

Python -> Pros -> Fast

It's actually the slowest language in the list

Rust -> Pros -> Inheritance based on features

Rust does not have inheritance. It has composition though!

 

I wouldn't say Go is difficult to learn. You can pick up the basics in an hour. It's easier to learn than Java or C++ for example. And with Blockchain it's even easier as you avoid using goroutines most of the time because you want determinism.

 

I would argue "easier than" can be subjective, I find the syntax of go disgusting. Making it harder for me to read it than Java.

 

Thank you for sharing.
I'm not an expert in blockchain but about C# it supports cross platforms since years via Dotnet Core.
dotnet.microsoft.com/download

 

True, I even use c# and last days tried to do q# on mac and it's possible. Anyway, I feel it's designed to be windows-oriented in the biggest part.

 

Note during the days of .NET Framework, C# supported by Microsoft was Windows-only, however, many companies and projects leverage Mono - an implementation of .NET - to run C# cross-platform e.g. Xamarin, Unity etc.

But since 2015, C# has gone opensource, cross-platform and it is of high performance - check the various performance benchmarks.

 

C# was born to be used in Windows environment back to 00s but dude, it has been almost 20 years, C# language has evolved and now it runs in several Linux distributions in big companies. You cannot share wrong perceptions of a languages based on a feeling. Please stick with the facts and update this article. Also, there's no such thing as Go being difficult to learn. It is much easier than many programming languages. Anyway I appreciate the comparisons done here

 

The only portion of .NET Core that is "Windows-oriented" would be for desktop development. Core has great Linux support. I host all my .NET Core services, APIs and web apps on Linux servers.

 

I have been using Golang for just under 2 years now. My first encounter with the language was on a Blockchain project. We started with JavaScript and mid-way, ditched JavaScript for Go. I have never looked back. It was way easier to learn, compared to even JavaScript. Why? The language syntax is pretty clear. Minimal syntactic sugar that change the meaning of expressions that should otherwise be clear.

 

Mostly used as a server language

Why is this a con for python?

 

Well done, thank you for sharing it! Didn't expect JS to be a winner in the blockchain stuff, to be honest. But it's probably the most popular programming language now, so it should be easier to find JS devs. Kinda make sense.

 

I hear a lot about blockchain nowadays, I don't understand it but after reading this article I kinda feel interested. Any suggestions on where I could start? I'm a fullstack web dev, so I'm very familiar with JS, TS and NodeJS

 

You should give Cryptozombies a try as it's free and very funny to learn! After accomplishing it, you will understand how Blockchain works under the hood, how Solidity works and how to integrate it in JavaScript projects. I had a huge fun doing the first level!

 

Yes! Doing solidity basics through crypto zombies are super cool!
But crypto zombies eat crypto kitties :(

 

We have some content related to solidity and ethereum on Duomly for free. But for general blockchain-around content, I was starting from books like "Mastering Blockchain".

 

Hi Mydrax,

Check this guy at youtube: youtube.com/channel/UCY0xL8V6NzzFc...

Hope you will pick up some basics.

Cheers

 
 

Javascript... really???

The wrong tool for the job is the best I can say.

In my opiniom, measuring what is the best language by using the number of job offers or its popularity is not a good way to go.

The merit for the best language to use should be on the technical side, its concurrency and parallel model, and how fault tolerant it is(thinking Elixir here).

And despite not being a Golang fan, I would put it on the top of the easiest languages to learn.

Well I don't know Solidity, so no comment on it, but in my opinion the winner should be one of, without order of preference, Rust, Golang, Python or even Elixir/Erlang(not evaluated in this article).

 

change topic to "Which programming language is the best for web development?" the content will hold up. Change topic to "Which programming language is the best for framework development?" The content will hold up again. I think, there is nothing about blockchains but a lot of language comparison. I was hoping for solid practice based facts, but instead I found highly abstracted common patterns where you can change topic to anything and it will hold

 

I will say python is difficult to learn, cause I'm used to c style languages such as c, Java, c#, php etc., writing code without curly braces is hard to adjust to, and semicolon is great, in terms of multi line stuff

 

How come only JS and C# have "object-oriented" in their pros? And how come only Go is listed as garbage collected? 🤔

 

Thanks for the input. You're right. It's more like the most popular props in our opinion, we could add a list of other props and cons and reading time would be too long :)

 

I disagree that Go is difficult to learn. It is all up to the learner's academic background and how well he understands the documentation. Code-redundancy is not a programming language specific disadvantage. There are many ways to do a task. Only immature/noob programmers write redundant code.

 

@duomly According to you what's the best blockchain stack to build a news platform for independent journalists or something like dev.to? Is Ethereum better for this or Hyperledger Fabric with Composer or something else?
Great article btw. Loved it 👌

 

Not sure if I’m the only one actually reading. #4 python picture is incorrect, as it shows #2 C# ;)

 
 

The pictures are very nice but many typo mistakes like the C# one also Rust in the cons says tha

 

I don't have strong opinions when it comes to blockchain, but I appreciated the language cards and graphs :)

 
 

I prefer to use Rust.

It will be standard language for developing high-end enterprise applications.

 

What about php? I implemented perfectly a blockchain project using it as a server-side language. JavaScript came to fit on client side only.

 

Not sure about PHP's popularity in blockchain, but about JavaScript, it's surely possible to use that on the server-side with nice performance.

 
 

One of the best infographics I've seen.
Thanks for the article BTW

 

Hi! i'm quite new exploring blockchain, so why for some languages the fact that is typed or not decides if it's good or not?

 

It’s not about good or not. For some devs it’s easier to work with strongly typed languages because returned data is the same type.

code of conduct - report abuse