Solidity, akıllı sözleşme geliştiricileri tarafından sıkça kullanılan, JavaScript, C++ ve Python dillerinden etkilenerek oluşturulan, nesne yönelimli programlama dilidir. Solidity, nesne yönelimli (OOL), yüksek seviyeli (HLL) ve curly bracket bir kodlama dilidir. High level, geliştiricilere rahatlık sunan, kullanıcı dostu programlama dillerini ifade etmek için kullanılır.
Solidity, açık artırma, para transferi ve kitle fonlama gibi birçok alanda çözümler sunan akıllı sözleşmelerin programlanmasında önemli bir rol oynar. Solidity, Ethereum Sanal Makinesi (EVM) ile etkileşime girer. Solidity dili, “Opcodes” (işlem kodları) olarak adlandırılan makine talimatları ile derlenir. Solidity, kütüphanesi, belleği ve kullanıcı tanımlı nesneleri destekler. Bu, geliştiricilerin karmaşık, otomatik, finans veya oyun sektöründe uygulamalar oluşturmasında yardımcı olur.
Yazım esnasında Soliditylang.org sayfasında yer alan bilgiye göre, Solidity’nin son sürümü 0.8.19 şeklindedir.
Solidity dilinin genel özelliklerinden bazıları şu şekildedir:
- Python, C ++ ve JavaScript gibi farklı programlama dillerinden örnek alınarak tasarlanmıştır.
- Solidity, akıllı sözleşmeleri uygulamada yardımcı olan, yüksek seviyeli (HLL) bir programlama dilidir.
- Oylama, para transferi, açık artırma ve kitlesel fonlama gibi işlemler adına, akıllı sözleşmeler oluşturmak için kullanılabilir.
Akıllı Sözleşme Nedir?
Akıllı sözleşmeler, bir anlaşmanın koşullarını belirler ancak geleneksel sözleşmeler aksine Ethereum gibi blockchain üzerinde yürütülen kodları kapsar. Akıllı sözleşmeleri geleneksel sözleşmelerden ayıran en önemli şey, şartların veya koşulların blockchain üzerinde kodlar halinde yürütülmesidir.
Object-Oriented Language (OOL) Nedir?
Object-Oriented Language (OOL), nesne tabanlı programlama dili anlamına gelir. OOL, okunulabilir programlar tasarlamak için nesnelerin ve ilişkişi fonksiyonların entergre edilmesine izin verir. OOL dillerine örnek olarak: C++, Java, Javascript ve Ruby verilebilir.
Curly-bracket Languages Nedir?
Curly-bracket languages, kod bloklarının parantez işaretleri ile tanımlandığı {…} programlama dilleridir ve C dili sayesinde popüler hale gelmiştir.
Solidity dilinde Curly-bracket kullanımı şu şekilde olabilir:
uint64 configCount = s_configCount;
{
s_hotVars.latestConfigDigest = configDigestFromConfigData(
address(this),
configCount,
_signers,
_transmitters,
_threshold,
_encodedConfigVersion,
_encoded
);
s_hotVars.latestEpochAndRound = 0;
}```
Solidity’nin Avantajları ve Dezavantajları Nelerdir?
Bir programlama dili olan Solidity’nin bazı avantaj ve dezavantajları vardır.
Solidity’nin avantajları şu şekilde sıralanabilir:
- Solidity dilinin kullanımı basittir. C ++ ve Java gibi bazı programlama dillerine hâkim kişiler, Solidity’i kullanabilir.
- Solidity, akıllı sözleşmeleri blockchain’e işler ve blockchain üzerinde yürütür.
- Solidity, akıllı sözleşmeler için tasarlanan üst düzey bir dildir.
Solidity'nin bazı dezavantajları ise şu şekildedir:
- Solidity ile yazılan akıllı sözleşmeler değiştirilemez. Sözleşme üzerinde bulunan bir hata düzeltilemez veya işlemler tersine çevrilemez. Yani Solidity ile yazılan bir akıllı sözleşmenin, hata içermemesi gerekir.
Solidity ve Ethereum
Solidity, Ethereum’da çalışan akıllı sözleşmelerin tasarlanması için kullanılan bir programlama dilidir. Blockchain geliştiricilerinin çoğu, akıllı sözleşmeler için Solidity dilini tercih ediyor. Solidity, işlevsel bir dildir ve çok yönlü uygulamalar yaratmaya imkân tanır. Solidity, Ethereum alt yapısı için tasalandırdığından dolayı, diğer dillere kıyasla daha farklı değişken tipleri ve fonksiyonlar sunar. Solidity ile Ethereum ağında kripto varlık birimleri veya çeşitli uygulamalar oluşturulabilir.
Ethereum, merkeziyetsiz uygulamaların geliştirilmesi için sıklıkla kullanılan bir ağdır. Ethereum’da çalışan akıllı sözleşmeler, DeFi (Merkeziyetsiz Finans), dApps (Merkeziyetsiz Uygulamalar) ve Play to Earn (Kazanmak için Oyna) gibi uygulamaların çalıştırılmasına imkân tanır.
Solidity'nin Tarihi
Solidity, İngiliz bilgisayar bilimcisi Gavin Wood tarafından ortaya atıldı. Gavin Wood, Ethereum'un CTO'su olarak çalışmaktaydı ve Solidity hakkındaki önerileri, dili geliştiren grubun yöneticisi olan Christian Reitweissner geliştirilmiştir. Solidity dili, resmi olarak 2015’te piyasaya sürülmeden önce Monax tarafından kabul edildi.