Quelle est votre expérience avec lutilisation du langage de programmation Pony?

Meilleure réponse

Je suis programmeur chez Wallaroo Labs (www.wallaroolabs.com), où nous sommes allés en utilisant Pony pour construire Wallaroo, notre cadre de traitement de données. Je travaille également sur le compilateur Pony.

Pony a été un excellent langage pour travailler sur Wallaroo. Le système de types élimine les problèmes tels que les erreurs de pointeur nul, nous pouvons donc être sûrs que si notre programme se compile, il ne plantera pas. Les capacités de référence garantissent que les parties simultanées de nos programmes sont exemptes de courses de données. Le compilateur génère du code rapide et le garbage collector par acteur nous donne des latences de queue faibles de manière prévisible. Toutes ces choses ensemble nous ont permis de créer un gros logiciel qui se comporte comme prévu.

Pony peut être un peu intimidant pour les débutants à cause de la vérification de type et de la vérification des capacités de référence. La plupart des programmeurs Pony ont du mal avec ces choses dans une certaine mesure lorsquils commencent à utiliser le langage, et pour les petits programmes à un seul acteur, ils peuvent sembler trop lourds. Ces éléments deviennent cependant précieux à mesure que votre programme prend de lampleur et de la complexité. Le système de types garantit que votre programme ne plantera pas car un objet n’était pas du type attendu. Les capacités de référence éliminent les courses de données, qui sont notoirement difficiles à détecter lors des tests et très pénibles à déboguer. Vous napprécierez pas nécessairement ces choses lorsque vous écrivez du fizz-buzz, mais elles font la différence entre le succès et léchec lors de la création des types de systèmes logiciels complexes sur lesquels les entreprises sont construites.

Je pense que Pony est gentil spot est de grandes applications événementielles. Comme je lai mentionné plus tôt, le système de type et les capacités de référence aident à gérer la complexité, et Pony est basé sur un système dacteurs, ce qui convient parfaitement aux architectures événementielles. Il sintègre parfaitement dans lendroit où vous pourriez utiliser quelque chose comme Node.js ou Erlang / Elixir, mais vous bénéficiez des avantages de la sécurité des types et de lexécution native.

Le langage est encore nouveau, donc la bibliothèque standard est assez minime par rapport aux autres langues. Dune part, cela peut signifier que Pony ne conviendra pas à votre projet. Dun autre côté, cela signifie que les gens ont de nombreuses occasions de contribuer.

Pony est activement développé par des bénévoles dhorizons différents, il ne risque donc pas dêtre abandonné parce que quelquun quitte le projet ou obtient un nouvel emploi. Cela donne de meilleures perspectives à long terme que les langues gérées par une seule personne ou entreprise.

Jai un document que je mets à jour de temps en temps avec ce que je pense être des points pertinents pour les personnes intéressées à découvrir Pony. Il couvre des choses que jestime importantes.

En général, je suis très satisfait de mon expérience Pony et jencourage les gens à passer un peu de temps à le vérifier.

Réponse

Je pense que Pony est la réponse à tous les problèmes avec Erlang (et Elixir) – principalement que ces langages ont été conçus avant que les gens ne se rendent compte que vous pouviez créer un langage vraiment concurrent sans avoir à copier toutes les variables en interne et la nécessité que tout soit immuable (afin dobtenir une concurrence conviviale pour les développeurs). Ces nouvelles idées ont rendu Pony aussi rapide que C ++, mais potentiellement puissant comme Erlang. Pour moi, cela semble être une version vraiment futuriste dErlang, ce que quelquun pourrait faire aujourdhui sil devait réinventer Erlang à partir de zéro. Rust est similaire, mais je dirais une implémentation plus primitive de telles idées (avec son système dautorisation). Dans Rust, vous devez toujours penser tout le temps aux threads et à dautres éléments de gestion des processus au niveau du système, ce langage moderne devrait vraiment être réglé pour vous. Ou peut-être est-il plus juste de dire que Rust est un langage de programmation de niveau système, et Pony est un niveau supérieur à celui-là, tout en étant toujours très rapide.

Malheureusement, parce quun directeur informatique idiot de JP Morgan a rejeté les services contrat de Causality lannée dernière (pour en savoir plus: https://www.linkedin.com/pulse/end-causality-constantine-goulimis ) – la société qui développait le langage à lorigine a fait faillite et Les meilleurs gens ont continué à travailler pour dautres entreprises.

Daprès ce que jai vu, le cerveau principal derrière toute lhistoire de Pony était Sylvan Clebsch, un gars vraiment intelligent de CS. Jai vu ses vidéos, et il aurait pu réussir ça (création de la plate-forme «Erlang v2», basée sur des idées de conception de langage de programmation plus modernes).

Les gars qui ont succédé à Sylvan et Causality ne sont tout simplement pas à la hauteur.

Il ny a plus déclat dans tout le projet, et la première chose quils ont faite lorsquils ont repris le projet, a été de publier un code de conduite, un document de conneries SJW en précisant toutes les façons dont vous devez vous conformer à leur idéologie de gauche idiote avant de pouvoir faire partie de leur petit groupe.

Cest littéralement lun de ces moments du développement technologique, où la pire solution lemporte, en raison de certaines conditions du marché. Lautre fois, cétait lorsque Sun, avec des milliards de $$$ provenant de la bulle Internet, a commercialisé Java comme la solution à toutes sortes de problèmes pour lesquels il navait jamais été conçu.

Quoi quil en soit, je ne pense pas que ce soit vraiment utilisé dans la production, sauf comme un petit morceau de code ici et là, mais pas comme un système complet – à juste titre car il est loin de livrer réellement ce que Sylvan et les quelques auteurs originaux ont imaginé le langage entier (et plus tard la plate-forme distribuée) être et faire.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *