Blokzincir Geliştiricisi Olmak İçin En İyi Programlama Dili Hangisi?

Recep İlkbahar
9 min readApr 22, 2019

--

www.duomly.com

Blokzincir güvenli, hızlı ve merkeziyetsiz olduğu için (her zaman değil, ancak çoğu durumda) dünyamıza, iş hayatına, yaşantımıza ve kurumlara çok hızlı adapte olan bir teknolojidir.

Binlerce blokzincir projesi geliştirme aşamasında ya da geliştiriliyor ve internete dağıtılıyor. Şu anda şirketler deli gibi yeni blokzincir fikirleri arıyor ya da diğer şirketlerin yarattıklarını geliştirmeye çalışıyorlar ve bu sadece blokzincir teknolojisinin dünyayı nasıl yöneteceğinin başlangıcı.

Geliştiriciler veya blokzincir sektöründe çalışmaya başlamak isteyen insanlar, yani bizler için bu bir rüya gibidir. Gerçekten hızlıca çok yüksek maaş ve iyi koşullarda bir iş bulabiliriz. Fakat, önemli bir soru var.

Blokzincir geliştiricisi olmak için hangi programlama dilini öğrenmeliyim?

Blokzincir geliştirme alanında birkaç tane çok popüler dile sahibiz; bunlar Javascript, C#, C++, Python, Golang, Solidity, Java ve Rust.

Şimdi size her dilin kısa bir açıklamasını, avantaj ve dezavantajlarını, dile sıfırdan girmenin zorluk seviyesini ve hangi blokzincir projesinin bu dili kullandığını anlatmaya çalışacağım.

1.Javascript

www.duomly.com

Javascript, yüksek seviye olarak tanımlanan programlama dili şeklinde yorumlanmaktadır.

Bizim için en önemli kısımlar: Javascript prototip tabanlıdır, dinamik ve zayıf yazılmıştır (dynamic and weakly typed) ve önde gelen web teknolojilerinden biridir.

Birkaç yıldır Javascript çok popüler ve pek çok şirket Javascript için angular/react/vue/node.js gibi kod geliştirmemize yardım eden yeni frameworkler yaratıyor.

Avantajları

  • Nesne yönelimlidir
  • Prototoip tabanlıdır
  • Fonksiyonel programlamayı destekler
  • Çok popülerdir ve neredeyse her BT şirketi frameworkleri için javascript’e ihtiyaç duyar

Dezavantajları

  • Dinamiktir
  • Zayıf yazılmıştır (fakat bunun için typescript kullanabiliriz)

Zorluk seviyesi

Javascript düşük derecede giriş zorluk seviyesine sahiptir ve onunla çalışmak için gerçekten derinlemesine öğrenmek zorunda değiliz.

Javascript ile çalışmaya başlamak için temellerini öğrenmeli ve ileride gerekirse daha derinlere gitmeliyiz.

Javascript öğrenmeye yardımcı olacak araçlar ana konumuzdur; internette sadece javascript için değil popüler frameworkler için de materyal içeren pek çok kurs ve ders bulunmaktadır.

Blokzincir’de Nerede Kullanılır

Kullanılan en popüler yer, Ethereum ağı ve akıllı sözleşmelerle bağlantı kurmak için uygulama ön yüzümüzü birleştirmemize yardımcı olan web3.js ve ethereum.js’dir.

Geliştiricilerin javascript kullandığı bir sonraki popüler yer node.js için Hyperledger Fabric SDK’dır ve büyük şirketler ve kurumlar için çok sık kullanılan devasa bir frameworktür. Bu şekilde çalışmayı seviyorsanız sizin için iyi bir seçenek olabilir.

Sözleşmelerde çalışmak amacıyla javascript’i kullanabileceğiniz bir başka popüler blokzincir, NEO, saniyede binlerce işlemi bile kaldırabilen çok hızlı bir teknolojidir.

Daha az meşhur ama yine de çok sık javascript kullanılan diğer bir alan Bitcoin blokzinciri üzerine inşa edilmiş süper hızlı bir ağ olan Lighting uygulamalarıdır. Son olarak bahsetmek istediğim ise, Ethereum blokzinciri üzerine kurulu yüksek hızlı altyapıya sahip Raiden ağıdır.

2.C#

www.duomly.com

C# 90'ların sonu 2000'lerin başında Microsoft için yaratılan yüksek seviye, derlenmiş, nesne yönelimli bir programlama dilidir.

Sınıf koleksiyonu bakımından Java veya C++’a çok benzeyen bir dildir ve kalıtım kullanır.

Avantajları

  • .NET için destektir
  • Öğrenmesi çok zor değildir
  • Oldukça popülerdir
  • Nesne yönelimlidir
  • Güçlü yazılmıştır (Strongly typed)
  • Dinamik kod desteği sağlar

Dezavantajları

  • Linux için fazla destek sağlamaz
  • Windows odaklıdır

Zorluk Seviyesi

Benim için, sözdizimi (syntax) ve types bakımından öğrenilmesi Javascript’ten daha zordur, fakat Go kadar da zor ve komplike bir dil değildir.

Ek olarak, tonlarca iyi ve ücretsiz kaynak bu dili öğrenilmesi en kolay olanlardan biri yapmaktadır.

Nerede Kullanılır

C #, birkaç popüler blokzincir projesinde kullanılır; en popülerlerinden biri, Ethereum’un Çin versiyonu olan NEO’dur.

Neo, saniyede birkaç bin işlemi bile kaldırabilen yüksek hızlı bir blokzincir platformudur.

C # kullandığımız bir sonraki popüler proje, yüksek ölçeklenebilir ve sıfır işlem ücreti ile Nesnelerin İnterneti’ne yönelik uygulamalar geliştirilmesine olanak sağlayan IOTA’dır.

3.C++

www.duomly.com

C++ kuvvetli statik yazılmış, yüksek hızlı, nesne yönelimli, derlenmiş programlama dilidir.

Önemli kısım, C++‘ın yüksek düzeyde verimliliğe ve donanım erişimine sahip olmasıdır.

İlginç olan ise, C++’ın 70–80’lerde C’nin bir uzantısı olarak oluşturulmasıdır.

Avantajları

  • Bağımsız ve çoklu platform olması
  • Yüksek hızlıdır
  • C’ye benzer
  • Kuvvetli statik yazılmıştır

Dezavantajları

  • Kod fazlalığı vardır
  • Öğrenmesi çok kolay değildir
  • Karmaşıktır ve bazı durumlarda hata ayıklaması zordur
  • Çöp koleksiyonunu desteklemez

Zorluk Seviyesi

Daha karmaşık olduğu için öğrenmesi de C’ye nazaran daha zorlu olan C++, C’nin orta düzey olduğu düşünüldüğünde öğrenmesi zor bir dil olarak sınıflandırılabilir.

Yeni başlayanlar için kesinlikle kolay bir dil değildir.

Nerede Kullanılır

C++ birçok popüler kriptopara biriminde ve aşağıdaki gibi önemli blokzincir projelerinde kullanılır:

  • Bitcoin (en ünlü kriptopara birimi)
  • Ripple (merkezi ultra hızlı para birimi)
  • Bitcoin cash (kriptopara)
  • Litecoin (kriptopara)
  • Monero (kriptopara)
  • Eos (EOS isimli kendi kirptopara birimine sahip olan hızlı blokzincir ağı)
  • Stellar (ödeme ağı, kurucularından biri eDonkey’in yaratıcısı)
  • QTUM (ethereum ve bitcoin arasında bir tür hibrit)
  • Cpp-ethereum (C++ ethereum uygulaması)

4.Python

www.duomly.com

Popüler derecede yüksek seviye ve dinamik yazılmış bir programlama dilidir.

Python nesne yönelimli ve fonksiyonel programlamayı desteklemektedir.

Bu dil hiç olmadığı kadar popüler hale gelmektedir. Python, makine öğrenmesi ve yapay zeka özelliklerini geliştirmek için de mükemmel bir dildir.

BT devleri, Dialogflow veya Tensorflow gibi akıllı araçlar ve framework’ler oluşturarak Python’u desteklemektedir.

Python, sohbet botları (chatbots) oluşturmak için en çok tercih edilen dillerden biridir.

Avantajları

  • Öğrenmesi çok kolaydır
  • Django veya Tensorflow gibi birçok hazır kütüphane ve framework vardır
  • Hızlıdır

Dezavantajları

  • Çoğunlukla sunucu dili olarak kullanılır
  • Context çok akıllı değildir
  • Kütüphaneler her zaman yeterince belgelenmemektedir

Zorluk Seviyesi

Python çok popülerdir ve sıklıkla ilk programlama dili olarak seçilir.

İnternet, Python’u öğrenmesi en kolay programlama dillerinden biri yapan çok sayıda ders ve kurs içermektedir.

Nerede Kullanılır

Blokzincir endüstrisinde Python birçok iyi projede kullanılmaktadır; örneğin Ethereum kendi uygulamasına (pyethereum) sahiptir, NEO için sözleşmeler ve Hyperledger için de akıllı sözleşmeler yapmak için Python dili kullanılabilmektedir.

Bahsetmek istediğim son uygulama ise Steempython; Steemit için bir Python uygulamasıdır ve içerik sağlayıcı ekosistem oluşturan bir tür popüler sosyal medya olarak açıklanabilir.

5.Golang

Go, statik olarak yazılmış, Google çalışanları tarafından oluşturulan derlenmiş bir programlama dilidir.

İlk fikir, Go’nun Python gibi kolay gelişen bir kod olması ve C++ gibi derlenmiş dillerin verimliliğini içermesi idi.

Avantajları

  • Hafıza güvenliği
  • Çöp toplama
  • Süper güçlü yazılmıştır (Super strongly typed)
  • Ultra hızlıdır
  • Öğrendikten sonra geliştirmesi çok kolaydır
  • Ölçeklenebilir

Dezavantajları

  • Öğrenmesi çok kolay değil
  • Çok yeni bir dil, bu yüzden topluluğu çok büyük değil
  • Python veya Javascript’e nazaran çok fazla paket yok
  • Bazı geliştiricilere göre sözdizimi (syntax) anlaşılır değil ve çirkin

Zorluk Seviyesi

Go, size her yerden saldırılabileceği ve insanların bir şey bulmak için daha derinlemesine bakmaları gerektiği Javascript’e nazaran internette iyi öğretici kaynakalra (tutorials) sahip değildir; ve karmaşık bir dildir, bu nedenle geliştiriciler arasında “Go’yu öğrenmek çok zordur,” gibi bir fikir hakimdir.

Hoş, bu görüşü genelde python/javascript geliştiricileri olan insanlardan çok sık duyarsınız, çünkü Go bu dillerden çok farklıdır.

Her neyse, eğer C++ veya Java’dan geliyorsanız, Go öğrenmek sizin için çok kolay olacaktır.

Nerede Kullanılır

Golang ile ilgili projelerden sonu gelmeyecek şekilde konuşabiliriz, ancak en popüler olanlarını tanımlamaya çalışacağım.

GO için en önemli projelerden biri, Golang ile yazılmış Go-Ethereum.

Go’da yazılan bir sonraki önemli proje, büyük şirketler için en popüler blokzincir çözümlerinden biri olan Hyperledger Fabric.

Dağıtılmış çevrim içi oyunları hedefleyen heyecan verici bir proje olan Loom Network, Go’da yazılmış bir zincire sahip. Blockzincir kullanan daha az popüler bir proje ise Go’da yazılmış bir bitcoin uygulaması olan Btcd. Bir diğeri ise Go’da yazılmış hızlı Ethereum uyumlu blokzincir Gochain.

Golang projesinde yazılmışlar arasında bahsetmek istediğim son uygulama ise akıllı sözleşmelerin gizliliğini hedefleyen, oldukça hızlı blokzincir: Dero.

6.Solidity

www.duomly.com

Ethereum geliştiricileri tarafından oluşturulan, sözleşmeye yönelik statik olarak yazılmış programlama dilidir.

Akıllı sözleşme geliştirme ana dili olarak EVM için yaratılmıştır ve Ethereum’un akıllı sözleşmelerinin ana dilidir.

Avantajları

  • Statik yazılmıştır
  • Öğrenmesi çok kolaydır
  • Popülerliği oldukça hızlı artmaktadır

Dezavantajları

  • Çok yenidir
  • Topluluğu henüz çok büyük değildir, bu yüzden desteği azdır
  • Evrensel değildir (Ethereum ekosisteminde kullanıma uygundur)
  • Çok savunmasızdır
  • Kritik hata yapmak çok kolaydır, bu yüzden kodumuzu her zaman ayrıntılı bir şekilde test etmek zorunda kalırız

