¿Qué lenguaje de programación aprender para proyecto-blockchain?

PhDfailer

Para una persona con nivel básico/muy básico de programación (Python), ¿Qué lenguaje recomendariais aprender si quiero iniciar un pequeño proyecto basado en la tecnología blockchain (aplicado a mi campo)?

He visto que ETH utiliza SOLIDITY, e incluso hay lenguajes sencillos como GO (de google) o SIMPLICITY.

Soltrac

Solidity para los smart contracts y react para El frontend es lo q se usa el 99% de las veces.

Edit: no se por q dije node para el frontend, queria decir react. Pero realmente como si lo haces a JavaScript a pelo, hay librerias en muchos lenguajes para llamar a smart contracts y conectar con el metamask del cliente

2 1 respuesta
PhDfailer

#2 gracias, voy a echarle un ojo a ese lenguaje, no sé si para un no profesional como yo será jodido meter cabeza,

Alguna recomendación? Libros, videos, etc

1 respuesta
covaga

cosmos y solana utilizan rust

Soltrac

#3 no es tanto el lenguaje como la metodología.
Solidity es un lenguaje orientado a objetos como cualquier otro. Si sabes Python sabes solidity.

Yo he escrito smart contracts sin haber cogido un manual, simplemente ir googleando la sintaxis.

Al final, es más el "saber programar" q el saber un lenguaje.

Si eres capaz de resolver tu problema en Python no tendrás problemas de resolverlo en solidity.

El usuario llama a una función creada en el smart contract de solidity. Si la función guarda valores en la Blockchain debe pagar gas por ello, si solo es de lectura es gratis y no debe pagar.

Es decir, si en mi smart contract tengo una función q guarda en una variable de estado (lo q sería una variable global en otro lenguaje), por ejemplo guarda en la variable "a" el valor 1 cuando se llama a esa función hay q pagar gas.

Si tengo una función q consulta el valor de "a" no se paga gas

1
tirutu

Madre mía... Que Solidity es tan fácil como Python, lo que hay que leer xDDD

Solidity es un campo de minas en el que a la mínima que te despistes tu Smart contract es un coladero.

1 respuesta
Soltrac

#6 ok, lo q tu digas xddddd.

Enseñame tu código en solidity anda.

Solidity no tiene ninguna culpa de los Bugs de humanos, si alguien comete un error cometería el mismo error en otro lenguaje de programación

1 respuesta
tirutu

#7 Lo siento, pero no lo digo yo, lo dice la comunidad de devs. Que afirmes que el lenguaje sea indiferente de cara a la efectividad de lo programado ya delata que no tienes mucha idea de lo que hablas.

La discusión no tiene mayor recorrido. Si está empezando con la programación que se olvide de desarrollar código para la blockchain y se centre en temas de web development para las dApps.

4 respuestas
covaga

#8 estas hablando con alguien que tiene su nodo y bot de liquidaciones....

Edit: además por aqui ayudo a otro mvidero a recuperar su dinero en un rugpull

1 1 respuesta
Fyn4r

#8 sabes programar?

Soltrac

#8 Que comunidad de devs chiquillo? Si no sabes ni de lo que estás hablando. Solidity es un lenguaje más simple que cualquier otro porque no deja de estar preparado para blockchain, con las limitaciones que tiene, no existen threads y por lo tanto no existe concurrencia.

Que te hayas visto un vídeo de youtube no te hace programador, cosa que yo sí soy.

El peligro está cuando tienes dinero ajeno en un smart contract y no dominas el concepto de la blockchain, programes en rust, en go, en .net o en solidity. Eso y que el código de un smart contract es público, lo que hace que los hackers lo auditen y encuentren vulnerabilidades. Pero insisto, el lenguaje es lo de menos.

Si el código del lado servidor de las páginas webs fuera público, tendríamos el triple de hackeos en el mundo web de los que existen hoy en día, vamos, estoy convencido.

covaga

#8 https://www.mediavida.com/foro/criptomonedas/hilo-zoo-oseznos-are-welcome-671494/68#2028

1 respuesta
eXtreM3

#12 y gana Soltrac por KO técnico.

GG

5
Lecherito

Es que de Solidity tampoco se le puede discutir mucho al Soltrac xD

tirutu

#9 Entonces lleva la percepcion distorsioanda por dominar el tema. Que le parezca que meterse con Solidity esta al nivel de meterse con Python no lo convierte en cierto, y yo desde luego no se lo recomiendo al OP. Ahora ya que haga lo que quiera, pero que no intente abarcar demasiado, o se centra en smart contracts o en front.

No se cual es exactamente el proyecto que tiene en mente, pero ya de cara a buscar empleo de esto, no coge nadie novatos y los mete a programar smart contracts. Te piden experiencia y controlar en temas de seguridad. En cambio para el frontend de las dApps es muy facil acceder. Por que sera, eh?

2 respuestas
MartiONE

#15 Deja de hacer el ridículo y cierra al salir

6
Soltrac

#15 Porque programar un smartcontract en el que tienes que guardar millones de dólares es algo muy serio, al igual que no van a coger al primer pringado para programar algo que no sea de blockchain donde tengas q guardar tanto dinero.

Tú has afirmado una cosa que no es, sobre el lenguaje de solidity. Yo te digo que es un lenguaje fácil, simplemente por la limitación que tiene las blockchain basadas en ethereum, no te estoy diciendo que leyendo 3 tardes pases a desarrollar el nuevo uniswap.

Hay mucho mundo, estoy empezando a leer incluso sobre blockchains que van a permitir código en paralelo, lo cual sube la dificultad exponencialmente en cuanto a seguridad. Ni se cual es el proyecto de #1, ni nada. Simplemente contesté una pregunta y te has llevado el tema por donde no es. La dificultad de no cometer un error de código programando una app de móvil o el próximo uniswap es la misma, el peligro es que si cometes un fallo en una aplicación de móvil que hace 3 tonterías no pasa nada, si lo cometes en una aplicación cuyo código es público y encima guardas millones de dólares de terceros sin ningún tipo de seguro.....

¿Entiendes por dónde voy? Solidity es fácil, lo es porque es un lenguaje orientado a objetos muy simple y muy limitado. El problema no es de solidity, el problema es que la mayoría de programadores no estamos acostumbrados a tener nuestro código abierto al mundo ni estamos acostumbrados a guardar millones de dólares de terceros. Por eso esa falsa percepción de la dificultad de programar en blockchain. El problema es del programador, de no aplicar la lógica, de no realizar tests unitarios de todas y cada unas de sus funciones, de no auditar códigos, etc. etc. Cosas que en el día a día de la mayoría, que programamos softwares de "mierda" donde si fallas generalmente no vas a perder millones, pues no nos preocupamos tanto.

9
Kike_Knoxvil

Soltrac acaba de hacer honor a su avatar, otra vez

R

A ver, por similitud en la sintaxis yo diría que vyper es mucho más parecido a python que solidity. Pero no solo eso, comparar un lenguaje tan tipado como puede ser solidity con python... ermmm... regular.

1 respuesta
Soltrac

#19 cierto, tampoco pretendía decir que Python es el lenguaje más parecido, sobre todo por el tipado.

Se ha hablado de Python porque #1 lo ha nombrado, no por otra cosa

1 respuesta
R

#20
Bueno, lo de "Si sabes Python sabes Solidity" te ha quedado un poco de caga sentencias.

Y ojo, te compro que un smartcontract pueda ser parecido a un objeto pero pfff excesivas diferencias si alguien es novato en programación y más viniendo de un lenguaje de scripting... ya no sólo el tipado que sea compilado y demás, el tema del consumo transaccional del contrato es un paradigma completamente nuevo respecto a la programación.

Cuando sabes varios lenguajes al final si puedes encontrar similitudes y hacer apaños chungueles en media tarde porque conoces estructuras de control básicas, algo de algorítmia y tal... pero creo que este está lejos de ser el caso.

1 respuesta
Soltrac

#21 nada de acuerdo, porque estamos con lo de siempre....el lenguaje de programación.

Yo nunca he escrito nada en Python y soy capaz de portar lo q haga falta a ello.

Y como yo, cualquiera que entienda que la programacion es resolver problemas, no aprender lebguajes. Actualmente tengo unos 10 smart contracts siendo usados sin haber ni siquiera leído la documentación entera de solidity. Y esto no es de chulear ni creerme mejor que nadie. Se trata de demostrar que escribir en Blockchain no es un juego para magos.

PhDfailer

Muchas gracias por las respuestas, y la interesante discusión.

Yo soy un completo noob, no me dedico a la programación pero si que me interesa y he aprendido algo por mi cuenta.

Mi proyecto sería algo modo hobby y ver si sale algo interesante, tengo clara la idea en la cabeza de lo que quiero y por qué pero ni de coña tengo el conocimiento de programación para llevarlo a la práctica, de ahí mi pregunta de si me conviene ahondar más la cabeza en python que es de lo que tengo conocimientos básicos o meterme directamente en SOLIDITY ya que @Soltrac ha comentado que es el más usado. No, no es una shitcoin piramidal para forrarme. Es descentralizar un modelo de negocio de mi campo basándose en blockchain para que se verifiquen las contribuciones de las distintas partes.

El caso es que me he puesto manuales y tutoriales de SOLIDITY y no me entero ni de un carajo, lo cual significa que mi base de programación no es suficiente ni para empezar. ¿Me renta más aprender las bases que me faltan en python y luego aprender a trasladarlo o me pongo con solidity a lo bruto?

1 respuesta
Soltrac

#23 si no te enteras es eso, que tu base no es suficiente, sigue con el lenguaje que conoces, escribe código, ve al foro de dev, plantéate un problema y resuelvelo, etc.

1 1 respuesta
PhDfailer

#24 Es lo que me temía que quería multiplicar sin saber sumar bien.

Si fuera rico contrataría un programador que le dé forma a la idea :psyduck:

1 respuesta
covaga

#25 hay grants o subvencionesx si la idea es buena, te dan el equipo o dinero

jbtwist92

Pues depende mucho de lo que quieras hacer, si es un proyecto pequeño y para tí, sabiendo python tiraría del framework py-substrate que es una adaptación a python del substrate original (framework bajo el que está hecho polkadot y que pretende sentar un estándar en la industria como framework para hacer blockchains)

Además si te pones que lo sabes en tu linkedin, te van a empezar a llover las ofertas de trabajo sin buscarlas siquiera

1
8 días después
B

Interesa el tema. Yo tengo conocimientos en programación, mucho JavaScript (react, node, mongo, etc). También en PHP y Python.

La cosa es que este mundo me llama la atención, pero claro, ni idea de cómo montar un proyecto aunque sea de prueba sobre criptos.

¿Algo para empezar? ¿Prácticas? ¿Lenguaje? ¿Librerías/Frameworks? ¿Curso recomendado?

Gracias

1 respuesta
covaga

#28 Esto te puede ayudar para los contratos de cosmos, se escriben en rust, así que supongo será mas dificil.

https://academy.terra.money/courses/cosmwasm-smart-contracts-i

Usuarios habituales

  • covaga
  • PhDfailer
  • Soltrac
  • Rinkes
  • Kike_Knoxvil
  • tirutu
  • Lecherito