Starknet / Cairo >>>>> EVM / Solidez Sistema de tipos: Cairo tem tipos fortes, genéricos, tipos de dados algrábricos, traços. Solidity não tem genéricos e correspondência de padrões mais fraca. Verificador de propriedade / empréstimo em tempo de compilação: Cairo tem, semântica de movimento de proprietário único e regras de empréstimo que capturam uso após movimento. A segurança da memória do Solidity depende da disciplina do desenvolvedor. Segurança aritmética: Cairo usa matemática verificada por padrão. O Solidity agora verificou a aritmética, mas pode ser desativado. Cairo vem com uma representação intermediária (Sierra) que não pode expressar um comportamento indefinido ou uma declaração com falha, cada função é comprovadamente encerrada em tempo de compilação. Padrões de atualização: No Cairo, isso é feito com syscall nativo para substituir o hash de classe enquanto retém o armazenamento, imposto por prova, sem riscos de colisão de armazenamento proxy. No Solidity, os proxies são enrolados manualmente, as colisões de slots de armazenamento e os erros de chamada delegada representam um risco. Cairo omite deliberadamente certas características presentes no Solidity, como modificadores, herança de classe. O Cairo favorece a capacidade de composição em vez da herança, o que ajuda a escrever um código mais limpo e modular, facilitando o raciocínio e a auditoria de falhas de segurança. O design Cairo elimina classes inteiras de bugs antes que o código seja compilado, enquanto o Solidity depende de convenções como Verificações, Efeitos, Interações e linters externos.
Fede’s intern 🥊
Fede’s intern 🥊9 de jul., 23:01
Solidity é a pior linguagem de programação que já usei na minha vida. Não me importo com quem no Ethereum me diz o contrário, mas é óbvio para qualquer pessoa que tenha trabalhado com bons compiladores e outras linguagens de programação.
14,8K