Zorluk Seviyesi

Solidity karmaşık bir dil değildir ve türler (types = javascript’in projelerinde çok sık karşımıza çıkan typescript’te bu türleri kullanırız) gibi birkaç alandaki değişiklik ile biraz daha küçük bir javascript kopyasına benzemektedir.

Bu nedenle orta deneyimli javascript geliştiricisi, özellikle duomly.com gibi birçok etkileşimli öğreticiye sahip olduğunda, birkaç gün içinde Solidity öğrenebilir.

Nerede Kullanılır

Ethereum akıllı kontratlarını geliştirmek için Solidity dilini kullanırız.

Solidity kullanan başka projeler görmedim, ancak Ethereum geliştirme ekosistemi muazzam ve şu anda blokzincir gelişiminin en önemli parçalarından biri, bu yüzden Solidity blokzincir endüstrisinde kullanılan en popüler dillerden biridir.

7.Java

www.duomly.com

Java, Sun Microsystems tarafından yaratılan, derlenmiş, güçlü yazılmış bir nesne ve sınıf tabanlı programlama dilidir.

Java, nesne programlamaya yöneliktir ve büyük şirketlerde çok popülerdir.

Avantajları

  • Operasyonel sistemden bağımsızdır
  • Güçlü yazılmıştır (Strongly typed)
  • Nesne Yönelimli Programlama için güçlü destektir
  • Büyük bir topluluk ve kütüphane koleksiyonuna sahiptir
  • Geliştirme aşamasında C veya C++ gibi dillerden daha kolaydır
  • Hafıza tahsisinde sorun yoktur
  • Kolay hafıza temizlemeye sahiptir

Dezavantajları

  • Çalıştırmak için Java Sanal Makinesi gerekmektedir
  • C++ veya Go’ya göre daha yavaştır

Zorluk Seviyesi

Javascript veya Python’dan daha zor seviyede bulunan C# ile karşılaştırdığımızda Java daha karmaşıktır ancak çok popüler bir dildir ve tonlarca öğrenme kaynağına sahiptir.

Yine de açıkça söyleyebilirim ki, Java, Golang veya C++ ‘tan daha kolaydır.

Nerede Kullanılır

Java blokzincir endüstrisinde çok popülerdir, daha popüler olanlardan IOTA’da kullanılır (C# adımında IOTA’nın ne olduğunu açıkladım). Popüler P2P (Peer to Peer = Eşten Eşe) kriptopara birimi ve platformu olan NEM de Java kullanmaktadır (NEM, Java’da yazılmıştır).

Java’yı kullanabileceğimiz popüler projelerden bazıları:

  • NEO’nun kontratları
  • Hyperledger’ın kontratları
  • IBM Blokzincir
  • BitcoinJ (Bitcoin’in Java uygulaması)
  • Ethereum

8.Rust

www.duomly.com

2009'dan itibaren Mozilla, sistemsel, derlenmiş, güçlü yazılmış bir programlama dili olan Rust’ı geliştirmeye ve finanse etmeye özen göstermektedir.

Rust’ın sözdizimi (syntax) C++’a benzemektedir.

Avantajları

  • Güçlü yazılmıştır (Strongly typed)
  • Güvenlik odaklı bir dildir
  • Fonksiyonel paradigmaları destekler
  • C++ gibi hızlıdır
  • Kalıtım özelliklere dayalıdır
  • Küçük işletme ortamına sahiptir

Dezavantajları

  • Öğrenmesi çok zordur
  • Çok ünlü değildir, bu yüzden örneğin javascript gibi topluluğu çok büyük değildir, kütüphanelere erişim daha küçüktür ve geliştiricilerin çoğu sorunu sıfırdan yazmak zorundadır
  • Veritabanına erişmenin anlaşılır, standart yolları çok yoktur

Zorluk Seviyesi

Rust’ın sözdizimi C++‘a benzemektedir, yani bu programlama dilinin öğrenilmesi kesinlikle kolay değildir.

Ek olarak, topluluk çok daha küçüktür, bu yüzden giriş seviyesinin yüksek olduğunu söyleyebilir ve zorluk seviyesini “güç” olarak nitelendirebilirim.

Nerede Kullanılır

Gerçekten çok az sayıda popüler blokzincir projesi Rust kullanmaktadır.

Bunlardan biri, Rust’ta yazılmış çok hızlı ve güvenli bir Ethereum istemcisi olan Parity’dir.

Bir sonraki ve muhtemelen en popüler olanı, Ethereum’a yapılan büyük saldırıların ardından doğan kriptopara birimi Ethereum Classic’tir.

Rust’ta yazılan bir diğer proje ise Exonum’dur. Exonum, saniyede birkaç bin işlemi bile kaldırabilen, blokzincir güvenliği odaklı bir framework’tür.

Özet (Kazananlar)

Blokzincir sektöründe en fazla iş fırsatı

  1. Blokzincir Javascript — 565 iş fırsatı
  2. Blokzincir Solidity — 424 iş fırsatı
  3. Blokzincir Python — 394 iş fırsatı
  4. Blokzincir Go — 361 iş fırsatı
  5. Blokzincir C# — 301 iş fırsatı
  6. Blokzincir C++ — 301 iş fırsatı
  7. Blokzincir Java — 289 iş fırsatı
  8. Blokzincir Rust — 54 iş fırsatı

Kazanan: Javascript

En iyi ücreti veren iş fırsatları

En iyi ücreti veren iş fırsatlarını listelemek için yıllık 150 bin doların üzerindeki teklifleri ayrı olarak kategorilendirdik.

Sonuçlar aşağıdadır.

  1. Blokzincir Javascript — 89 iş fırsatı
  2. Blokzincir Go — 81 iş fırsatı
  3. Blokzincir Solidity — 77 iş fırsatı
  4. Blokzincir Python — 71 iş fırsatı
  5. Blokzincir C# — 61 iş fırsatı
  6. Blokzincir C++ — 61 iş fırsatı
  7. Blokzincir Java — 52 iş fırsatı
  8. Blokzincir Rust — 14 iş fırsatı

Kazanan: Javascript

Öğrenme Kolaylığı Bakımından

Tabii ki, öğrenme kişisel bir şeydir; ancak programlama dilleri için karmaşıklık ve internetteki kaynaklar, “daha az” ya da “daha fazla” olarak nitelendirilebilir. Bu yüzden kişisel deneyimime ve internet istatistiklerine dayanarak bir liste yapmaya karar verdim.

Programlama dillerindeki zorluk istatistiklerini araştırdıktan sonra ve kendi tecrübelerime dayanarak bunları aşağıdaki şekilde sıralayabilirim:

1. Solidity

2. Python

3. Javascript

4. Java / C#

5. C++

6. Go

7. Rust

Kazanan: Solidity

Sonuç

Tüm puanları kontrol ettikten sonra genel kazananı yazabiliriz.

Nadiren arka uçta (backend) ve ara katman yazılımında (middleware) kullanılan Javascript, neredeyse uygulamaların ön yüzünün hepsinde kullanıldığından, genellikle çok fazla iş teklifine sahiptir ve iyi ücretli iş fırsatlarının da önemli bir kısmında bu dil aranmaktadır.

Öğrenmek için çok zor değildir ve Solidity ile birlikte kombine edildiğinde harika kombolar yaratır. Tabi ki bu durumun devamlılığı için dApp’lerin (Merkeziyetsiz Uygulamalar) popülerliğini kaybetmemesi gerekmektedir.

Kazanan: Javascript ve Solidity

Ancak, sıralamamı kontrol edecekseniz, tüm dillerde çok fazla iş teklifi ve iyi maaşlı iş fırsatları göreceksiniz.

Yani bizim için iş teklifi sayıları ve zorluk seviyesindeki farklılıklar çok küçüktür, bu yüzden size söyleyebiliriz ki, bu dillerden herhangi birisine sahip bir kişiyseniz mükemmel bir işi çok hızlı bulabilirsiniz.

www.duomly.com

Okuduğunuz için teşekkürler,
Radoslaw Fabisiak,

Duomly Temel Geliştiricisi

--

--

Recep İlkbahar

Entrepreneur, Co-Founder at a Stealth Startup (Blockchain, DAO, NFT) | 🎯 #innovation #tech #art #blockchain #nft | 🎓 YTU Elec. & Comm. Engg.