DEV Community

loading...
Cover image for Which programming language is the best for blockchain?

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...
pic
Editor guide
Collapse
molamk profile image
molamk • Edited

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!

Collapse
marcellothearcane profile image
marcellothearcane

Mostly used as a server language

Why is this a con for python?

Collapse
theodesp profile image
Theofanis Despoudis

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.

Collapse
ginsburgnm profile image
Noah Ginsburg

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.

Collapse
amenayach profile image
Amen Ayach

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

Collapse
duomly profile image
Duomly Author

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.

Collapse
saint4eva profile image
saint4eva

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.

Collapse
juniormayhe profile image
Junior Mayhé

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

Collapse
danjrwalsh profile image
Dan Walsh

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.

Collapse
room_js profile image
JavaScript Room

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.

Collapse
exadra37 profile image
Paulo Renato • Edited

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).

Collapse
gen_el profile image
Elendu Uche

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.

Collapse
xyn profile image
Mydrax

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

Collapse
lbeul profile image
Louis

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!

Collapse
duomly profile image
Duomly Author

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

Collapse
duomly profile image
Duomly Author

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".

Collapse
pop_pilli profile image
Pop Pilli

Hi Mydrax,

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

Hope you will pick up some basics.

Cheers

Collapse
harshrathod50 profile image
Harsh Rathod

There is a limited time free course here: bitdegree.org/course/learn-solidit...

Collapse
madeinbaku profile image
Made In Baku

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

Collapse
gaviotamina profile image
gaviotamina

good morning ,

i want to implement a new smart contract for clustering data over blockchain.
about the algorithme of clusterning i wat to start by the simple algorithme Kmeans for example.
the smart contract get data from un IPFS.

what architecture can my smart contract have? and with what I have to start?

Cdlt.

Collapse
nikit profile image
Nikit Singh • Edited

@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 👌

Collapse
starvsion profile image
Junhai

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

Collapse
harshrathod50 profile image
Harsh Rathod

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.

Collapse
jetpackpony profile image
Vasiliy Taranov • Edited

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

Collapse
duomly profile image
Duomly Author

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 :)

Collapse
nipait profile image
nipa-it

Lovely summary, and clear.

I got a noob question though: I was used to code in javascript years ago for embedding scripts into html pages. According to you would it be easier (=faster) for me starting again with JS or giving a try to Python (as I'm curious to use it...)?

As Web developer I'm thinking like JS would be better since I can upload the working file into some free webspace and python isn't available in free webspaces. Is this assume correct?

Thank you! :)

Collapse
tuwang profile image
TuWang • Edited

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

Collapse
duomly profile image
Duomly Author

Sorry, replacing in a sec :)

Collapse
tuwang profile image
TuWang

Nice post. Learned a lot. Thanks!

Thread Thread
duomly profile image
Duomly Author • Edited

Thanks! I'm glad you like the content.

Collapse
crimsonmed profile image
Médéric Burlet

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

Collapse
patrixr profile image
Patrick R

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

Collapse
mzahraei profile image
Ardalan

I prfer to Use JS for everything's.

Collapse
adnanbabakan profile image
Adnan Babakan (he/him)

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

Collapse
netplayer profile image
NetPlayer

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

Collapse
duomly profile image
Duomly Author • Edited

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.

Collapse
saleh_rahimzadeh profile image
Saleh Rahimzadeh

I prefer to use Rust.

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

Collapse
xarala221 profile image
Ousseynou Diop

Interesting article.
Thank you for sharing.

Collapse
ngrosso profile image
Nicolás Grosso

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?

Collapse
duomly profile image
Duomly Author

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.