Mi a jobb, Smalltalk vagy Pharo?

Legjobb válasz

Hosszú történet.

A TL; DR verzió az én szempontomból a következő:

  • Elolvashatja az eredeti Smalltalk könyveket, és kiaknázhatja belőlük a Pharo használatát, tehát mindenképpen megalapozott a Smalltalk öröksége.
  • A szerszámok frontján ott számos olyan előrelépés a Pharóban, amelyek meglehetősen egyedivé teszik és különböznek a Smalltalk 80-tól. Például:
  • GToolkit, szuper erős ellenőrökkel
  • Spotter, amely igazán érdekes módot kínál a a rendszer stb.
  • Spec és Bloc a felhasználói felület más módjainak elvégzéséhez, mint az MVC és a Morphic
  • Tisztítások és kiegészítések a Squeak standard csomagjaihoz
  • Cink, NeoJson, STON,… mind a Pharo közösségből származik
  • Roassal2, vizualizációk céljából, szintén a Pharo közösségből származik
  • A virtuális gép, amely ma már általános OpenSmalltalk / opensmalltalk-vm erőfeszítések adott Pharo területekkel gyorsabbak, w egy jobb JIT, és egy másik byte-kódkészlet. A memóriakezelés a mutató továbbításával sokkal gyorsabbá válik. Ellenőrizze a Pharo szemétgyűjtő beállítását , ellenőrizze a Spur memóriakezelő 7 pontos összefoglalóját nos, ellenőrizz mindent a blogon, csak ringat.
  • Vannak vonásaink. Van XStreamünk. Van Calypso. Van Iceberg. Megvan a Kritikusok dolog. Megvan az Opal fordító. A szövegszerkesztéshez Rubrik áll rendelkezésünkre. A Ring kód kódmodell. Megvizsgálhatjuk az AST-t a módszerek szempontjából. Van Beacon objektum naplózási keretrendszer. Működő WeakReferenciáink vannak. Megvan az UnifiedFFI. 64 bitünk van. Van üzemanyag. Megvan a Seaside3. Remek CommandLineHandlerjeink vannak. Van skálánk a CLI munkához. Van az Epicea a kódváltásokhoz. Van egy újratervezett FileSystem API. Megvan a HelpSystem. Működő infrastruktúránk van a CI-vel és a Git-tel, és milyen problémakövetéssel stb., Amelyek jól működnek. Van egy oszlopunk a könyvek gyártására. Megvan a TaskIT a jövővel kapcsolatos egyszerű munkához. Rendes KeyMapping rendszerünk van. Van egy kitisztított Morphic (még több tennivaló). Megvan az OSWindow. Van Refactorings és CodeRewriter. Van MetaLink Reflektivitással. Van Athén a grafikához. Van IoT támogatásunk.

Tehát, igen, a Smalltalk ihlette. De mindenképpen nem a Smalltalk-80. Pharo vagyok. Világítótornyot használunk logónkként. Mert tetszik nekünk, ha erős fény árasztja el a fejlesztői boldogság útját.

A Smalltalk nagyszerű.

A Pharo jobb, ha üzleti eredményeket érünk el, amikor a 21. századi technológiát használjuk. . Mivel a Pharo-eszközök egymással való kombinálása erőteljes eredményekhez vezet.

És igen, véleményes vagyok.

Válasz

A Pharo a Smalltalk dialektusa. Szintaxisában, szemantikájában és megvalósításában a Pharo a Smalltalk-80 egyik változata, és a Squeak és Cuis dialektusok nagyon közeli rokona. Mindhárom közvetlenül a Smalltalk-80 v1-ből származik, amelyet az Apple-nek a Xerox adott a „Smalltalk-80: a nyelv és annak megvalósítása”, más néven a „kék könyv” megírásának részeként. Alan Kay a 90-es években az Apple csapatát vezette, amely kifejlesztette a Squeak nyelvjárást és a megvalósítást a Smalltalk-80 v1-től kezdve. Később Cuis és Pharo elágazott Squeak-ből. De mindhárman átmentek a Spur virtuális gépemre, a JIT virtuális gépének evolúciójára, amelyet 2008/9/10-ben a Squeak eredeti Vissza a jövőbe tolmácsából származtattam.

Ez a három nyelvjárás legközelebbi rokona egymástól a VisualWorks Smalltalk, amely közvetlenül a Xerox PARC-nél kifejlesztett Smalltalk-80 v2-ből származik. Mind a négyt megkülönböztethetjük a többi Smalltalttól azáltal, hogy támogatjuk a kontextusokat (Smalltalk első osztályú aktiválási rekordjai) a thisContext álváltozón keresztül. A kontextus egy aktiválási rekord; az objektum tartja meg a futó módszer vagy a blokk bezárásának állapotát. A felületi különbség az, hogy a Squeak család támogatja a sorrendeket (kényelmes Array konstrukció) és egy esetmegállapítást, míg a VisualWorks névtérrendszerrel és BindingReference szó szerinti formával rendelkezik az objektumok névtérhatárokon túli eléréséhez.

Egyedülálló dolog A Smalltalk és közeli hozzátartozói, a Self és az Newspeak az, hogy a rendszerek önmeghatározóak; Az osztályok, módszerek és összefüggések mind első osztályú objektumok, amelyek osztályok és módszerek alapján vannak meghatározva. Ez kiterjed a fordítóikra és a hibakeresőkre, a kivételrendszerre stb., Ez lehetővé teszi a Smalltalk számára, hogy nyelvi szinten fejlődjön. A tömbök, az esetbemutató és a névterek mind megvalósításra kerültek a saját rendszereikben anélkül, hogy bármilyen mögöttes virtuális gépet módosítani kellett volna. Ez a fejlődési képesség pontosan meghatározza, hogy mi a Smalltalk némileg problematikus. Az egészséges Smalltalk egy fejlődő Smalltalk; mozgó célpont.

Néhány, talán sokan a pharói közösségben úgy gondolják, hogy a Smalltalk rossz nevet kapott a 90-es években, és vannak, akik nem elégedettek a fejlesztők támogatásának hiányával, és Alan Kay kutatócsoportjának érthető módon az Etoys-ra összpontosítanak. mivel valóban Etoys volt a csapat középpontjában. Következésképpen a Pharo nagyon más hangsúlyt fektet, és el akar térni a Squeak ma már öregedő multimédiás támogatásától a jelenlegi számítástechnikai ökoszisztémához, például a githubhoz való jobb integráció és a programozás mint sokkal dinamikusabban feltáró folyamat újrafeltalálása felé; lásd például a Rossal és a GT eszköztár fölötti agilis megjelenítési munkát. Ezért a pharói közösségből néhányan azt akarják tagadni, hogy a pharo a Smalltalk dialektusa. Ezt az álláspontot megértem, de a valóságban egyaránt hamisnak találom (tagadhatatlanul, szintaxisában, szemantikájában és megvalósításában a Pharo / a / a Smalltalk-80 változata), és kissé tiszteletlen és hálátlan (a Pharo nagyszerű programozási környezet, mindkettő miatt nagyszerű emberek, akik nagyszerű munkát végeznek és képesek rá, mert ez egy Smalltalk). De sebaj. A Pharo érdemein áll, a Smalltalk erőteljes, gyorsan fejlődő dialektusa, amely radikális termelékenységi előnyöket kínál a programozók számára. Remélem, nem csak felületes pillantást vet rá. Helyeket jár.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük