¿Cuál es tu experiencia con el uso del lenguaje de programación Pony?

La mejor respuesta

Soy programador en Wallaroo Labs (www.wallaroolabs.com), donde hemos estado usando Pony para construir Wallaroo, nuestro marco de procesamiento de datos. También estoy involucrado en trabajar en el compilador de Pony.

Pony ha sido un gran lenguaje para trabajar en Wallaroo. El sistema de tipos elimina problemas como errores de puntero nulo, por lo que podemos estar seguros de que si nuestro programa se compila no se bloqueará. Las capacidades de referencia garantizan que las partes simultáneas de nuestros programas estén libres de carreras de datos. El compilador genera código rápido y el recolector de basura por actor nos da latencias de cola predeciblemente bajas. Todas estas cosas juntas nos han permitido construir una gran pieza de software que se comporta como se esperaba.

Pony puede ser un poco intimidante para los principiantes debido a la verificación de tipos y la verificación de capacidad de referencia. La mayoría de los programadores de Pony luchan con estas cosas hasta cierto punto cuando comienzan a usar el lenguaje, y para programas pequeños de un solo actor pueden parecer demasiado engorrosos. Sin embargo, estas cosas se vuelven valiosas a medida que su programa crece en tamaño y complejidad. El sistema de tipos garantiza que su programa no se bloqueará porque un objeto no sea del tipo esperado. Las capacidades de referencia eliminan las carreras de datos, que son notoriamente difíciles de detectar en las pruebas y muy dolorosas de depurar. No necesariamente apreciarás estas cosas cuando escribas efervescencia, pero son la diferencia entre el éxito y el fracaso al crear los tipos de sistemas de software complejos sobre los que se basan las empresas.

Creo que Pony es dulce spot son grandes aplicaciones impulsadas por eventos. Como mencioné anteriormente, el sistema de tipos y las capacidades de referencia ayudan a administrar la complejidad, y Pony se basa en un sistema de actores, que se adapta bien a las arquitecturas controladas por eventos. Encaja perfectamente en el lugar donde puede usar algo como Node.js o Erlang / Elixir, pero obtiene los beneficios de la seguridad de tipos y la ejecución nativa.

El lenguaje aún es nuevo, por lo que la biblioteca estándar es bastante mínimo en comparación con otros idiomas. Por un lado, esto puede significar que Pony no encajará bien en su proyecto. Por otro lado, significa que hay muchas oportunidades para que las personas contribuyan.

Pony está siendo desarrollado activamente por voluntarios con diferentes antecedentes, por lo que no corre el riesgo de ser abandonado porque alguien abandona el proyecto o consigue un nuevo trabajo. Esto le brinda mejores perspectivas a largo plazo que los idiomas que mantiene una sola persona o empresa.

Tengo un documento que actualizo de vez en cuando con lo que creo que son puntos relevantes para las personas que están interesadas en ver a Pony. Cubre cosas que creo que son importantes.

En general, estoy muy contento con mi experiencia con Pony y animo a la gente a que dedique un tiempo a comprobarlo.

Responder

Creo que Pony es la respuesta a todos los problemas con Erlang (y Elixir), principalmente porque esos lenguajes se diseñaron antes de que la gente se diera cuenta de que se podía construir un lenguaje verdaderamente concurrente sin tener que copiar todas las variables internas y la necesidad de que todo sea inmutable (para lograr una simultaneidad amigable para los desarrolladores). Estas nuevas ideas hicieron que Pony fuera tan rápido como C ++, pero potencialmente poderoso como Erlang. A mí me parece una versión realmente futurista de Erlang, lo que alguien podría hacer hoy si tuviera que reinventar Erlang desde cero. Rust es similar, pero yo diría que una implementación más primitiva de tales ideas (con su sistema de permisos). En Rust, todavía tienes que pensar todo el tiempo en subprocesos y otras cosas de gestión de procesos a nivel del sistema, que el lenguaje moderno realmente debería resolver por ti. O tal vez sea más justo decir que Rust es un lenguaje de programación a nivel de sistemas, y Pony está un nivel por encima de eso, sin dejar de ser muy rápido.

Desafortunadamente, porque algún gerente de TI idiota de JP Morgan rechazó los servicios contrato de Causality el año pasado (lea más en https://www.linkedin.com/pulse/end-causality-constantine-goulimis ) – la empresa que estaba desarrollando el lenguaje originalmente quebró y la gente más importante pasó a trabajar para otras empresas.

Por lo que he visto, el cerebro principal detrás de toda la historia de Pony fue Sylvan Clebsch, un tipo de informática realmente inteligente. He visto sus videos y él podría haberlo logrado (haciendo la plataforma «Erlang v2», basada en ideas de diseño de lenguajes de programación más modernos).

Los chicos que reemplazaron a Sylvan y Causality simplemente no están a la altura del trabajo.

No hay más brillantez en todo el proyecto, y lo primero que hicieron cuando se hicieron cargo del proyecto, fue publicar un Código de Conducta, un documento de mierda de SJW especificando todas las formas en que tienes que cumplir con su idiota ideología de izquierda antes de poder ser parte de su pequeño grupo.

Este es literalmente uno de esos momentos en el desarrollo tecnológico, donde ganó la peor solución, debido a ciertas condiciones del mercado. La otra vez fue cuando Sun, con miles de millones de $$$ de la burbuja de las puntocom, comercializó Java como la solución para todo tipo de problemas para los que nunca fue diseñado.

De todos modos, no creo que sea realmente utilizado en la producción, excepto como una pequeña pieza de código aquí y allá, pero no como un sistema completo, con razón, ya que está lejos de cumplir con lo que Sylvan y los pocos autores originales imaginaron todo el lenguaje (y luego la plataforma distribuida) ser y hacer.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *