Greitai pradėti kurti Ethereum yra pakankamai sudėtinga, tačiau pasirinkta kalba yra svarbus sprendimas. Įsitikinkite, kad planuojate atitinkamai.

„Ethereum“ yra viena didžiausių „blockchain“ platformų. Jį galite naudoti kurdami decentralizuotas programas, išmaniąsias sutartis ir decentralizuotas autonomines organizacijas (DAO).

Jums reikės kalbos, kuria galėtumėte programuoti, kad galėtumėte kurti Ethereum blokų grandinę. Nors turite daugybę „Ethereum“ kūrimo galimybių, „Solidity“ ir „Vyper“ yra populiariausi.

Solidity programavimo kalba

Solidity yra labai populiari aukšto lygio programavimo kalba, naudojama Ethereum kūrimui. Tai į objektus orientuota kalba su visaverte bibliotekų ekosistema, kurią galite naudoti kurdami sudėtingas programas. „Solidity“ turi tam tikrų panašumų su „JavaScript“ dėl statinio spausdinimo, posakių ir raktinių žodžių bei Objektinis programavimas. Štai paprastas Labas pasauli Solidity programa:

// SPDX-License-Identifier: MIT
pragmatvirtumas ^0.8.18;

sutartis HelloWorld {

instagram viewer

// Sukurtifunkcijaįgrąžinti"Labas pasauli"
funkcijaLabas pasauli() viešasgrynasgrįžta (stygų atmintis) {
grąžinti"Labas pasauli";
}
}

Aukščiau pateikta programa apibrėžia a Labas pasauli() funkcija. The Labas pasauli() funkcija grąžina eilutę; šiuo atveju frazė „Sveikas pasaulis“. Štai „Hello World“ programos vykdymo rezultatas Remix IDE:

Kas yra Vyper programavimo kalba?

Vyper yra naujesnė Ethereum kūrimo kalba. Jis buvo išleistas 2018 m.; kaip ir Solidity, Vyper yra statiškai spausdinama kalba.

Vyper yra parašyta ta pačia sintaksė, kurią naudoja Python programavimo kalba, kuri yra paprastesnė nei Solidity kodas. Kalba orientuota į išmaniųjų sutarčių saugumą. Čia yra paprastas Labas pasauli programa parašyta Vyper:

# @version >=0.2.16
@išorinis
@view
# apibrėžkite funkciją, kuri grąžina eilutę
defLabas pasauli() -> Styga[24]:
grąžinti"Labas pasauli!"

Kaip ir Solidity pavyzdys, ši programa apibrėžia a Labas pasauli() funkcija, kuri grąžina eilutę. Tokiu atveju funkcija grąžinama Labas pasauli!

Štai „Vyper Hello World“ programos „Remix“ paleidimo rezultatas:

Solidity ir Vyper skirtumai

Nors Solidity ir Vyper naudojimo atvejai yra panašūs, yra skirtumų tarp kalbų, į kurias norėsite atsižvelgti renkantis kalbą Ethereum plėtrai.

Štai keletas skirtumų tarp Solidity ir Vyper.

Kalbos sintaksė

„Vyper“ turi paprastą sintaksę, o „Solidity“ turi sudėtingą sintaksę, panašią į C++. Solidity sintaksė leidžia kūrėjams lengviau kurti sudėtingas programas. Kita vertus, Vyper turi labiau suvaržytą sintaksę. Jis nepalaiko pasirinktinių modifikatorių, sąsajų ar paveldėjimo.

Štai keletas specifinių abiejų kalbų sintaksių skirtumų.

„Vyper“ naudoja įtrauką, kad atskirtų kodo blokus, o „Solidity“ naudoja sulenktus skliaustus. Čia yra paprasta Vyper programa:

defbandymas() -> jokio:
jeigu x > 5:
#padaryk ką nors
Kitas:
#padaryk ką nors kita

Štai ta pati „Solidity“ programa:

funkcijabandymas() viešas{
if (x > 5) {
// ką nors padaryti
} Kitas {
// daryti kažkas Kitas
}
}

Kintamųjų ir funkcijų deklaravimas Solidity yra sudėtingesnis nei Vyper, nes turite nurodyti matomumą, saugojimo vietą ir kt. Čia yra paprasta programa, kuri apibrėžia kintamąjį ir funkciją Solidity:

sutartis MyContract {
// kintamojo deklaracija Solidity
uint256 viešas x;

// funkcijos deklaracija Solidity
funkcijamyFunc(uint256 _x) viešasgrįžta (uint256) {
// daryti kažkas su _x
grąžinti x;
}
}

Čia yra paprasta programa, kuri apibrėžia Vyper kintamąjį ir funkciją:

sutartis MyContract:
# kintamojo deklaracija Vyper
x: uint256

# funkcijos deklaracija Vyper
defmyFunc(_x: uint256) -> uint256:
# padaryti ką nors su _arg
grąžinti pats.x

„Vyper“ kodas paprastai yra šiek tiek lengviau skaitomas nei „Solidity“ kodas.

Išmanioji sutarties apsauga

Vyper užtikrina aukštą išmaniųjų sutarčių saugumo lygį. „Vyper“ turi mažiau funkcijų nei „Solidity“, todėl yra mažiau linkęs į saugumo grėsmes.

Solidity turi tokias funkcijas kaip paveldėjimas, tinkintų modifikatorių palaikymas ir išplėstiniai duomenų tipai, pvz., atvaizdavimas. Šios funkcijos nėra lengvai pasiekiamos „Vyper“, o neatsargus jų naudojimas „Solidity“ gali sukelti rimtų grėsmių saugumui.

Kalbos pritaikymas ir kūrėjo pažinimas

Solidity yra populiaresnis ir plačiau priimtas nei Vyper. „Solidity“ turi labai gerą bendruomenės palaikymą ir išteklius pradedantiesiems.

Kita vertus, „Vyper“ nėra plačiai priimtas ir jam trūksta bendruomenės palaikymo, todėl pradedantiesiems daug ką reikia išsiaiškinti patiems.

Jei dirbote su tokiomis programavimo kalbomis kaip Python, jums bus palyginti lengviau išmokti Vyper. Kita vertus, jei esate susipažinę su tokiomis programavimo kalbomis kaip Java ir C++, Solidity bus lengviau išmokti.

Dujų efektyvumas

Vyper sunaudoja mažiau dujų nei Solidity, nes Vyper sintaksė palengvina Ethereum virtuali mašina (EVM) Skaityti. Kadangi „Solidity“ sintaksė yra sudėtingesnė, su „Solidity“ sudarytos sutartys sunaudos daugiau dujų, taigi ir dėl to didesni Ethereum dujų mokesčiai.

Jei jūsų prioritetas yra saugių programų kūrimas naudojant mažiau dujų, „Vyper“ yra geriausias pasirinkimas. Kietumas paprastai yra mažiau efektyvus ir saugus dujoms nei Vyper dėl daugybės funkcijų, kurios gali padidinti dujų mokesčius. Jie taip pat gali padaryti jūsų sutartį linkusią į pažeidžiamumą.

Kokią kalbą turėtumėte naudoti „Ethereum“ programoms?

Apsvarstykite dviejų kalbų skirtumus ir nuspręskite vieną, atsižvelgdami į savo projekto reikalavimus ir savo pageidavimus. Vyper yra geresnis pasirinkimas išmaniosioms sutartims dėl aukšto lygio saugumo ir lengvesnės sintaksės. Kurdami sudėtingas programas atrasite „Vyper“ naudojimo neigiamą pusę, nes „Vyper“ turi mažiau funkcijų nei „Solidity“.

„Solidity“ yra patogus sudėtingiems projektams, o dėl nuolat augančios solidumo bendruomenės ir daugelio funkcijų „Solidity“ teikia pirmenybę. Tačiau, jei pasirinksite Solidity, turėsite dažnai tikrinti savo programą, kad pastebėtumėte klaidas ir saugos spragas.

Leiskite projekto specifikacijoms daryti įtaką jūsų pasirinkimui

Kalbos pasirinkimas kuriant Ethereum geriausiai priklauso nuo jūsų projektų savybių ir specifikacijų. „Vyper“ ir „Solidity“ turi privalumų ir trūkumų, todėl, atsižvelgdami į savo projektą, norėsite pasirinkti kalbą, kurios trūkumų galite lengvai išvengti.