Ir al contenido principal

Comparativa Rholang vs Plutus vs Solidity

En anteriores post hablamos de esos lenguajes de programación que sirven para crear Smart Contract que se implementarán en sus respectivos blockchains:

Veamos una tabla:

Lenguaje Tipo de Smart Contract Blockchain principal
Plutus EUTXO, funcional, verificación formal Cardano
Rholang Modelo de procesos concurrentes RChain
Solidity EVM bytecode Ethereum y cadenas EVM

Cada uno de estos lenguajes está diseñado para escribir Smart Contracts dentro de un ecosistema blockchain específico, con su propia máquina virtual, su propio modelo de ejecución y sus propias reglas.

                   ┌──────────────────────────────────────────┐
                   │        Lenguaje de programación           │
                   └───────────────┬───────────────┬──────────┘
                                   │               │
                                   │               │
                                   ▼               ▼
                         ┌────────────────┐   ┌────────────────┐
                         │    Plutus      │   │    Rholang     │
                         └───────┬────────┘   └───────┬────────┘
                                 │                    │
                                 ▼                    ▼
                       ┌────────────────┐   ┌────────────────────┐
                       │ Smart Contract │   │   Smart Contract    │
                       │   (EUTXO)      │   │ (pi-calculus model) │
                       └───────┬────────┘   └────────┬───────────┘
                               │                     │
                               ▼                     ▼
                     ┌──────────────────┐   ┌──────────────────┐
                     │   Cardano (ADA)  │   │    RChain (REV)   │
                     └──────────────────┘   └──────────────────┘


                                   ┌────────────────┐
                                   │    Solidity    │
                                   └───────┬────────┘


                                 ┌──────────────────┐
                                 │ Smart Contract   │
                                 │     (EVM)        │
                                 └────────┬─────────┘


                     ┌──────────────────────────────────────────────┐
                     │ Ethereum, Polygon, BNB Chain, Avalanche,     │
                     │ Arbitrum, Optimism, Fantom, Cronos, etc.     │
                     └──────────────────────────────────────────────┘

Las características de cada uno son las siguientes:

Plutus (Cardano)

  • Basado en Haskell (funcional puro). Fuerte énfasis en seguridad formal y verificación matemática. 
  • Modelo UTXO extendido (EUTXO), ideal para contratos deterministas. 
  • Más complejo de aprender, pero más seguro por diseño.

Mejor para:

  • Aplicaciones donde la seguridad es crítica. 
  • Protocolos financieros con alto riesgo. 
  • Equipos que valoran verificación formal y matemáticas

Solidity (Ethereum, EVM chains)

  • Lenguaje dominante del ecosistema Web3. 
  • Gran comunidad, tooling maduro, miles de librerías. 
  • Compatible con todas las cadenas EVM (Polygon, BNB, Avalanche, Arbitrum, Optimism…). 
  • Más flexible, pero más propenso a errores si no se programa con cuidado.

Mejor para:

  • DApps generalistas. 
  • Proyectos que necesitan adopción rápida. 
  • Equipos que buscan ecosistema, librerías y auditorías disponibles.

Rholang (RChain)

  • Lenguaje basado en el cálculo de procesos (pi-calculus). 
  • Extremadamente orientado a concurrencia, escalabilidad y paralelismo. 
  • Menos conocido, ecosistema pequeño. 
  • Muy fuerte en modelos formales, pero con poca adopción comercial.

Mejor para:

  • Aplicaciones que requieren paralelismo masivo. 
  • Investigación académica o proyectos experimentales. 
  • Equipos que buscan un modelo matemático de concurrencia.

Veamos un sencillo diagrama que nos permite visualizar la prioridad de uso de cada uno de éstos lenguajes:

                          ┌──────────────────────────────┐
                          │ ¿Qué prioriza tu proyecto?   │
                          └───────────────┬──────────────┘

        ┌─────────────────────────────────┼─────────────────────────────────┐
        │                                 │                                 │
        ▼                                 ▼                                 ▼
┌──────────────────┐            ┌──────────────────┐             ┌────────────────────┐
│ Seguridad formal  │            │ Ecosistema grande │             │ Concurrencia masiva │
│ Verificación      │            │ Herramientas      │             │ Paralelismo         │
│ Matemática        │            │ Adopción rápida   │             │ Modelo pi-calculus  │
└───────┬──────────┘            └─────────┬────────┘             └──────────┬─────────┘
        │                                   │                                 │
        ▼                                   ▼                                 ▼
┌───────────────┐                 ┌──────────────────┐              ┌──────────────────┐
│     PLUTUS     │                 │     SOLIDITY     │              │     RHOLANG      │
│ (Cardano)      │                 │ (Ethereum/EVM)   │              │ (RChain)         │
└───────────────┘                 └──────────────────┘              └──────────────────┘

Si alguien quisiera aprender a programa en cualquiera de estos lenguajes debería tomar en cuenta la oferta laboral.

Tabla comparativa en función a la oferta laboral

Lenguaje Demanda laboral Ecosistema Dificultad Comentario
Solidity ⭐⭐⭐⭐⭐ (altísima) Ethereum + EVM Media El estándar de la industria.
Plutus ⭐⭐ Cardano Alta Nicho académico/financiero.
Rholang RChain Alta Ecosistema muy pequeño.

Concluyendo:

Plutus como Rholang son relativamente más modernos, pero Solidity ya está consolidado y tiene una mayor comunidad.

Enlaces:

https://developers.cardano.org/
https://rholang.org/
https://www.soliditylang.org/



Comentarios

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...