Ana içeriğe atla
Change page

Akıllı sözleşme dilleri

Ethereum'un harika bir yönü, akıllı sözleşmelerin nispeten geliştirici dostu diller kullanılarak programlanabilmesidir. Python veya herhangi bir süslü parantezli dil (opens in a new tab) konusunda deneyimliyseniz, tanıdık sözdizimine sahip bir dil bulabilirsiniz.

En aktif ve bakımı yapılan iki dil şunlardır:

  • Solidity
  • Vyper

Remix IDE, hem Solidity hem de Vyper'da sözleşmeler oluşturmak ve test etmek için kapsamlı bir geliştirme ortamı sağlar. Kodlamaya başlamak için tarayıcı içi Remix IDE'yi deneyin (opens in a new tab).

Daha deneyimli geliştiriciler, Ethereum Sanal Makinesi (EVM) için bir ara dil olan Yul'u veya Yul'un bir uzantısı olan Yul+'ı kullanmak isteyebilirler.

Meraklıysanız ve hala yoğun geliştirme aşamasında olan yeni dilleri test etmeye yardımcı olmak istiyorsanız, şu anda hala emekleme aşamasında olan ve yeni ortaya çıkan bir akıllı sözleşme dili olan Fe'yi deneyebilirsiniz.

Ön koşullar

Programlama dilleri, özellikle JavaScript veya Python hakkında önceden bilgi sahibi olmak, akıllı sözleşme dillerindeki farklılıkları anlamanıza yardımcı olabilir. Ayrıca, dil karşılaştırmalarına çok fazla girmeden önce akıllı sözleşmeleri bir kavram olarak anlamanızı öneririz. Akıllı sözleşmelere giriş.

Solidity

  • Akıllı sözleşmeleri uygulamak için nesne yönelimli, üst düzey dil.
  • C++'tan en derinden etkilenmiş süslü parantezli dil.
  • Statik tipli (bir değişkenin tipi derleme zamanında bilinir).
  • Şunları destekler:
    • Kalıtım (diğer sözleşmeleri genişletebilirsiniz).
    • Kütüphaneler (farklı sözleşmelerden çağırabileceğiniz yeniden kullanılabilir kodlar oluşturabilirsiniz – diğer nesne yönelimli programlama dillerindeki statik bir sınıftaki statik fonksiyonlar gibi).
    • Karmaşık kullanıcı tanımlı tipler.

Örnek sözleşme

Bu örnek, Solidity sözleşme sözdiziminin neye benzediği hakkında size bir fikir vermelidir. Fonksiyonların ve değişkenlerin daha ayrıntılı bir açıklaması için belgelere bakın (opens in a new tab).

Vyper

  • Pythonik programlama dili
  • Güçlü tipleme
  • Küçük ve anlaşılır derleyici kodu
  • Verimli baytkod üretimi
  • Sözleşmeleri daha güvenli ve denetlenmesi daha kolay hale getirmek amacıyla kasıtlı olarak Solidity'den daha az özelliğe sahiptir. Vyper şunları desteklemez:
    • Değiştiriciler (Modifiers)
    • Kalıtım
    • Satır içi (inline) assembly
    • Fonksiyon aşırı yükleme (overloading)
    • Operatör aşırı yükleme
    • Özyinelemeli (recursive) çağırma
    • Sonsuz uzunluklu döngüler
    • İkili sabit noktalar (Binary fixed points)

Daha fazla bilgi için Vyper mantığını okuyun (opens in a new tab).

Örnek

Bu örnek, Vyper sözleşme sözdiziminin neye benzediği hakkında size bir fikir vermelidir. Fonksiyonların ve değişkenlerin daha ayrıntılı bir açıklaması için belgelere bakın (opens in a new tab).

Yul ve Yul+

Ethereum'da yeniyseniz ve henüz akıllı sözleşme dilleriyle herhangi bir kodlama yapmadıysanız, Solidity veya Vyper ile başlamanızı öneririz. Yalnızca akıllı sözleşme güvenliği en iyi uygulamalarına ve EVM ile çalışmanın özelliklerine aşina olduktan sonra Yul veya Yul+'ı inceleyin.

Yul

  • Ethereum için ara dil.
  • EVM'yi ve Ethereum aromalı bir WebAssembly olan Ewasm (opens in a new tab)'ı destekler ve her iki platformun da kullanılabilir ortak paydası olacak şekilde tasarlanmıştır.
  • Hem EVM hem de Ewasm platformlarına eşit derecede fayda sağlayabilecek üst düzey optimizasyon aşamaları için iyi bir hedeftir.

Yul+

  • Yul'un düşük seviyeli, oldukça verimli bir uzantısı.
  • Başlangıçta bir iyimser rollup sözleşmesi için tasarlandı.
  • Yul+, Yul'a yeni özellikler ekleyen deneysel bir yükseltme teklifi olarak görülebilir.

Örnek sözleşme

Aşağıdaki basit örnek bir üs alma fonksiyonunu uygular. solc --strict-assembly --bin input.yul kullanılarak derlenebilir. Örnek, input.yul dosyasında saklanmalıdır.

Akıllı sözleşmeler konusunda zaten iyi bir deneyime sahipseniz, Yul'da tam bir ERC-20 uygulaması burada (opens in a new tab) bulunabilir.

Fe

  • Ethereum Sanal Makinesi (EVM) için statik tipli dil.
  • Python ve Rust'tan esinlenilmiştir.
  • Ethereum ekosisteminde yeni olan geliştiriciler için bile öğrenmesi kolay olmayı hedefler.
  • Fe geliştirmesi hala erken aşamalarındadır, dil alfa sürümünü Ocak 2021'de yayınlamıştır.

Örnek sözleşme

Aşağıdaki, Fe'de uygulanan basit bir sözleşmedir.

Nasıl seçilir

Diğer tüm programlama dillerinde olduğu gibi, bu çoğunlukla doğru iş için doğru aracı seçmekle ve kişisel tercihlerle ilgilidir.

Henüz dillerden hiçbirini denemediyseniz göz önünde bulundurmanız gereken birkaç şey şunlardır:

Solidity hakkında harika olan nedir?

  • Yeni başlıyorsanız, piyasada birçok eğitim ve öğrenme aracı bulunmaktadır. Bu konuda daha fazla bilgiyi Kodlayarak Öğrenin bölümünde bulabilirsiniz.
  • İyi geliştirici araçları mevcuttur.
  • Solidity büyük bir geliştirici topluluğuna sahiptir, bu da sorularınıza büyük olasılıkla oldukça hızlı bir şekilde yanıt bulacağınız anlamına gelir.

Vyper hakkında harika olan nedir?

  • Akıllı sözleşmeler yazmak isteyen Python geliştiricileri için başlamanın harika bir yoludur.
  • Vyper, fikirlerin hızlı bir şekilde prototiplenmesi için harika olmasını sağlayan daha az sayıda özelliğe sahiptir.
  • Vyper, denetlenmesi kolay ve maksimum düzeyde insan tarafından okunabilir olmayı hedefler.

Yul ve Yul+ hakkında harika olan nedir?

  • Basit ve işlevsel düşük seviyeli dil.
  • Sözleşmelerinizin gaz kullanımını optimize etmeye yardımcı olabilecek ham EVM'ye çok daha yaklaşmanızı sağlar.

Dil karşılaştırmaları

Temel sözdizimi, sözleşme yaşam döngüsü, arayüzler, operatörler, veri yapıları, fonksiyonlar, kontrol akışı ve daha fazlasının karşılaştırmaları için Auditless tarafından hazırlanan bu kopya kağıdına (opens in a new tab) göz atın.

Daha fazla bilgi