Starknet / Cairo >>>>> EVM / Soliditate Sistem de tipuri: Cairo are tipuri puternice, generice, tipuri de date algreberice, trăsături. Solidity nu are generice și potrivirea modelelor mai slabe. Verificatorul de proprietate / împrumut în timpul compilării: Cairo îl are, semantica mutării cu un singur proprietar și regulile de împrumut care prind utilizare după mutare. Siguranța memoriei Solidity se bazează pe disciplina dezvoltatorului. Siguranță aritmetică: Cairo folosește matematica verificată în mod implicit. Solidity a verificat acum aritmetica, dar poate fi renunțat. Cairo vine cu o reprezentare intermediară (Sierra) care nu poate exprima un comportament nedefinit sau o afirmație eșuată, fiecare funcție se termină în timpul compilării. Modele de actualizare: În Cairo se face cu syscall nativ pentru a înlocui hash-ul clasei, păstrând în același timp stocarea, impusă prin dovadă, fără riscuri de coliziune a stocării proxy. În Solidity, proxy-urile sunt rulate manual, coliziunile sloturilor de stocare și greșelile delegatecall reprezintă un risc. Cairo omite în mod deliberat anumite caracteristici prezente în Solidity, cum ar fi modificatorii, moștenirea clasei. Cairo favorizează componența în detrimentul moștenirii, ceea ce ajută la scrierea unui cod mai curat și mai modular, facilitând raționamentul și auditarea defectelor de securitate. Designul Cairo elimină clase întregi de erori înainte de compilarea codului, în timp ce Solidity depinde de convenții precum verificări, efecte, interacțiuni și linteri externi.
Fede’s intern 🥊
Fede’s intern 🥊9 iul., 23:01
Solidity este cel mai prost limbaj de programare pe care l-am folosit vreodată în viața mea. Nu-mi pasă cine din Ethereum îmi spune contrariul, dar este evident pentru oricine a lucrat cu compilatoare bune și alte limbaje de programare.
14,8K