Wat is jouw ervaring met het gebruik van de programmeertaal Pony?

Beste antwoord

Ik ben programmeur bij Wallaroo Labs (www.wallaroolabs.com), waar we zijn geweest Pony gebruiken om Wallaroo te bouwen, ons raamwerk voor gegevensverwerking. Ik ben ook betrokken bij het werken aan de Pony-compiler.

Pony is een geweldige taal geweest voor het werken aan Wallaroo. Het type-systeem elimineert problemen zoals nul-pointerfouten, dus we kunnen erop vertrouwen dat als ons programma compileert, het niet zal crashen. De referentiemogelijkheden garanderen dat de gelijktijdige delen van onze programmas vrij zijn van dataraces. De compiler genereert snelle code en de garbage collector per actor geeft ons voorspelbaar lage staartlatenties. Al deze dingen samen hebben ons in staat gesteld een groot stuk software te bouwen dat zich gedraagt ​​zoals verwacht.

Pony kan een beetje intimiderend zijn voor beginners vanwege de typecontrole en het controleren van referentiemogelijkheden. De meeste Pony-programmeurs worstelen tot op zekere hoogte met deze dingen wanneer ze de taal beginnen te gebruiken, en voor kleine programmas met één acteur kunnen ze overdreven omslachtig lijken. Deze dingen worden echter waardevol naarmate uw programma in omvang en complexiteit groeit. Het typesysteem garandeert dat uw programma niet crasht omdat een object niet van het verwachte type was. Referentiemogelijkheden elimineren dataraces, die notoir moeilijk te vangen zijn tijdens het testen en erg pijnlijk om te debuggen. Je zult deze dingen niet per se waarderen als je bruisende buzz schrijft, maar ze zijn het verschil tussen succes en mislukking bij het bouwen van het soort complexe softwaresystemen waarop bedrijven zijn gebouwd.

Ik vind Pony lief spot zijn grote gebeurtenisgestuurde applicaties. Zoals ik eerder al zei, helpen het typesysteem en de referentiemogelijkheden om de complexiteit te beheersen, en Pony is gebaseerd op een actor-systeem, dat goed past bij gebeurtenisgestuurde architecturen. Het past mooi op de plek waar je zoiets als Node.js of Erlang / Elixir zou kunnen gebruiken, maar je krijgt de voordelen van typeveiligheid en native uitvoering.

De taal is nog nieuw, dus de standaardbibliotheek is vrij minimaal in vergelijking met andere talen. Enerzijds kan dit betekenen dat Pony niet goed bij uw project past. Aan de andere kant betekent het dat er veel mogelijkheden zijn voor mensen om bij te dragen.

Pony wordt actief ontwikkeld door vrijwilligers met een aantal verschillende achtergronden, dus het loopt niet het risico verlaten te worden omdat iemand verlaat het project of krijgt een nieuwe baan. Dit geeft het betere vooruitzichten op lange termijn dat talen die worden onderhouden door één persoon of bedrijf.

Ik heb een document dat ik update van tijd tot tijd met wat ik denk dat relevante punten zijn voor mensen die geïnteresseerd zijn in het bekijken van Pony. Het behandelt dingen waarvan ik denk dat ze belangrijk zijn.

Over het algemeen ben ik erg blij met mijn ponyervaring en ik zou mensen aanmoedigen om er wat tijd aan te besteden.

Antwoord

Ik denk dat Pony het antwoord is op alle problemen met Erlang (en Elixir) – meestal dat die talen zijn ontworpen voordat mensen beseften dat je een echt gelijktijdige taal kon bouwen zonder alle variabelen intern en de noodzaak om alles onveranderlijk te hebben (om ontwikkelaarsvriendelijke gelijktijdigheid te bewerkstelligen). Deze nieuwe ideeën maakten Pony zo snel als C ++, maar potentieel krachtig als Erlang. Voor mij lijkt het een heel futuristische versie van Erlang, wat iemand vandaag zou kunnen doen als ze Erlang helemaal opnieuw zouden moeten uitvinden. Rust is vergelijkbaar, maar ik zou een meer primitieve implementatie van dergelijke ideeën willen bepleiten (met zijn toestemmingssysteem). In Rust moet je nog steeds de hele tijd nadenken over threads en ander procesmanagement op systeemniveau, die moderne taal zou echt voor je moeten uitkomen. Of misschien is het eerlijker om te zeggen dat Rust een programmeertaal op systeemniveau is, en Pony is een niveau hoger dan dat, terwijl hij nog steeds erg snel is.

Helaas, omdat een of andere idiote IT-manager bij JP Morgan de services afwees contract van Causality vorig jaar (lees meer op https://www.linkedin.com/pulse/end-causality-constantine-goulimis ) – het bedrijf dat de taal ontwikkelde, ging oorspronkelijk failliet en topmensen gingen aan de slag voor andere bedrijven.

Van wat ik heb gezien, was het brein achter het hele Pony-verhaal Sylvan Clebsch, een heel slimme CS-man. Ik heb zijn videos gezien, en hij had dit echt kunnen lukken (het maken van het Erlang v2-platform, gebouwd op modernere ontwerpideeën voor programmeertalen).

De jongens die het overnemen van Sylvan en Causality zijn gewoon niet opgewassen tegen de taak.

Er is geen briljantheid meer in het hele project, en het eerste wat ze deden toen ze het project overnamen, was het plaatsen van een gedragscode, een SJW bullshit document ze specificeren alle manieren waarop je je moet houden aan hun idiote linkse ideologie voordat je deel kunt uitmaken van hun kleine groep.

Dit is letterlijk een van die momenten in technische ontwikkeling, waar de slechtste oplossing won vanwege bepaalde marktomstandigheden. De andere keer was dat Sun, met miljarden $ $ uit dot-com bubble, Java op de markt bracht als de oplossing voor allerlei problemen waarvoor het nooit was ontworpen.

Hoe dan ook, ik denk niet dat het echt gebruikt in de productie, behalve als een klein stukje code hier en daar, maar niet als een heel systeem – terecht want het levert niet echt op wat Sylvan en de weinige oorspronkelijke auteurs de hele taal (en later gedistribueerd platform) hadden voorgesteld zijn en doen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *