Ponerse al día con el desarrollo de Ethereum es bastante complicado, pero el idioma que elija es una decisión importante. Asegúrate de planificar en consecuencia.
Ethereum es una de las mayores plataformas de blockchain. Puede usarlo para crear aplicaciones descentralizadas, contratos inteligentes y organizaciones autónomas descentralizadas (DAO).
Necesitará un lenguaje para programar, para construir sobre la cadena de bloques de Ethereum. Aunque tiene muchas opciones para el desarrollo de Ethereum, Solidity y Vyper son las más populares.
El lenguaje de programación Solidity
Solidity es un lenguaje de programación de alto nivel muy popular que se utiliza para el desarrollo de Ethereum. Es un lenguaje orientado a objetos con un ecosistema completo de bibliotecas que puede usar para crear aplicaciones complejas. Solidity comparte algunas similitudes con JavaScript con respecto a la escritura estática, expresiones y palabras clave, y programación orientada a objetos. Aquí hay un sencillo Hola Mundo programa en Solidez:
// SPDX-License-Identifier: MIT
pragmasolidez ^0.8.18;
contrato holamundo {
// Crearfunciónadevolver"Hola Mundo"
funciónHola Mundo() públicopurodevoluciones (cadena de memoria) {
devolver"Hola Mundo";
}
}
El programa anterior define un Hola Mundo() función. El Hola Mundo() la función devuelve una cadena; en este caso, la frase "Hola mundo". Este es el resultado de ejecutar el programa Hello World en el Remezclar IDE:
¿Qué es el lenguaje de programación Vyper?
Vyper es un lenguaje más nuevo para el desarrollo de Ethereum. Fue lanzado en 2018; Al igual que Solidity, Vyper es un lenguaje tipificado estáticamente.
Vyper está escrito en la misma sintaxis que usa el lenguaje de programación Python, que es más simple que el código de Solidity. El lenguaje se centra en la seguridad de los contratos inteligentes. Aquí hay un sencillo Hola Mundo programa escrito en Vyper:
# @versión >=0.2.16
@externo
@vista
# definir una función que devuelve una cadena
definitivamenteHola Mundo() -> Cadena[24]:
devolver"¡Hola Mundo!"
Al igual que el ejemplo de Solidity, este programa define un Hola Mundo() Función que devuelve una cadena. En este caso, la función devuelve ¡Hola Mundo!
Este es el resultado de ejecutar el programa Vyper Hello World en Remix:
Diferencias entre solidez y Vyper
Aunque Solidity y Vyper tienen casos de uso similares, existen diferencias entre los lenguajes que querrá considerar al elegir un lenguaje para el desarrollo de Ethereum.
Aquí hay algunas diferencias entre Solidity y Vyper.
Sintaxis del lenguaje
Vyper tiene una sintaxis simple, mientras que Solidity tiene una sintaxis compleja similar a C++. La sintaxis de Solidity facilita a los desarrolladores la creación de aplicaciones sofisticadas. Vyper, por otro lado, tiene una sintaxis más restringida. No admite modificadores personalizados, interfaces ni herencia.
Aquí hay algunas diferencias específicas entre las sintaxis de ambos lenguajes.
Vyper usa sangría para delimitar bloques de código, mientras que Solidity usa llaves. Aquí hay un programa Vyper simple:
definitivamenteprueba() -> ninguno:
si X > 5:
# hacer algo
demás:
# hacer algo más
Aquí está el mismo programa en Solidity:
funciónprueba() público{
si (x > 5) {
// hacer algo
} demás {
// hacer algo demás
}
}
La declaración de variables y funciones en Solidity es más compleja que en Vyper porque debe especificar la visibilidad, la ubicación de almacenamiento, etc. Aquí hay un programa simple que define una variable y una función en Solidity:
contrato MiContrato {
// declaración de variables en Solidity
uint256 público X;
// declaración de función en Solidity
funciónmiFunc(uint256 _x) públicodevoluciones (uint256) {
// hacer algo con _X
devolver X;
}
}
Aquí hay un programa simple que define una variable y una función en Vyper:
contrato MiContrato:
# declaración de variables en Vyper
x: uint256
# declaración de función en Vyper
definitivamentemiFunc(_x: uint256) -> uint256:
# hacer algo con _arg
devolver yo.x
El código Vyper es generalmente un poco más fácil de leer que el código Solidity.
Seguridad de contrato inteligente
Vyper garantiza un alto nivel de seguridad para los contratos inteligentes. Vyper tiene menos funciones que Solidity, lo que lo hace menos propenso a las amenazas de seguridad.
Solidity tiene funciones como herencia, soporte para modificadores personalizados y tipos de datos avanzados como asignaciones. Estas características no están fácilmente disponibles en Vyper, y usarlas sin cuidado en Solidity puede causar serias amenazas a la seguridad.
Adopción del lenguaje y familiaridad con el desarrollador
Solidity es más popular y ampliamente aceptado que Vyper. Solidity tiene muy buen soporte comunitario y recursos disponibles para principiantes.
Por otro lado, Vyper no es ampliamente aceptado y carece del apoyo de la comunidad, por lo que los principiantes deben resolver muchas cosas por sí mismos.
Si ha trabajado con lenguajes de programación como Python, le resultará relativamente más fácil aprender Vyper. Por otro lado, si está familiarizado con lenguajes de programación como Java y C++, encontrará que Solidity es más fácil de aprender.
Eficiencia de Gas
Vyper consume menos gas que Solidity porque la sintaxis de Vyper hace que sea más fácil para el Máquina virtual Ethereum (EVM) leer. Dado que Solidity tiene una sintaxis más compleja, los contratos escritos con Solidity consumirán más gas y, por lo tanto, darán como resultado tarifas de gas Ethereum más altas.
Si su prioridad es crear aplicaciones seguras con menos gas, Vyper es su mejor opción. Por lo general, Solidity es menos eficiente y seguro que Vyper debido a sus muchas características que pueden aumentar las tarifas de gas. También pueden hacer que su contrato sea propenso a vulnerabilidades.
¿Qué idioma debe usar para las aplicaciones de Ethereum?
Considere las diferencias entre los dos idiomas y decida uno según los requisitos de su proyecto y sus propias preferencias. Vyper es una mejor opción para los contratos inteligentes debido a su seguridad de alto nivel y su sintaxis más sencilla. Descubrirá la desventaja de usar Vyper al crear aplicaciones complejas, ya que Vyper tiene menos funciones que Solidity.
Solidity es útil para proyectos complejos, y la comunidad de Solidity en constante crecimiento y muchas características hacen que Solidity sea preferible. Sin embargo, si elige Solidity, deberá auditar su aplicación con frecuencia para detectar errores y vulnerabilidades de seguridad.
Permita que las especificaciones de su proyecto influyan en su elección
Su elección del lenguaje para desarrollar en Ethereum depende de las características y especificaciones de sus proyectos. Vyper y Solidity tienen sus ventajas y desventajas, por lo que, en función de su proyecto, querrá elegir un idioma cuyas desventajas pueda evitar fácilmente.