Was ist besser, Smalltalk oder Pharo?

Beste Antwort

Lange Geschichte.

Die TL; DR-Version ist aus meiner Sicht die folgende:

  • Man kann die originalen Smalltalk-Bücher lesen und bei der Verwendung von Pharo Wert daraus ziehen. Es gibt also definitiv ein solides Smalltalk-Erbe.
  • Auf der Werkzeugseite gibt es dort Es gibt einige Fortschritte in Pharo, die es ziemlich einzigartig machen und sich von Smalltalk 80 unterscheiden. Zum Beispiel:
  • GToolkit mit superstarken Inspektoren
  • Spotter, die eine wirklich interessante Möglichkeit bieten, auf Elemente von zuzugreifen das System usw.
  • Spezifikation und Block für andere Möglichkeiten der Benutzeroberfläche als MVC und Morphic
  • Bereinigungen und Ergänzungen der Standardpakete von Squeak
  • Zink, NeoJson, STON,… alle stammten aus der Pharo-Community
  • Roassal2, für Visualisierungen, auch aus der Pharo-Community
  • Die VM, die jetzt eine gemeinsame OpenSmalltalk / opensmalltalk-vm Das Bestreben mit bestimmten Pharo-Bereichen ist schneller, w mit einer besseren JIT und einem weiteren Bytecode-Set. Speicherverwaltung mit Zeigerweiterleitung macht: viel schneller. Überprüfen Sie Optimieren des Pharo-Garbage Collectors , überprüfen Sie 7-Punkt-Zusammenfassung des Spur-Speichermanagers . Nun, überprüfen Sie alles in diesem Blog, es rockt einfach.
  • Wir haben Eigenschaften. Wir haben XStreams. Wir haben Calypso. Wir haben Eisberg. Wir haben die Kritikersache. Wir haben den Opal-Compiler. Wir haben Rubrik für die Textbearbeitung. Wir haben Ring als Codemodell. Wir können AST auf Methoden untersuchen. Wir haben Beacon für ein Objektprotokollierungs-Framework. Wir haben WeakReferences. Wir haben UnifiedFFI. Wir haben 64 Bit. Wir haben Treibstoff. Wir haben Seaside3. Wir haben coole CommandLineHandler. Wir haben Scale for CLI-Arbeit. Wir haben Epicea für Codeänderungen. Wir haben eine neu gestaltete FileSystem-API. Wir haben HelpSystem. Wir haben eine funktionierende Infrastruktur mit CI und Git und welche Problemverfolgung usw. gut zusammenarbeiten. Wir haben eine Säule für die Herstellung von Büchern. Wir haben TaskIT für die einfache Arbeit mit Futures. Wir haben ein anständiges KeyMapping-System. Wir haben einen aufgeräumten Morphic (noch mehr zu tun). Wir haben OSWindow. Wir haben Refactorings und CodeRewriter. Wir haben MetaLinks mit Reflectivity. Wir haben Athen für Grafiken. Wir haben IoT-Unterstützung.

Ja, es ist von Smalltalk inspiriert. Aber definitiv nicht Smalltalk-80. Es ist Pharo. Wir verwenden einen Leuchtturm als Logo. Weil es uns gefällt, wenn helles Licht den Weg zur Glückseligkeit der Entwickler ebnet.

Smalltalk ist großartig.

Pharo ist besser, wenn es darum geht, Geschäftsergebnisse zu erzielen, wenn Sie Technologien des 21. Jahrhunderts einsetzen . Weil das Kombinieren von Pharo-Tools miteinander zu leistungsstarken Ergebnissen führt.

Und ja, ich bin der Meinung.

Antwort

Pharo ist ein Dialekt von Smalltalk. In seiner Syntax, Semantik und Implementierung ist Pharo eine Version von Smalltalk-80 und ein sehr enger Verwandter der Dialekte Squeak und Cuis. Alle drei stammen direkt von dem Smalltalk-80 v1 ab, den Apple von Xerox im Rahmen des Schreibprozesses von „Smalltalk-80: Die Sprache und ihre Implementierung“, a.k.a. „das blaue Buch“, erhalten hat. Alan Kay leitete in den 90er Jahren ein Team bei Apple, das den Squeak-Dialekt und die Implementierung ab Smalltalk-80 v1 entwickelte. Später gabelten sich Cuis und Pharo von Squeak. Alle drei sind jedoch auf meine Spur-VM übergegangen, eine Weiterentwicklung der JIT-VM, die ich 2008/09/10 von der ursprünglichen Back-to-the-Future-Interpreter-VM für Squeak abgeleitet habe.

Diese drei Dialekte Der engste Verwandte ist VisualWorks Smalltalk, das direkt von Smalltalk-80 v2 abstammt, der endgültigen Version, die bei Xerox PARC entwickelt wurde. Alle vier unterscheiden sich von anderen Smalltalks durch die Unterstützung von Kontexten (Smalltalks erstklassige Aktivierungsdatensätze) über die Pseudovariable thisContext. Ein Kontext ist ein Aktivierungsdatensatz. Es ist das Objekt, das den Status einer laufenden Methode oder eines Blockabschlusses enthält. Ein oberflächlicher Unterschied besteht darin, dass die Squeak-Familie Tupel (ein praktisches Array-Konstrukt) und eine case-Anweisung unterstützt, während VisualWorks über ein Namespace-System und ein BindingReference-Literal für den Zugriff auf Objekte über Namespace-Grenzen hinweg verfügt.

Eine Besonderheit Smalltalk und seine nahen Verwandten Self und Newspeak sind, dass sich die Systeme selbst definieren. Klassen, Methoden und Kontexte sind erstklassige Objekte, die in Bezug auf Klassen und Methoden definiert sind. Dies erstreckt sich auf den Compiler und Debugger, das Ausnahmesystem usw. Dadurch kann sich Smalltalk auf Sprachebene weiterentwickeln. Tupel, die case-Anweisung und die Namespaces wurden alle in ihren jeweiligen Systemen implementiert, ohne dass eine zugrunde liegende virtuelle Maschine geändert werden musste. Diese Fähigkeit, sich weiterzuentwickeln, macht es etwas problematisch, genau zu definieren, was Smalltalk ist. Ein gesunder Smalltalk ist ein sich entwickelnder Smalltalk. ein sich bewegendes Ziel.

Einige, vielleicht viele in der Pharo-Community glauben, dass Smalltalk in den 90er Jahren einen schlechten Ruf hatte, und einige sind unglücklich über die mangelnde Unterstützung der Entwickler und konzentrieren sich verständlicherweise auf Etoys, die Alan Kays Forschungsteam hatte Etoys stand im Mittelpunkt des Teams. Infolgedessen hat Pharo einen ganz anderen Schwerpunkt und möchte sich von der jetzt alternden Multimedia-Unterstützung von Squeak wegbewegen, um eine bessere Integration in das aktuelle Computer-Ökosystem wie Github zu erreichen und die Programmierung als einen viel dynamischeren Erkundungsprozess neu zu erfinden. Siehe zum Beispiel die agile Visualisierungsarbeit über Rossal und das GT-Toolkit. Daher wollen einige in der Pharo-Community leugnen, dass Pharo ein Dialekt von Smalltalk ist. Dies ist eine Position, die ich verstehe, aber sowohl in der Realität falsch finde (unbestreitbar in ihrer Syntax, Semantik und Implementierung Pharo / is / eine Version von Smalltalk-80) als auch etwas respektlos und undankbar (Pharo ist eine großartige Programmierumgebung, beides, weil sie es hat großartige Leute, die großartige Arbeit darin leisten und dazu in der Lage sind, weil es ein Smalltalk ist). Aber das macht nichts. Pharo steht für seine Vorzüge, ein leistungsstarker, sich schnell entwickelnder Dialekt von Smalltalk, der Programmierern radikale Produktivitätsvorteile bietet. Ich hoffe, Sie werfen mehr als einen flüchtigen Blick darauf. Es geht um Orte.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.