Co je lepší, Smalltalk nebo Pharo?

Nejlepší odpověď

Dlouhý příběh.

Verze TL; DR je z mého pohledu následující:

  • Můžete si přečíst původní knihy Smalltalk a získat z nich hodnotu při používání Pharo, takže určitě existuje solidní dědictví Smalltalk.
  • Na přední straně nástrojů je je několik pokroků v Pharo, díky nimž je docela jedinečný a odlišný od Smalltalk 80. Například:
  • GToolkit se super výkonnými inspektory
  • Spotter, což umožňuje opravdu zajímavý způsob přístupu k položkám systém atd.
  • Spec a Bloc pro jiné způsoby, jak dělat UI než MVC a Morphic
  • Vyčištění a doplňky ke standardním balíčkům Squeak
  • Zinc, NeoJson, STON,… vše pochází z komunity Pharo
  • Roassal2, pro vizualizace, také pochází z komunity Pharo
  • VM, který je nyní běžným OpenSmalltalk / opensmalltalk-vm snaha s konkrétními oblastmi Pharo je rychlejší, w s lepším JIT a další sadou bajtových kódů. Díky správě paměti s přesměrováním ukazatele se stává: mnohem rychlejší. Zkontrolujte Vyladění sběrače odpadků Pharo , zkontrolujte sedmibodové shrnutí správce paměti Spur , no, zkontroluj vše na tom blogu, jen to skáče.
  • Máme vlastnosti. Máme XStreams. Máme Calypso. Máme ledovec. Máme věc kritiků. Máme kompilátor Opal. Máme Rubrik pro úpravy textu. Máme Ring jako kódový model. Můžeme zkontrolovat AST na metody. Máme Beacon pro rámec protokolování objektů. Máme funkční WeakReferences. Máme UnifiedFFI. Máme 64 bitů. Máme palivo. Máme Seaside3. Máme skvělé CommandLineHandlers. Máme Scale pro práci s CLI. Máme Epicea pro změny kódu. Máme přepracované rozhraní FileSystem API. Máme HelpSystem. Máme fungující infrastrukturu s CI a Git a jaké sledování problémů atd., Které dobře fungují. Máme pilíř na výrobu knih. Máme TaskIT pro snadnou práci s futures. Máme slušný systém KeyMapping. Máme vyčištěnou morfiku (ještě více práce). Máme OSWindow. Máme Refactorings a CodeRewriter. Máme MetaLinks s odrazivostí. Máme Athény pro grafiku. Máme podporu IoT.

Takže ano, inspiruje se Smalltalk. Ale rozhodně ne Smalltalk-80. Je to Pharo. Jako logo používáme maják. Protože se nám líbí, když existuje jasné světlo připravující cestu k blaženosti vývojářů.

Smalltalk je skvělý.

Pharo je lepší, pokud jde o dosahování obchodních výsledků při použití technologie 21. století . Protože vzájemná kombinace nástrojů Pharo vede k skvělým výsledkům.

A ano, myslím si to.

Odpověď

Pharo je dialektem Smalltalku. Ve své syntaxi, sémantice a implementaci je Pharo verzí Smalltalk-80 a velmi blízkým příbuzným dialektů Squeak a Cuis. Všichni tři pocházejí přímo z Smalltalk-80 v1, který společnost Apple získala od společnosti Xerox jako součást procesu psaní „Smalltalk-80: jazyk a jeho implementace“, neboli „modrá kniha“. Alan Kay v 90. letech vedl tým společnosti Apple, který vyvinul Squeak dialekt a implementaci počínaje Smalltalk-80 v1. Později se vidlice Cuis a Pharo rozvětvili ze Squeak. Ale všechny tři přešly na můj Spur VM, vývoj JIT VM, který jsem v 2008/9/10 odvodil od původního Back-to-the-future tlumočníka VM pro Squeak.

Tyto tři dialekty „nejbližší příbuzný od sebe je VisualWorks Smalltalk, který sestupuje přímo z Smalltalk-80 v2, finální verze vyvinuté v Xerox PARC. Všechny čtyři lze odlišit od ostatních Smalltalků podporou kontextů (aktivačních záznamů první třídy Smalltalku) prostřednictvím pseudo proměnné thisContext. Kontext je záznam o aktivaci; je to objekt, který udržuje stav spuštěné metody nebo uzavření bloku. Povrchový rozdíl spočívá v tom, že rodina Squeak podporuje n-tice (pohodlná konstrukce Array) a příkaz case, zatímco VisualWorks má systém jmenného prostoru a literární formu BindingReference pro přístup k objektům přes hranice jmenného prostoru.

Jedna jedinečná věc Smalltalk a jeho blízcí příbuzní Self a Newspeak je ten, že systémy jsou samy určující; třídy, metody a kontexty, které jsou prvotřídními objekty definovanými z hlediska tříd a metod. To se vztahuje i na jejich kompilátor a debugger, systém výjimek atd., Což umožňuje Smalltalk vyvíjet se na jazykové úrovni. Řazené kolekce členů, příkaz case a obory názvů byly implementovány v příslušných systémech, aniž by bylo nutné upravovat jakýkoli podkladový virtuální stroj. Díky této schopnosti vývoje je definování toho, co Smalltalk dělá, poněkud problematické. Zdravý Smalltalk je vyvíjející se Smalltalk; pohyblivý cíl.

Někteří, možná mnozí z komunity Pharo, si myslí, že Smalltalk dostal v 90. letech špatné jméno, a někteří jsou nešťastní z nedostatku podpory pro vývojáře a soustředí se na Etoys, který měl pochopitelně výzkumný tým Alana Kaye týmu se skutečně věnoval Etoys. V důsledku toho má Pharo velmi odlišný důraz a chce pokročit od nyní stárnoucí multimediální podpory Squeak směrem k lepší integraci se současným výpočetním ekosystémem, jako je github, a směrem k znovuobjevení programování jako mnohem dynamičtějšího průzkumného procesu; viz například agilní vizualizační práce nad Rossalem a sadou nástrojů GT. Proto někteří v komunitě Pharo chtějí popřít, že Pharo je dialekt Smalltalk. Toto je pozice, které rozumím, ale ve skutečnosti mi připadá falešná (nepopiratelně ve své syntaxi, sémantice a implementaci Pharo / is / verze Smalltalk-80) a poněkud neúcta a nevděčnost (Pharo je skvělé programovací prostředí, protože má skvělí lidé, kteří v tom dělají skvělou práci a jsou schopni, protože je to Smalltalk). Ale nevadí. Pharo si stojí za svými zásluhami, silným a rychle se rozvíjejícím dialektem Smalltalku, který programátorům přináší radikální výhody produktivity. Doufám, že se na to zběžně podíváte. Probíhá.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *