Ce este mai bine, Smalltalk sau Pharo?

Cel mai bun răspuns

Poveste lungă.

TL; versiunea DR este următoarea din punctul meu de vedere:

  • Se pot citi cărțile originale Smalltalk și pot obține valoare din ele atunci când se utilizează Pharo, deci există cu siguranță un patrimoniu solid Smalltalk.
  • Pe partea de scule, există sunt câteva progrese în Pharo care îl fac destul de unic și diferit de Smalltalk 80. De exemplu:
  • GToolkit, cu inspectori super puternici
  • Spotter, permițând un mod cu adevărat interesant de a accesa elementele sistemul etc
  • Spec și Bloc pentru alte modalități de a face UI decât MVC și Morphic
  • Curățări și adăugiri la pachetele standard ale Squeak
  • Zinc, NeoJson, STON, … toate provin din comunitatea Pharo
  • Roassal2, pentru vizualizări, provenind și din comunitatea Pharo
  • VM, care este acum un OpenSmalltalk / opensmalltalk-vm efortul cu anumite zone Pharo este mai rapid, w ith un JIT mai bun, și un alt set de coduri de byt. Gestionarea memoriei cu redirecționarea indicatorului devine mult mai rapidă. Verificați Reglarea colectorului de gunoi Pharo , verificați rezumat în 7 puncte al managerului de memorie Spur , Ei bine, verificați totul de pe blogul respectiv, doar stâncă.
  • Avem trăsături. Avem XStreams. Avem Calypso. Avem Iceberg. Avem chestia criticilor. Avem compilatorul Opal. Avem Rubrik pentru editare text. Avem Ring ca model de cod. Putem inspecta AST pentru metode. Avem Beacon pentru un cadru de înregistrare a obiectelor. Avem WeakReferences de lucru. Avem UnifiedFFI. Avem 64 de biți. Avem combustibil. Avem Seaside3. Avem CommandLineHandlers grozavi. Avem Scale pentru lucru CLI. Avem Epicea pentru modificări de cod. Avem un API FileSystem reproiectat. Avem HelpSystem. Avem o infrastructură de lucru cu CI și Git și ce urmărire a problemelor etc. funcționează frumos împreună. Avem pilon pentru producerea cărților. Avem TaskIT pentru a lucra ușor cu viitorul. Avem un sistem decent KeyMapping. Avem un morphic curățat (încă mai avem de făcut). Avem OSWindow. Avem refactorizări și CodeRewriter. Avem MetaLinks cu Reflectivitate. Avem Atena pentru grafică. Avem asistență IoT.

Deci, da, este inspirat de Smalltalk. Dar cu siguranță nu Smalltalk-80. Este Pharo. Folosim un far ca siglă. Pentru că ne place când există o lumină puternică care deschide calea spre fericirea dezvoltatorilor.

Smalltalk este grozav.

Pharo este mai bun atunci când vine vorba de obținerea de rezultate în afaceri atunci când se utilizează tehnologia secolului 21 . Deoarece combinarea instrumentelor Pharo între ele duce la rezultate puternice.

Și da, sunt opinia mea.

Răspuns

Pharo este un dialect al Smalltalk. În sintaxă, semantică și implementare, Pharo este o versiune a Smalltalk-80 și o rudă foarte apropiată a dialectelor Squeak și Cuis. Toate cele trei provin direct din Smalltalk-80 v1 oferit de Apple de către Xerox ca parte a procesului de scriere „Smalltalk-80: limbajul și implementarea acestuia”, adică „cartea albastră”. Alan Kay a condus o echipă la Apple în anii 90, care a dezvoltat dialectul și implementarea Squeak începând cu Smalltalk-80 v1. Mai târziu Cuis și Pharo s-au bifurcat de la Squeak. Dar toți trei au trecut la Spur VM, o evoluție a JIT VM pe care în 2008/9/10 am derivat-o din versiunea originală VM Back-to-the-VM pentru Squeak.

Aceste trei dialecte „Cea mai apropiată rudă una de alta este VisualWorks Smalltalk, care coboară direct din Smalltalk-80 v2, versiunea finală dezvoltată la Xerox PARC. Toate cele patru se disting de alte Smalltalks prin contexte suport (înregistrările de activare de primă clasă ale Smalltalk) prin pseudo-variabila thisContext. Un context este o înregistrare de activare; este obiectul care deține starea unei metode de rulare sau închiderea blocului. O diferență de suprafață constă în faptul că familia Squeak acceptă tupluri (o construcție convenabilă Array) și o declarație de caz, în timp ce VisualWorks are un sistem de spațiu de nume și o formă literală BindingReference pentru accesarea obiectelor peste granițele spațiului de nume.

Un lucru unic despre Smalltalk și rudele sale apropiate Self and Newspeak este că sistemele se auto-definesc; clase, metode și contexte toate fiind obiecte de primă clasă definite în termeni de clase și metode. Acest lucru se extinde la compilatorul și depanatorul lor, la sistemul de excepții etc. Acest lucru permite Smalltalk să evolueze la un nivel de limbă. Tuples, declarația de caz și spațiile de nume au fost toate implementate în sistemele lor respective, fără a fi nevoie să modificați nicio mașină virtuală subiacentă. Această capacitate de a evolua face ca definirea exactă a ceea ce Smalltalk este oarecum problematică. Un Smalltalk sănătos este un Smalltalk în evoluție; o țintă în mișcare.

Unii, poate mulți, din comunitatea Pharo consideră că Smalltalk a primit un nume rău în anii 90, iar unii sunt nemulțumiți de lipsa de sprijin pentru dezvoltatori și se concentrează pe Etoys pe care echipa de cercetare a lui Alan Kay a avut-o, înțelegând întrucât Etoys era în centrul atenției echipei. În consecință, Pharo are un accent foarte diferit și dorește să progreseze departe de suportul multimedia Squech, care acum îmbătrânește, către o mai bună integrare cu ecosistemul de calcul actual, cum ar fi github, și spre reinventarea programării ca un proces exploratoriu mult mai dinamic; vezi, de exemplu, operația de vizualizare agilă de deasupra Rossal și setul de instrumente GT. Prin urmare, unii din comunitatea Pharo vor să nege că Pharo este un dialect al Smalltalk. Aceasta este o poziție pe care o înțeleg, dar o găsesc atât falsă în realitate (fără îndoială, în sintaxa, semantica și implementarea sa Pharo / este / o versiune a Smalltalk-80), cât și oarecum nerespectuoasă și nerecunoscătoare (Pharo este un mediu de programare excelent, atât pentru că are oameni minunați care lucrează excelent în el și sunt capabili să facă asta pentru că este un Smalltalk). Dar nu conteaza. Pharo se bazează pe meritele sale, un dialect puternic, în evoluție rapidă, al Smalltalk, care oferă beneficii radicale de productivitate programatorilor. Sper că vei arunca mai mult decât o scurtă privire asupra ei. Este „loc de plecare”.

Lasă un răspuns

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