Ethereum

¿Qué es Solidity? Lenguaje de programación de Ethereum

Que es solidity

Ethereum es una plataforma que nos permite realizar muchas cosas, por un lado la posibilidad de crear aplicaciones descentralizadas y por el otro ICO, pero por sobre todas las cosas es un potente sistema de contratos inteligentes.

Si no sabes lo que son, podemos decir brevemente que son piezas de software que existen sobre la cadena de bloques de Ethereum. Estos realizan una serie de tareas como enviar o recibir Ether o cualquier otro token de tipo ERC-20, entre otras cosas. Gracias a esto podemos crear una infinidad de casos de uso.

Probablemente no les este contando nada nuevo, y todo esto de los contratos inteligentes ya lo conozcan. Lo que quizás es interesante de aprender es cómo estos son creados. Al igual que los programas de ordenador, los contratos de Ethereum son escritos en un lenguaje de programación. En este caso, uno llamado Solidity.

Si bien en otras plataformas podemos utilizar otros lenguajes de programación para desarrollarlos, en Ethereum se requiere de Solidity en especial para hacerlo, y de esto va el articulo. Por lo que veremos algunos conceptos básicos de él y hablaremos acerca de todo lo que rodea a este fascinante lenguaje.

Lenguaje de programación Solidity

Los programadores profesionales día de hoy utilizar una gran cantidad de lenguajes populares como lo son C (incluyendo C++ y C#), Python, Java, Perl, Swift, etc. Estos sirven para crear aplicaciones para distintas plataformas, a diferencia de Solidity que solo fue creado con el propósito de ser utilizado en Ethereum, además de que sea uno muy sencillo de aprender para aquellos que están familiarizados con lenguajes de programación modernos.

Si has aprendido algo de Visual Basic cuando eras más joven, quizás tengas dificultades para comenzar con un lenguaje como Solidity. Sim embargo, aquellos que este familiarizados con Python o C, encontraran a este bastante sencillo de aprender.

Solidity, para alcanzar este objetivo, utiliza una serie de conceptos de programación que ya existen en otros lenguajes. En el encontramos variables, clases, operaciones aritméticas, manipulación de string, etc. Si bien en C se utiliza una especie de función principal denominada main con sus distintos argumentos, Solidity trabaja con contratos que son creados prácticamente de la misma forma.

Como veras, el código de Solidity es muy similar a uno de C++, C# o JavaScript. Para los desarrolladores de Python las cosas varían un poco, pero solo en el hecho de que las variables deben ser declaradas explícitamente, entre otras cosas.

Comparación con otros lenguajes a la hora de aprender

Cuando buscamos aprender sobre un determinado lenguaje de programación que esta muy extendido, lo más sencillo es anotarnos en un curso en algún instituto cerca de donde vivimos o comprar libros sobre el tema. En el caso de C# existe una vasta cantidad para elegir, mientras que las opciones de cursos son de los más variadas, incluyendo los online.

Por su parte, Solidity es relativamente nuevo, por lo que solo encontraras una pocos libros hablando sobre el tema. En Amazon hallaras algunos, lamentablemente no todos parecen ser la mejor opción para iniciarse con este lenguaje, además de que la mayoría esta escritos en ingles. Uno recomendable es el que ha escrito Andreas Antonopoulos, Mastering Ethereum, que tiene planes para ser traducido en Español.

Solidity ofrece una gran cantidad de documentación también que explica cómo funciona el código, algo que para un programado experimentado es de lo más útil. Sin embargo, si somos completamente nuevos en este lenguaje, y aun más si lo somos en cuanto a programación respecta, podemos sentirnos bastante perdidos sin nos metemos de lleno a leerla.

Lo ideal con este tipo de documentación es que sea utilizada como referencia, algo similar a cuando utilizamos un diccionario para buscar una palabra en particular. Siendo este recursos el menos recomendado si lo que buscamos es aprender un nuevo idioma y nos metemos de lleno a leérnoslo todo.

Uno podría dedicar tiempo y paciencia para potencialmente aprender a programar Solidity desde la documentación sin tener experiencia en la programación. Aun así, parece una tarea bastante difícil de emprender.

¿Qué tiene de especial?

Ya dijimos que Solidity es el lenguaje utilizado en Ethereum, una de las plataformas blockchain mas grandes del mundo. Esta cadena de bloques puede ser visto como una evolución de Bitcoin, por lo que muchos acaban confundiéndoselas.

Ambos proyectos hacen algo similar, en el hecho de que son blockchains que permiten que una criptomoneda funcione sobre ellos. Tenemos al bitcoin que es la moneda de Bitcoin y ether que es la de Ethereum. Las dos son las más valiosas del mundo, ocupado el primero y el segundo puesto según su capitalización de mercado.

Si bien esta es una enorme similitud, aquí es donde acaba y comienzan las diferencias. Por un lado la red de Bitcoin fue creada como un medio para intercambiar monedas digitales punto a punto. La criptomoneda de bitcoin fue creada como refugio de valor y como medio de intercambio sin barreras geográficas.

Por su parte, Ethereum fue creado para transferir cualquier tipo de cosas, no solo criptomonedas. Los ethers se pensaron para pagar por las transacciones en la plataforma en lugar de ser simplemente una moneda. Es el combustible de la red en lugar de ser el activo como ocurre con Bitcoin.

Debido a que es muy complicado crear una criptomoneda en la plataforma de Bitcoin, los desarrollares de Ethereum crearon un nuevo sistema. Este utiliza un lenguaje más flexible que el de este, que conocemos como Solidity.

¿Qué podemos hacer con Solidity?

Solidity es una parte muy importante de Ethereum, es el lenguaje que permite a los desarrolladores crear distintas cosas sobre este blockchain. Lo que podemos hacer es:

  • Dapps: El lenguaje de programación nos permite crear nuestras propias aplicaciones descentralizadas, llamadas dapps. Una forma de ver a estas dapps es trazando un paralelismo con la app de nuestro teléfono móvil. Podemos descargar todo tipo de aplicaciones de una tienda, desde juegos hasta de tipo bancaria o fitness. Las dapps son iguales. La principal diferencia es que no requieren de un intermediado, por tanto son descentralizadas.
  • Contratos inteligentes: Dentro de las dapps encontramos algoritmos que se conoce como contratos inteligentes. Estos ayuda a que las personas intercambie dinero, acciones, propiedad y cualquier cosa que tenga valor cuando se dan ciertas condiciones. Esto elimina la necesidad de pagarle a un tercero.
  • ICO:Los desarrolladores pueden crear sus propios tokens y lanzar lo que se conoce como una ICO. Con ellas, los tokens son ofrecidos a los inversores a cambio del dinero para financiar el proyecto.

Cursos sobre Solidity gratis

Para aquellos que ya conocen los conceptos más básicos de la programación, hay opciones mas divertidas que pasarse horas leyendo la documentación. Los cursos como el de Crypto Zombies son interesantes debido a que ofrece una plataforma muy completa para aprender de forma rápida este lenguaje.

Se nos otorga una tarea de programación corta que luego es corregida de forma instantánea en el mismo navegador. Quizás el mayor contratiempo del curso es que esta orientado a la creación de juegos, más precisamente a uno de zombis.

El primer capitulo por ejemplo toma alrededor de dos horas en completarse. Y si bien presenta algo de dificultad, sí tenemos motivación y persistencia podemos realizarlos sin mayores complicaciones. Lamentablemente, el curso no esta completo, y van liberando nuevos capítulos con el tiempo, alrededor de unas pocas semanas.

Una vez que hayamos completados todas las lecciones lo que obtendremos es un juego hecho en Solidity. Quizás no sea suficiente para un desarrollador profesional, pero al menos provee de una forma de introducirnos a varios conceptos principales de los contratos inteligentes y de la sintaxis de este.

Si no sabemos nada de programación, lo recomendable es tomar primer algún curso gratis en cualquier plataforma o blog. Con algunos conocimientos de Python o JavaScript será suficiente para poder tomar el de Crypto Zombies.

Si buscamos algo más avanzado, el sitio Blog Geeks posee una guía muy completa sobre este que deberías echarle un ojo.

Cursos pagos y certificaciones en Solidity

En los últimos años han aparecido una serie de sitios que ofrece aprender Solidity de forma pago. Por ejemplo tenemos BitDegree, que es una plataforma blockchain de educación donde los estudiantes pueden aprender todo tipo de habilidades tecnológicas a través de sus distintas cursos.

Una vez que los hayamos completados, recibimos un titulo online qué queda registrado en el blockchain de Ethereum para que, por ejemplo, un empleados luego lo verifique. Los hay gratis, pero la gran mayoría son de pagos y suelen tener precios muy variados pero a la vez baratos, por ejemplo el de Solidity solo cuesta $9,99.

También existen plataformas más tradicionales, como Udemy, que es un sitio que ofrece cursos de forma online mediante el formato de video. Actualmente encontramos una gran variedad de opciones con un precio de $11,99.

Por su parte, b9lab.com o frece también el suyo, que tiene un precio de €1.450. LA diferencia es su certificación online y la cantidad de horas de material que ofrece por ese precio. Se requieren unas 6 a 10 horas por semana y nueve de estas para completarlo, ofreciendo también una versión gratuita para que pruebes antes de pagar por el curso completo.

Competidores

Nuevas versiones de Solidity están siendo creadas todo los días, sin embargo, esto es motivo de controversia dentro de la comunidad. Al ser un nuevo lenguaje, aun esta sujeto a errores y a la necesidad de mas desarrollos y refinamiento antes de que su uso sea extendió.

La facilidad de cometer un fallo para los desarrolladores pueden provocar errores catastróficos en su código, haciendo que se pierda una enorme cantidad de dinero debido a contratos inteligentes mal programados, algo ya ocurrido en el pasado.

Los principales competidores de Ethereum en el área de contratos inteligentes son TronEOS, dos blockchains qué le siguen de cerca pero aun no son tan populares como este . Sin embargo ,cuando la competencia la llevamos directamente al lenguaje, hay claras diferencias que nos indican una feroz competencia entre ellos.

Por ejemplo, EOS tiene un kit de desarrollo de contratos inteligentes que ofrece grades capacidades competitivas. Siendo además, que el lenguaje utilizado para estos es C++ es uno muy extendido y del que podemos encontrar multitud de cursos.

Si la competencia presenta la alternativa de desarrollar estas herramientas con lenguajes populares, tienen una enorme ventaja sobre Ethereum. En cambio, sí lo que buscan es crear uno nuevo, quizás la batalla ya la tengan perdida, debido a que Solidity lentamente esta comenzando a expandirse.

¿Vale la pena aprender Solidity?

Si estas pensando aprender este nuevo lenguaje de programación para obtener un trabajo primero deberías pensar en qué otras habilidades necesitas. Si bien aprender sobre cómo trabajar con blockchain puede ser muy útil, muchas veces no es suficiente para un conseguir un trabajo. Existen ofertas para trabajar con Solidity, pero que requieren experiencia en cosas como NodeJS.

Si realmente quieres trabajar en esta industria por que consideras que tiene mucho futuro, bien puedes dedicar algunas horas a la semana para aprender Solidity y otras cosas necesarias. Puede que consigas una carrera muy provechosa en el sector.

Por el momento, Solidity es el principal lenguaje de programación de contratos inteligentes por que su plataforma es la segunda en valoración y la más extendida. Sin embargo, esto puede cambiar, y aunque parezca que es tiempo perdida aprender este lenguaje, puede ser muy útil si el día de mañana necesitas aprender uno nuevo, debido a todos el conocimiento que ya posees.

Acerca del autor

Criptotario

Me llamo Martin, soy ingeniero y apasionado de las inversiones y la tecnología. Me gusta mucho leer libros y todo aquello que me haga mejorar día a día.

Agrega un Comentario

Haz clic aquí para añadir un comentario

Suscribete

Precio de Criptomonedas