Resumen Entrevista a Philip Wadler, IOHK PlutusFest 2018. Traducci贸n al espa帽ol 馃嚜馃嚫

Video Original publicado el 28 de Diciembre de 2018:

Link a IOHK: https://iohk.io/team/philip-wadler/

Mucha gente esta haciendo blockchains, Cardano es el producto de IOHK, tiene un mont贸n de funciones que a otros les falta, como por ejemplo el ser Prueba de Participaci贸n (Proof of Stake - PoS) en vez de Prueba de Work (Proof of Work - PoW). Desde Ethereum, lo que la gente busca en una blockchain son los contratos inteligentes. Plutus es el lenguaje de contratos inteligentes para la blockchain de Cardano. La mas antigua es Ethereum, la cual tiene grandes ideas incorporadas, pero tambi茅n, de forma regular, pierde decenas de millones de dolares , parte de ello se debe a lenguaje pobre, que alguien como yo, proveniente de los lenguajes de programaci贸n lo detectar铆a, pero los scams se logran aprovechar de esta falla.

Hay cosas que todav铆a no entendemos del todo, sabemos un mont贸n acerca de la construcci贸n de sistemas confiables. Una cosa que creo ayuda un mont贸n es construirlas es un lenguaje funcional, Plutus fue construido como un lenguaje funcional, es muy distinto, no a todos, pero a la mayor铆a. Esta construido en Haskell, donde hay 30 a帽os de experiencia, creemos que hay mucho que se puede hacer, las instituciones financieras utilizan haskell porque creen que pueden escribir programas para analizar los mercados financieros de forma mucho mas r谩pida y confiable, los bancos lo utilizan mucho. Tiene sentido aplicar esto a las blockchain, sabemos un mont贸n acerca de aplicar los M茅todos Formales (ver mas informaci贸n aqu铆) a los lenguajes funcionales, es decir, poner algo en un entorno y realizarle todos los ataques posibles y probar que ning煤n ataque, bajo cierto modelo, puede funcionar. Estamos en una posici贸n de poder empezar a hacer esas cosas, me gustar铆a decirte que ya todo esta resuelto, de forma perfecta pero no, todav铆a esta para ser investigado por la comunidad.

Los lenguajes de programaci贸n tienen distintos niveles de poder, algunos son muy limitados, otros pueden hacer cualquier cosa que la computadora pueda hacer, su nombre t茅cnico es "Turing complete", cualquier cosa que la computadora pueda hacer, cualquier lenguaje de programaci贸n que sea Turing complete, podr谩 realizarlo. Plutus es un lenguaje Turing complete, ese es mas poder del que necesitas, frecuentemente lo que quieres es lo que se denomina "domain specific language", algo que hace mas f谩cil hablar de las cosas en un dominio especifico, digamos escribiendo contratos financieros, una de las ventajas es que te permite realizar an谩lisis. Se ha realizado mucho trabajo, particularmente en el 谩rea de programaci贸n funcional, Simon Peyton Jones, trabajando con algunos coautores, present贸 un modelo muy sencillo de contratos financieros, conoc铆 muy bien del documento, era el presidente de la conferencia, introduje una nueva categor铆a llamada Pearl, esto no es una nueva investigaci贸n, es una bonita aplicaci贸n a algo ya conocido, la cual ha sido de gran influencia, uno de los an谩lisis que pueden hacerse al escribir el contrato es que los valores del mismo pueden depender de distintas cosas, como por ejemplo el precio semanal del Az煤car.

Es importante destacar que si tomamos los muy oscuros contratos que condujeron a la crisis de precios, program谩ndolos de esta forma y analiz谩ndolos, podr铆a haber habido menos problemas. Desafortunadamente, as铆 como los bancos no ten铆an la debida regulaci贸n, tampoco hubo una implementaci贸n de estas ideas, como deber铆a haber pasado. Pero las ideas han sido desarrolladas, puedes usarlas para valorar cosas y escribir acerca de las cosas. Lo bueno es que no necesitas a un programador para hacer esto. IOHK no es el 煤nico grupo siguiendo esto, tuvimos unas conversaciones con un par de grupos que est谩n escribiendo contratos muy similares, tambi茅n descendientes de los documentos originales de Simon Peyton Jones, han descubierto algo realmente importante, el hecho de no necesitar programadores para hacer esto, hacen que su gente hable con lo que ellos definen ingenieros financieros, quienes pueden ocuparse del mantenimiento de estos contratos, no necesitas un desarrollador de tiempo completo, puedes utilizar a alguien mas orientado a los negocios para que escriba lo que se requiera y confirmar que realiza lo deseado. Este tipo de lenguaje es muy valioso y Marlowe (ver emulador de Marlowe aqu铆)es nuestra contribuci贸n al espacio, b谩sicamente esta usando las mismas ideas, pero tendr谩s que hacer algunas cosas para adaptarlo a la blockchain, mencion茅 que el contrato pod铆a depender del precio del az煤car, ok 驴Como sabemos cual es el precio del az煤car si estamos en una blockchain? El nombre de esto es Oracle pero hay varias formas de hacerlo y en eso estamos trabajando. Marlowe ha sido dise帽ado tomando estas ideas y adapt谩ndolas a la blockchain Cardano, creo que es una gran idea porque si bien me encanta el poder de los lenguajes de programaci贸n, no siempre lo necesitas, entonces si puedes basarte en un lenguaje de dominio especifico (domain specific language), esa ser谩 la cosa que querr谩s hacer. Es muy interesante que trav茅s de distintas piezas de trabajo se haya llegado a los mismos componentes. Las computadoras no son tan viejas, as铆 como tampoco los programas de computaci贸n, los programas fueron desarrollados a finales de la segunda guerra mundial, muy interesantemente los modelos de computaci贸n fueron desarrollados apenas antes de eso, en los a帽os 30, por Alan Turing, al mismo tiempo, un modelo distinto pero equivalente fue desarrollado por Alonzo Church, y ese fue el primer lenguaje de programaci贸n funcional llamado C谩lculo Lambda. Una de las cosas que realmente me gusta del C谩lculo Lambda es que es mas viejo que las computadoras, se estaba buscando formulaciones para la l贸gica simb贸lica y a pesar de que la l贸gica simb贸lica ha estado presente por 2000 a帽os, desde los antiguos Griegos, la formulaci贸n que usamos ahora fue inventada en 1935, y s贸lo en 1969 nos dimos cuenta que lo inventado en 1932 por Church y lo inventado en 1935 son en realidad la misma cosa, pero nos tom贸 50 a帽os darnos cuenta de eso. Entonces, el hecho de que algo haya ocurrido independientemente dos veces para mi es realmente asombroso, sugiere que esto no es completamente arbitrario, si miras al lenguaje de Java o JavaScript, hay tanto en el que es arbitrario, el C谩lculo Lambda es muy peque帽o, nada en el es arbitrario, una evidencia de ello es que fue descubierto por dos personas distintas independientemente, es por ello que encuentro a los programas funcionales tan excitantes, no son arbitrarios, mas nos adentramos, mas poderoso parece ser.

