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, Java
Ş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
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
- Dinamiktir
- Zayıf yazılmıştır (fakat bunun için typescript kullanabiliriz)
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#
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
- Linux için fazla destek sağlamaz
- Windows odaklıdır
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++
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
- Kod fazlalığı vardır
- Öğrenmesi çok kolay değildir
- Karmaşıktır ve bazı durumlarda hata ayıklaması zordur
- Çöp koleksiyonunu desteklemez
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ı)
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
- Çoğunlukla sunucu dili olarak kullanılır
- Context çok akıllı değildir
- Kütüphaneler her zaman yeterince belgelenmemektedir
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.Java
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
- Çalıştırmak için Java Sanal Makinesi gerekmektedir
- C++ veya Go’ya göre daha yavaştır
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