Popularne tematy
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Starknet / Cairo >>>>> EVM / Solidity
System typów: Cairo ma silne typy, generyki, algebraiczne typy danych, cechy. Solidity nie ma generyków i ma słabsze dopasowanie wzorców.
Własność / kontroler pożyczek w czasie kompilacji: Cairo to ma, pojedyncza semantyka przenoszenia właściciela i zasady pożyczania, które wychwytują użycie po przeniesieniu.
Bezpieczeństwo pamięci w Solidity opiera się na dyscyplinie dewelopera.
Bezpieczeństwo arytmetyczne: Cairo domyślnie używa sprawdzanej matematyki. Solidity ma teraz sprawdzaną arytmetykę, ale można z niej zrezygnować.
Cairo dostarcza pośrednią reprezentację (Sierra), która nie może wyrażać nieokreślonego zachowania ani nieudanych asercji, każda funkcja jest udowodniona, że kończy się w czasie kompilacji.
Wzorce aktualizacji: W Cairo robi się to za pomocą natywnego wywołania systemowego, aby zastąpić hash klasy, zachowując pamięć, co jest egzekwowane przez dowód, bez ryzyka kolizji pamięci proxy.
W Solidity, proxy są ręcznie tworzone, kolizje slotów pamięci i błędy delegatecall stanowią ryzyko.
Cairo celowo pomija pewne funkcje obecne w Solidity, takie jak modyfikatory, dziedziczenie klas.
Cairo faworyzuje kompozycyjność nad dziedziczeniem, co pomaga w pisaniu czystszego, bardziej modularnego kodu, co ułatwia rozumienie i audytowanie pod kątem luk w zabezpieczeniach.
Projekt Cairo eliminuje całe klasy błędów przed skompilowaniem kodu, podczas gdy Solidity polega na konwencjach takich jak Checks Effects Interactions i zewnętrzne lintery.

9 lip, 23:01
Solidity to najgorszy język programowania, jakiego kiedykolwiek używałem w swoim życiu. Nie obchodzi mnie, kto w Ethereum mówi mi coś przeciwnego, ale to oczywiste dla każdego, kto pracował z dobrymi kompilatorami i innymi językami programowania.
14,79K
Najlepsze
Ranking
Ulubione