Cuando comenzamos Haskell hab铆a un mont贸n de diferentes lenguajes funcionales, 茅ramos unas cuantas personas explorando las mismas t茅cnicas y hab铆a dos grandes familias llamadas strict y lazy, est谩bamos trabajando en la familia lazy, hab铆a entre 6 y 12 grupos de investigaci贸n, cada uno haciendo su propio trabajo hasta que alguien dijo que quiz谩s ser铆a mejor si todos trabajaran juntos. Estos grupos se juntaron, se estandariz贸 un lenguaje al cual llamamos Haskell, hab铆a 4 editores del lenguaje, John Hughes, Paul Hudak, Simon Peyton Jones y yo y un grupo mayor que contribuia con ideas, fue extremadamente productivo. Gente trabajando en este rinc贸n del espacio se ha vuelto extremadamente exitosa en t茅rminos acad茅micos, pero es muy interesante que tu contin煤es haciendo algo por 30 a帽os y te des cuenta que ya no es algo solamente acad茅mico, durante este tiempo le hemos ense帽ado a un mont贸n de estudiantes, muchos de los cuales han salido al mundo y dicho que quieren utilizarlo para que las cosas realmente se hagan. Como ya mencion茅, ahora es muy usado por los bancos, fu茅 elegido por IOIK y por otras firmas de criptomonedas como forma de construir software del que puedes tener alta seguridad pero igualmente puedes construir r谩pido. La historia de hechos independientes que ocurren dos veces se repite a lo largo del tiempo, en este caso, en sucesos independientes se lleg贸 a la siguiente extensi贸n natural del C谩lculo Lambda, que es lo que quisieras hacer si tuvieras un lenguaje tipificado (typed language), donde lo mas importante es poder parametrizar sobre esas tipificaciones, digamos que tienes una rutina de clasificaci贸n, es una lista de cosas, donde hay una relaci贸n de orden y eso clasifica la lista, ok 驴una lista de que? Se pueden parametrizar listas de editores, listas de listas, etc y es lo que se llama C谩lculo Lambda Polim贸rfico (Polimorphic Lambda Calculus), es un sistema muy simple, como el C谩lculo Lambda y eso es lo que usamos para Plutus Core, no hay nada mas, es exactamente el sistema que fue descubierto independientemente por dos personas distintas, hace 45 a帽os atr谩s y podemos usar exactamente eso para lo que estamos haciendo.

Antes, las charlas eran solamente acad茅micas, pero hace aproximadamente una d茅cada me encontr茅 siendo invitado cada vez mas a conferencias de desarrolladores, para mi es muy excitante ver estas comunidades de gente interesadas en los lenguajes funcionales, con los que han realizado cosas asombrosas. El mundo t茅cnico se remonta al Renacimiento, pero solo tenemos las computadoras entre nosotros hace menos de 100 a帽os, es muy emocionante ver como esto empieza a salir al mundo y ver lo que la gente hace con ello. En este momento muy poca gente esta siendo entrenada en lenguajes de programaci贸n, pero todo el mundo lo ser谩 en el futuro. IOHK esta haciendo un fenomenal trabajo contribuyendo a estas comunidades, est谩n dirigiendo un numero de escuelas, tuve la oportunidad de hablar en una de ellas en Barbados (ver link aqu铆), entrenando a una nueva generaci贸n de gente, pronto habr谩 otra en Etiop铆a, tambi茅n es importante la comunidad espec铆fica que IOHK esta creando, las cuales interactuar谩n muy bien entre si, IOHK es un muy buen ciudadano de esta comunidad, contribuye mucho manteniendo a Haskell como un desarrollo en crecimiento, haciendo que sea mas f谩cil para la gente utilizarlo, tanto del lado de desarrollo t茅cnico como de educaci贸n.

2 Likes