Qual è la tua esperienza nelluso del linguaggio di programmazione Pony?

Migliore risposta

Sono un programmatore presso Wallaroo Labs (www.wallaroolabs.com), dove siamo stati utilizzando Pony per costruire Wallaroo, il nostro framework di elaborazione dati. Sono anche coinvolto nel lavoro sul compilatore Pony.

Pony è stato un ottimo linguaggio per lavorare su Wallaroo. Il sistema dei tipi elimina problemi come gli errori del puntatore nullo, quindi possiamo essere sicuri che se il nostro programma viene compilato non andrà in crash. Le capacità di riferimento garantiscono che le parti simultanee dei nostri programmi siano libere da gare di dati. Il compilatore genera codice veloce e il garbage collector per attore ci offre latenze di coda prevedibilmente basse. Tutte queste cose insieme ci hanno permesso di costruire un grande pezzo di software che si comporta come previsto.

Pony può essere un po intimidatorio per i principianti a causa del controllo del tipo e della capacità di riferimento. La maggior parte dei programmatori di Pony lotta con queste cose in una certa misura quando iniziano a usare il linguaggio, e per piccoli programmi a singolo attore possono sembrare eccessivamente ingombranti. Queste cose diventano preziose, tuttavia, man mano che il tuo programma cresce in dimensioni e complessità. Il sistema di tipi garantisce che il programma non si arresti in modo anomalo perché un oggetto non era del tipo previsto. Le funzionalità di riferimento eliminano le gare di dati, che sono notoriamente difficili da rilevare durante i test e molto dolorose da eseguire il debug. Non apprezzerai necessariamente queste cose quando scrivi un fizz-buzz, ma sono la differenza tra il successo e il fallimento quando si costruiscono i tipi di sistemi software complessi su cui si basano le aziende.

Penso che Pony sia carino spot è grandi applicazioni guidate da eventi. Come accennato in precedenza, il sistema di tipi e le capacità di riferimento aiutano a gestire la complessità e Pony si basa su un sistema di attori, che è una buona scelta per le architetture guidate dagli eventi. Si adatta perfettamente al punto in cui potresti usare qualcosa come Node.js o Erlang / Elixir, ma ottieni i vantaggi della sicurezza dei tipi e dellesecuzione nativa.

Il linguaggio è ancora nuovo, quindi la libreria standard è piuttosto minimo rispetto ad altre lingue. Da un lato, questo potrebbe significare che Pony non sarà adatto al tuo progetto. Daltra parte, significa che ci sono molte opportunità per le persone di contribuire.

Pony è in fase di sviluppo attivo da parte di volontari con una serie di background diversi, quindi non è a rischio di essere abbandonato perché qualcuno lascia il progetto o ottiene un nuovo lavoro. Ciò offre migliori prospettive a lungo termine rispetto alle lingue gestite da una singola persona o azienda.

Ho un documento che aggiorno di tanto in tanto con quelli che penso siano punti rilevanti per le persone che sono interessate a dare unocchiata a Pony. Copre cose che penso siano importanti.

In generale sono stato molto soddisfatto della mia esperienza con Pony e incoraggerei le persone a dedicare un po di tempo a verificarlo.

Risposta

Penso che Pony sia la risposta a tutti i problemi con Erlang (ed Elixir) – principalmente che quei linguaggi sono stati progettati prima che le persone si rendessero conto che potevi costruire un linguaggio veramente concorrente senza dover copiare tutte le variabili interne e la necessità che tutto sia immutabile (al fine di ottenere una concorrenza amichevole per gli sviluppatori). Queste nuove idee hanno reso Pony veloce come il C ++, ma potenzialmente potente come Erlang. A me sembra una versione davvero futuristica di Erlang, quello che qualcuno potrebbe fare oggi se dovesse reinventare Erlang da zero. Rust è simile, ma direi unimplementazione più primitiva di tali idee (con il suo sistema di permessi). In Rust devi ancora pensare tutto il tempo ai thread e ad altre cose di gestione dei processi a livello di sistema, quel linguaggio moderno dovrebbe davvero risolvere per te. O forse è più giusto dire che Rust è un linguaggio di programmazione a livello di sistema e Pony è un livello superiore rispetto a quello, pur essendo ancora molto veloce.

Sfortunatamente, perché qualche idiota IT manager di JP Morgan ha rifiutato i servizi contratto da Causality lo scorso anno (ulteriori informazioni su https://www.linkedin.com/pulse/end-causality-constantine-goulimis ) – lazienda che stava sviluppando la lingua originariamente è fallita e le persone migliori hanno continuato a lavorare per altre società.

Da quello che ho visto, il cervello principale dietro lintera storia di Pony era Sylvan Clebsch, un ragazzo di CS davvero intelligente. Ho visto i suoi video e avrebbe potuto davvero farcela (realizzando la piattaforma “Erlang v2”, costruita su idee di design di linguaggi di programmazione più moderni).

I ragazzi che hanno preso il posto di Sylvan e Causality non sono allaltezza del lavoro.

Non cè più brillantezza nellintero progetto e la prima cosa che hanno fatto quando hanno rilevato il progetto è stata pubblicare un codice di condotta, un documento di cazzate di SJW specificando tutti i modi in cui devi conformarti alla loro idiota ideologia di sinistra prima di poter far parte del loro piccolo gruppo.

Questa è letteralmente una di quelle volte nello sviluppo tecnologico, in cui la soluzione peggiore ha vinto, a causa di determinate condizioni di mercato. Laltra volta è stata quando Sun, con miliardi di $$$ dalla bolla delle dot-com, ha commercializzato Java come soluzione per tutti i tipi di problemi per i quali non è mai stato progettato.

Comunque, non credo realmente utilizzato nella produzione tranne che come un piccolo pezzo di codice qua e là, ma non come un intero sistema – giustamente poiché è lontano dal fornire effettivamente ciò che Sylvan ei pochi autori originali immaginavano lintero linguaggio (e successivamente la piattaforma distribuita) essere e fare.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *