Solidity

Solidity
Información sobre la plantilla
Solidity.png
Lenguaje de programación de alto nivel orientado a contratos inteligentes.
Última versión estableSolidity 0.8.1
GéneroLenguaje de programación
Sitio web
Sitio oficial de Solidity en Español

Solidity hace referencia a un lenguaje de programación de alto nivel tipado de manera estática que acepta, entre otras cosas, herencias, librerías y tipos complejos definidos por el usuario. Con él que se pueden programar smart contracts(contratos inteligentes) para la red de Ethereum. Su sintaxis es muy similar a la de lenguajes como C++ o JavaScript. Se trata de un lenguaje diseñado para sacar el máximo provecho a la Máquina Virtual de Ethereum (Ethereum Virtual Machine) por sus siglas en inglés EVM, permitiendo la creación y desarrollo de smart contracts que puedan ser ejecutados de forma óptima, es una de las piezas claves en el funcionamiento de la blockchain de Ethereum.

Historia

Solidity fue propuesto inicialmente en agosto de 2014 por Gavin Wood; el lenguaje lo desarrolló más tarde el equipo Solidity del proyecto Ethereum, dirigido por Christian Reitwiessner. Desde entonces, el desarrollo de Solidity ha mantenido su evolución y en febrero de 2021 se lanzó la útima versión estable del lenguaje siendo la 0.8.1.

Características

La principal característica de Solidity es que este lenguaje de programación es de tipo Turing Complete. Gracias a Solidity y a su relación con la EVM los desarrolladores pueden realizar programas que sean Turing Complete. Esto debido a que EVM posee la capacidad de ejecutar cualquier código que sea definido por un desarrollador dentro del marco de sus capacidades. Es un tipo de lenguaje orientado a objetos (OO) como C++ y C Sharp(C#). Una ventaja que posee este lenguaje es que el código fuente de los programas que son realizados con el mismo puede ser accedido públicamente desde la blockchain. Incluso estando en bytecode, es posible descompilarlo y obtener una muestra bastante clara del código fuente original. Solidity soporta la herencia y la herencia múltiple, dotándolo de una gran flexibilidad a la hora de programar elementos complejos. Además proporciona una serie de bibliotecas muy útiles que facilitan la programación de los smart contracts, haciendo que el código sea reutilizable y más sencillo de mantener.

Integraciones de Solidity disponibles

Según su web, este lenguaje tiene integraciones en:

Remix: Entorno integrado de desarrollo (IDE) basado en un navegador que integra un compilador y un entorno en tiempo de ejecución para Solidity sin los componentes orientados al servidor.

Ethereum Studio: Entorno integrado de desarrollo (IDE) especializado que proporciona acceso a un entorno completo de Ethereum a través de un intérprete de comandos (shell).

Plugin IntelliJ IDEA: Plugin de Solidity para IntelliJ IDEA (y el resto de IDEs de JetBrains).

Extensión de Visual Studio: Plugin para Microsoft Visual Studio que incluye un compilador de Solidity.

Paquete para SublimeText: Paquete para resaltar la sintaxis de Solidity en el editor Sublime text.

Etheratom: Plugin para el editor Atom que ofrece: resaltar la sintaxis, un entorno de compilación y un entorno en tiempo de ejecución (compatible con un nodo en segundo plano y con una máquina virtual).

Además de otros plugin y programas como Linter para Atom, Linter de Solium para Atom, Solium, Extensión para Visual Studio Code, Emacs Solidity (plugin para el editor Emacs que incluye resaltar la sintaxis y el reporte de los errores de compilación), Vim Solidity y Vim Syntastic.

Herramientas para Solidity

Dapp: Herramienta de construcción, gestión de paquetes y asistente de despliegue para Solidity.

Solidity REPL: Prueba Solidity al instante gracias a una consola de línea de comandos de Solidity.

solgraph: Visualiza el flujo de control de Solidity y resalta potenciales vulnerabilidades de seguridad.

evmdis: Desensamblador de la Máquina Virtual de Ethereum (EVM) que realiza análisis estáticos sobre el bytecode y así proporcionar un mayor nivel de abstracción que las operaciones brutas del EVM.

Doxity: Generador de documentación para Solidity.


Fuente