CIENCIA E INGENIERIA DE CARDANO - PARTE 2

3.-PECADO FUNCIONAL.
Moviendose dentro del territorio mas dogmatico, las herramientas, lenguajes y metodologias usados en el desarroollo de un software son mas artefactos de la providencia religiosa que objetos reales. El codigo fuente es como escribir prosa. Cada uno tiene una opinion de que es bueno- y lo que esta siendo comunicado es, con el tiempo, mas importante que como esta siendo comunicado.
debemos cometer el pecado de elegir un lado aceptando que podria ser el equivocado a los ojos de una persona. Sin embargo, hay al menos un cuerpo largo de justificaiones detras de nuestra eleccion.
Los protocolos que hacen posible Cardano estan siendo implementados en Haskell. El interface de usuario ha sido encapsulado en una bifurcacion de Electron que estamos llamando Daedalus.
Tenemos que elegir para el uso de la pagina web un modelo de arquitectura donde sea posible, y para nuestro base de datos, optamos por un almacén de valores-clave usando RocksDB.
desde un nivel de componente, este medio de abstraccion de mantenimiento es mucho mas simple, la mejor tecnologia puede ser reemplazado posteriormente con un pequeño esfuerzzo, y que nuestro grupo reunido esta concentrado en el exfuerzo de desarrollos en Github y Facebook.
Usando una WebGuI nos permitimos aprovechar la reccion y desarrollo de caracteristicas finales usando herramientas entendidas por cientos de miles de desarrolladores de JavaScript.
Usando una arquitecura web como medio este componente puede ser tratado como un servicio y ser sencible a este modelo de seguridad.
Eligiendo Haskell para el desarrollo del protocolo fue la eleccion mas dificil. Siempre en el mundo funcional, hay amplia aleccion. en el mas flexible e impuro lado, hay lenguajes como Clojure, Scala y F#, los cuales se benefician de las enormes librerias de Java y los ecosistemas .Net mientras preserva algunos de los aspectos basicos de la programacion funcional.
Hay muchos mas lenguajes orientados academicamente tal como Agda y Idris que tienen una coneccion cerrada para tecnicas que deberian permitir una fuerte verificacion de correcciones. Ellos aun carecen de una libreria razonable y tienen una deficiente experiencia de desarrollo.
Para Cardano, la eleccion bajo a ocaml y Haskell. Ocalm es un maravilloso lenguaje con una gran comunidad, buenas herramientas, una razonable experiencia de desarrollo y un gran legado en espacio de verificacion formal a traves de Coq. entonce porque elegimos Haskell?.

¿PORQUE HASKELL?
Los protocolos que componen Cardano son distribuidos, incluidos con criptografia y requiere un buen grado de tolerancia afallos. En los mejores dias, todavia habra actores Bizantinos, mensajes erroneos y clientes que causen inintencionadamente algunas formas de havok en la red.
Primero, buscamos un lenguaje que disfrute de un tipo fuerte desistema donde podamis facilmente usar herramientas tal como Quickcheck y mas tecnicas elaboradas tal como Refinement Types mientras tenga una razonable tolerancia de errores. Un modelo OTP estilo Erlang satisface esto ultimo mientras lenguajes como Haskell y Ocaml satisfacen los anteriores.

fuente

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now