Solidity, es el lenguaje de programación que empezó a hacer posible las DApps de Ethereum, al permitir a los desarrolladores una forma simple de efectuar complejas aplicaciones distribuidas que sacaran el máximo partido a la EVM de Ethereum.

El nombre de Solidity hace referencia a un lenguaje de alto nivel de tipado estático con el que se pueden programar smart contracts para la red de Ethereum. Su sintaxis es muy afín a la de lengaujes bien conocidos como C++ o bien Javascript. Solidity fue creado con el propósito de permitir la escritura de smart contracts sencillamente para la red Ethereum. Se trata de un lenguaje desarrollado para sacar el máximo a la Ethereum Virtual Machine, dejando la creación y desarrollo de smart contracts que puedan ser ejecutados de forma inmejorable en la EVM.

Para ello el programador puede desarrollar sus aplicaciones en un lenguaje fácil de emplear, leer y sostener a fin de que, al finalizar, el motor de Solidity transforme ese código fácil en el código máquina que la EVM comprenderá, un código máquina prácticamente imposible de comprender por una persona.

En esencia Solidity facilita el desarrollo de smart contracts sobre Ethereum y, si bien no es el único lenguaje, sí fue el primero, el más polivalente y sobre el que más contratos inteligentes hay desarrollado.

Logotipo de Solidity

Solidity, un lenguaje Turing Complete

La primordial característica de Solidity es que este lenguaje de programación es de tipo Turing Complete. Merced a Solidity y a su relación con la EVM los desarrolladores pueden efectuar programas que sean Turing Complete. Esto debido a que EVM tiene la capacidad de ejecutar cualquier código que sea definido por un desarrollador en el marco de sus capacidades.

Esto representa una enorme ventaja para la red Ethereum. Merced a EVM y Solidity los desarrolladores pueden programar acciones que entonces van a ser ejecutadas por la EVM de forma descentralizada en internet Ethereum. Mas esto asimismo implica que se debe contar con de un mecanismo de protección para eludir su mal empleo. Este mecanismo es conocido como Gas y sirve para eludir que el sistema pueda ser colapsado por la creación de bucles infinitos o bien otras acciones maliciosas. Este Gas marcha como el gasto computacional que acarrea procesar una transacción o bien un smart contract en internet.

El término se semeja por servirnos de un ejemplo a lo concebido por Adam Back con su sistema para batallar contra el spam e-mail, el HashCash.

Importancia y desarrollo de Solidity

Ethereum nació como una opción alternativa a la red Bitcoin. Su autor, Vitalik Buterin en su instante, planteó agregar un lenguaje tipo Turing Complete a la red Bitcoin. Puesto que estimaba que el lenguaje con el que fue desarrollado Bitcoin era deficiente para la evolución de la red. Mas al no percibir ninguna contestación por la parte de los desarrolladores, Buterin decidió crear y desarrollar su proyecto: Ethereum.

Hoy en día, Bitcoin y Ethereum son las redes más valiosas, conocidas y empleadas por la comunidad de las criptomonedas. Ocupando el primer y segundo sitio respectivamente. Sin embargo, Bitcoin y Ethereum tienen enormes diferencias. Por poner un ejemplo bitcoin la moneda de la red Bitcoin, fue creada como medio de pago y de resguardo de valor.  Al tiempo que Ethereum, fue desarrollada con el propósito de ser considerablemente más flexible y programable permitiéndole evolucionar con nuevas capacidades en el tiempo.

Esto merced a EVM y Solidity, las 2 herramientas que dejan a los desarrolladores sacar el mayor partido de Ethereum. Con Solidity, se facilita la labor de desarrollar aplicaciones distribuidas (DApps) o bien otras funciones que empleen los smart contracts.

El desarrollo de Ethereum comezó como una idea en la psique de Gavin Wood en dos mil catorce. La idea fue materializada por Christian Reitwiessner al lado de un equipo de trabajo. El resultado de este trabajo llevó a Solidity. Desde ese momento, el desarrollo de Solidity ha mantenido su evolución y actualmente se halla en la versión 0.7.4 del lenguaje (noviembre dos mil veinte).

Características

  1. Solidity es un género de lenguaje orientado a objetos (OO) como C++ y C#.
  2. Fue desarrollado particularmente para desarrollar aplicaciones para la red Ethereum. Con lo que solo corre en la blockchain Ethereum o bien derivadas compatibles.
  3. Una ventaja que tiene este lenguaje es que el código fuente de los programas que son efectuados con exactamente el mismo puede ser accedido en público desde la blockchain. Aun estando en bytecode, es posible descompilarlo y conseguir una muestra bastante clara del código fuente original.
  4. Solidity aguanta la herencia y la herencia múltiple, dotándolo de una enorme flexibilidad en el momento de programar elementos complejos.
  5. Este lenguaje asimismo da una serie de bibliotecas realmente útiles que facilitan la programación de los smart contracts, haciendo que el  código sea reutilizable y más fácil de sostener.

¿Cuánto sabes, criptonauta?

¿Solidity es el único lenguaje de programación libre para Ethereum y su EVM?

Entornos de desarrollos disponibles

Como prácticamente todo lenguaje de programación, Solidity puede explotar los beneficios de un ambiente integrado de desarrollo o bien IDE. En Ethereum, el IDE oficial es conocido como Remix. Este facilita  a los desarrolladores la creación de smart contract, al unísono que deja tener acceso al estado y propiedades de los smart contract ya creados. Además de esto cuenta con poderosas herramientas de corrección y análisis de código para asistir a los desarrolladores a depurar sus programas.

Remix asimismo puede ser ejecutado y utilizado de forma on line por medio de Mozilla Firefox o bien Google Chrome o bien de forma directa en nuestro PC. Y si bien este es el IDE oficial de Ethereum, asimismo hay otros ambientes compatibles con el lenguaje Solidity. Por poner un ejemplo, Ethereum Studio es un IDE especializado que da acceso a un ambiente completo de Ethereum por medio de un intérprete de comando conocido como shell.

  • Visual Studio Code mostrando el complemento de Solidity
  • Remix IDE de Ethereum

Así mismo, nos hallamos a Plugin de Solidity para IntelliJ IDEA, otro IDE creado de cara al desarrollo de programas informáticos compatible con Solidity. Atom es una herramienta editable que se puede emplear para personalizar cualquier cosa. Podemos hallar un bulto conocido como Etheratom que emplea la biblioteca web3.js para interaccionar con un nodo de Ethereum.

Otro IDE que podemos hallar es el Plugin Visual Studio, creado por Microsoft. Este deja la creación y desarrollo de smart contract por medio de un compilador de Solidity. Asimismo deja la creación de aplicaciones para Microsoft y aplicaciones webs modernas y servicios en la nube que utilicen su servicio Azure.