Melhor resposta
Sou um programador da Wallaroo Labs (www.wallaroolabs.com), onde estivemos usando Pony para construir Wallaroo, nossa estrutura de processamento de dados. Também estou envolvido no trabalho do compilador Pony.
O Pony tem sido uma ótima linguagem para trabalhar no Wallaroo. O sistema de tipos elimina problemas como erros de ponteiro nulo, portanto, podemos ter certeza de que, se nosso programa compilar, ele não travará. Os recursos de referência garantem que as partes simultâneas de nossos programas estejam livres de disputas de dados. O compilador gera código rápido e o coletor de lixo por ator nos dá latências de cauda previsivelmente baixas. Todas essas coisas juntas nos permitiram construir um grande pedaço de software que se comporta como esperado.
Pony pode ser um pouco intimidante para iniciantes por causa da verificação de tipo e verificação de capacidade de referência. A maioria dos programadores de pôneis luta com essas coisas até certo ponto quando começa a usar a linguagem, e para pequenos programas de um único ator, eles podem parecer muito complicados. Essas coisas se tornam valiosas, no entanto, à medida que seu programa cresce em tamanho e complexidade. O sistema de tipos garante que seu programa não travará porque um objeto não era do tipo esperado. Os recursos de referência eliminam as disputas de dados, que são notoriamente difíceis de detectar em testes e muito difíceis de depurar. Você não vai necessariamente apreciar essas coisas quando estiver escrevendo efervescência, mas elas são a diferença entre o sucesso e o fracasso ao construir os tipos de sistemas de software complexos nos quais as empresas são construídas. local são grandes aplicativos orientados a eventos. Como mencionei anteriormente, o sistema de tipos e os recursos de referência ajudam a gerenciar a complexidade, e o Pony é baseado em um sistema de ator, que é uma boa opção para arquiteturas baseadas em eventos. Ele se encaixa perfeitamente no local onde você pode usar algo como Node.js ou Erlang / Elixir, mas você obtém os benefícios de segurança de tipos e execução nativa.
A linguagem ainda é nova, então a biblioteca padrão é bastante mínimo quando comparado a outras línguas. Por um lado, isso pode significar que Pony não será uma boa opção para o seu projeto. Por outro lado, isso significa que há muitas oportunidades para as pessoas contribuírem.
O Pony está sendo desenvolvido ativamente por voluntários com várias origens diferentes, então não corre o risco de ser abandonado por causa de alguém sai do projeto ou consegue um novo emprego. Isso oferece melhores perspectivas de longo prazo do que os idiomas mantidos por uma única pessoa ou empresa.
Tenho um documento que atualizo de vez em quando com o que considero pontos relevantes para quem tem interesse em conferir o Pony. Abrange coisas que considero importantes.
Em geral, estou muito feliz com minha experiência com o Pony e encorajo as pessoas a passarem algum tempo verificando.
Resposta
Eu acho que Pony é a resposta para todos os problemas com Erlang (e Elixir) – principalmente porque essas linguagens foram projetadas antes que as pessoas percebessem que você poderia construir uma linguagem verdadeiramente simultânea sem ter que copiar todas as variáveis internamente e a necessidade de que tudo seja imutável (para obter a simultaneidade amigável ao desenvolvedor). Essas novas ideias tornaram o Pony tão rápido quanto C ++, mas potencialmente poderoso como Erlang. Para mim, parece uma versão realmente futurística de Erlang, o que alguém poderia fazer hoje se tivesse que reinventar Erlang do zero. Rust é semelhante, mas eu argumentaria uma implementação mais primitiva de tais idéias (com seu sistema de permissão). No Rust, você ainda precisa pensar o tempo todo sobre threads e outras coisas de gerenciamento de processos no nível do sistema, que a linguagem moderna deve resolver para você. Ou talvez seja mais justo dizer que Rust é uma linguagem de programação de nível de sistema, e Pony está um nível acima disso, embora ainda seja muito rápido.
Infelizmente, porque algum gerente de TI idiota do JP Morgan rejeitou os serviços contrato da Causalidade no ano passado (leia mais em https://www.linkedin.com/pulse/end-causality-constantine-goulimis ) – a empresa que estava desenvolvendo o idioma originalmente faliu e as principais pessoas trabalharam para outras empresas.
Pelo que vi, o cérebro principal por trás de toda a história da Pony foi Sylvan Clebsch, um cara de CS muito inteligente. Eu vi seus vídeos, e ele poderia realmente ter conseguido isso (criação da plataforma “Erlang v2”, construída sobre ideias de design de linguagem de programação mais moderna).
Os caras que substituíram Sylvan e Causality simplesmente não estão à altura do trabalho.
Não há mais brilho em todo o projeto, e a primeira coisa que eles fizeram quando assumiram o projeto foi postar um Código de Conduta, um documento de merda SJW especificando todas as maneiras pelas quais você deve obedecer à idiota ideologia esquerdista deles antes de fazer parte de seu pequeno grupo.
Este é literalmente um daqueles momentos no desenvolvimento de tecnologia, em que a pior solução venceu, devido a certas condições de mercado. A outra vez foi quando a Sun, com bilhões de $$$ da bolha pontocom, comercializou o Java como a solução para todos os tipos de problemas para os quais nunca foi projetado.
De qualquer forma, não acho que seja realmente usado na produção, exceto como um pequeno pedaço de código aqui e ali, mas não como um sistema inteiro – com razão, já que está longe de realmente entregar o que Sylvan e os poucos autores originais imaginaram a linguagem inteira (e a plataforma distribuída posteriormente) ser e fazer.