Care este experiența dvs. cu utilizarea limbajului de programare Pony?

Cel mai bun răspuns

Sunt programator la Wallaroo Labs (www.wallaroolabs.com), unde am fost folosind Pony pentru a construi Wallaroo, cadrul nostru de procesare a datelor. Sunt, de asemenea, implicat în lucrul la compilatorul Pony.

Pony a fost un limbaj excelent pentru lucrul la Wallaroo. Sistemul de tip elimină probleme cum ar fi erorile null ale indicatorului, deci putem fi siguri că, dacă programul nostru se compilează, acesta nu se va prăbuși. Capacitățile de referință garantează că părțile concurente ale programelor noastre sunt libere de cursele de date. Compilatorul generează cod rapid și colectorul de gunoi per actor ne oferă latențe de coadă previzibile. Toate aceste lucruri împreună ne-au permis să construim o mare parte a software-ului care se comportă așa cum era de așteptat.

Pony poate fi puțin intimidant pentru începători datorită verificării tipului și a verificării capacității de referință. Majoritatea programatorilor Pony se luptă cu aceste lucruri într-o oarecare măsură atunci când încep să folosească limbajul, iar pentru programele mici cu un singur actor pot părea prea greoaie. Cu toate acestea, aceste lucruri devin valoroase, pe măsură ce programul dvs. crește în dimensiune și complexitate. Sistemul de tip garantează că programul dvs. nu se va prăbuși deoarece un obiect nu era de tipul așteptat. Capacitățile de referință elimină cursele de date, care sunt notoriu greu de prins în testare și foarte dureroase de depanat. Nu veți aprecia neapărat aceste lucruri atunci când scrieți fizz-buzz, dar acestea sunt diferența dintre succes și eșec atunci când construiți tipurile de sisteme software complexe pe care se bazează afacerile.

Cred că Pony este dulce spot este o aplicație amplă bazată pe evenimente. După cum am menționat mai devreme, sistemul de tip și capabilitățile de referință ajută la gestionarea complexității, iar Pony se bazează pe un sistem actor, care se potrivește bine pentru arhitecturi bazate pe evenimente. Se potrivește perfect în locul în care ați putea folosi ceva de genul Node.js sau Erlang / Elixir, dar beneficiați de siguranța tipului și de execuția nativă.

Limbajul este încă nou, deci biblioteca standard este destul de minim în comparație cu alte limbi. Pe de o parte, acest lucru poate însemna că Pony nu va fi potrivit pentru proiectul dvs. Pe de altă parte, înseamnă că există o mulțime de oportunități pentru oameni să contribuie.

Poneiul este în curs de dezvoltare activă de către voluntari cu mai multe medii diferite, deci nu riscă să fie abandonat deoarece cineva părăsește proiectul sau obține un nou loc de muncă. Acest lucru îi oferă perspective mai bune pe termen lung că limbile care sunt întreținute de o singură persoană sau companie.

Am un document pe care îl actualizez din când în când cu ceea ce cred că sunt puncte relevante pentru persoanele care sunt interesate să verifice Pony. Acoperă lucrurile care cred că sunt importante.

În general, am fost foarte mulțumit de experiența mea Pony și aș încuraja oamenii să petreacă ceva timp verificând-o.

Răspuns

Cred că Pony este răspunsul la toate problemele legate de Erlang (și Elixir) – mai ales că aceste limbi au fost concepute înainte ca oamenii să-și dea seama că puteți construi un limbaj cu adevărat concurent fără a fi nevoie să copiați toate variabilele din interior și necesitatea ca totul să fie imuabil (pentru a elimina concurența favorabilă dezvoltatorilor). Aceste noi idei l-au făcut pe Pony la fel de rapid ca C ++, dar potențial puternic ca Erlang. Mie mi se pare o versiune cu adevărat futuristă a Erlang, ceea ce ar putea face cineva astăzi dacă ar trebui să-l reinventeze de la zero. Rugina este similară, dar aș argumenta o implementare mai primitivă a unor astfel de idei (cu sistemul său de permisiuni). În Rust trebuie totuși să te gândești tot timpul la fire și alte lucruri de gestionare a proceselor la nivel de sistem, că limbajul modern ar trebui să-ți rezolve cu adevărat. Sau poate că este mai corect să spunem că Rust este un limbaj de programare la nivel de sistem, iar Pony este cu un nivel mai mare decât acesta, în timp ce este încă foarte rapid.

Din păcate, deoarece un idiot manager IT de la JP Morgan a respins serviciile contract de la Causalitate anul trecut (citiți mai multe la https://www.linkedin.com/pulse/end-causality-constantine-goulimis ) – compania care dezvoltă limba inițial a dat faliment și oameni de top au continuat să lucreze pentru alte companii.

Din ceea ce am văzut, creierul principal din spatele întregii povești a fost Sylvan Clebsch, un tip CS foarte inteligent. I-am văzut videoclipurile și el ar fi putut efectiv să facă asta (realizarea platformei „Erlang v2”, construită pe idei de proiectare a limbajului de programare mai moderne).

Băieții care au preluat rolul lui Sylvan și Causality pur și simplu nu sunt la îndemână.

Nu mai există strălucire în întregul proiect și primul lucru pe care l-au făcut când au preluat proiectul a fost să posteze un Cod de conduită, un document de rahat SJW specificând toate modurile în care trebuie să vă conformați ideologiei lor de stânga idioată înainte de a putea face parte din micul lor grup.

Acesta este literalmente unul dintre acele timpuri în dezvoltarea tehnologiei, unde soluția mai proastă a câștigat, din cauza anumitor condiții de piață. Cealaltă dată a fost când Sun, cu miliarde de $$$ din bule dot-com, a comercializat Java ca soluție pentru tot felul de probleme pentru care nu a fost conceput niciodată.

Oricum, nu cred că este folosit cu adevărat în producție, cu excepția unei mici bucăți de cod ici și colo, dar nu ca un întreg sistem – pe bună dreptate, deoarece este departe de a oferi efectiv ceea ce Sylvan și câțiva autori originali au imaginat întreaga limbă (și ulterior platforma distribuită) a fi și a face.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *