SmalltalkとPharoのどちらが良いですか?


ベストアンサー

長い話。

TL; DRバージョンは、私の観点からは次のとおりです。

  • Pharoを使用すると、元のSmalltalkの本を読んで価値を得ることができるため、Smalltalkの確かな遺産が確実にあります。
  • ツールの面では、 Pharoのいくつかの進歩により、Smalltalk 80とはかなりユニークで異なります。例:
  • GToolkitと非常に強力なインスペクター
  • Spotterにより、次のアイテムにアクセスするための非常に興味深い方法が可能になります。システムなど
  • MVCとMorphic以外のUIを実行するためのSpecとBloc
  • Squeakの標準パッケージへのクリーンアップと追加
  • Zinc、NeoJson、 STON、…すべてPharoコミュニティから発信されました
  • Roassal2、視覚化のために、同じくPharoコミュニティから発信されました
  • VMは現在一般的な OpenSmalltalk / opensmalltalk-vm 特定のPharoエリアでの取り組みはより高速ですwより良いJITと別のバイトコードセット。ポインタ転送によるメモリ管理により、はるかに高速になります。 Pharoガベージコレクターの調整を確認し、 Spurメモリマネージャーの7ポイントの概要を確認します。ええと、そのブログのすべてをチェックしてください、それはただ揺れるだけです。
  • 私たちは特徴を持っています。 XStreamsがあります。カリプソがあります。氷山があります。批評家のものがあります。 Opalコンパイラがあります。テキスト編集用のRubrikがあります。コードモデルとしてRingがあります。 ASTのメソッドを検査できます。オブジェクトロギングフレームワーク用のビーコンがあります。 WeakReferencesが機能しています。 UnifiedFFIがあります。 64ビットがあります。燃料があります。 Seaside3があります。クールなCommandLineHandlerがあります。 CLI作業用のScaleがあります。コード変更用のEpiceaがあります。再設計されたFileSystemAPIがあります。 HelpSystemがあります。 CIとGitを備えた実用的なインフラストラクチャがあり、どのような問題追跡などがうまく連携しています。本を作るための柱があります。先物との簡単な作業のためのTaskITがあります。私たちはまともなKeyMappingシステムを持っています。モーフィックをクリーンアップしました(まだまだやることがあります)。 OSWindowがあります。リファクタリングとCodeRewriterがあります。反射率のあるメタリンクがあります。グラフィック用のアテネがあります。 IoTをサポートしています。

そうですね、Smalltalkに触発されています。しかし、間違いなくSmalltalk-80ではありません。ファロです。ロゴは灯台を使用しています。開発者の至福への道を開く明るい光があるときに私たちはそれが好きだからです。

Smalltalkは素晴らしいです。

21世紀の技術を使用してビジネス結果を得るという点ではPharoの方が優れています。 Pharoツールを互いに組み合わせると強力な結果が得られるからです。

そうです、私は意見があります。

回答

PharoはSmalltalkの方言です。構文、セマンティクス、および実装において、PharoはSmalltalk-80のバージョンであり、Squeak方言とCuis方言に非常に近いものです。 3つすべては、「Smalltalk-80:言語とその実装」(別名「ブルーブック」)を作成するプロセスの一環としてAppleがXeroxから提供されたSmalltalk-80v1から直接派生しています。 Alan Kayは、90年代にAppleのチームを率いて、Smalltalk-80v1からSqueak方言と実装を開発しました。その後、CuisとPharoはSqueakから分岐しました。しかし、3つすべてが私のSpur VMに移行しました。これは、2008/9/10にSqueak用の元のBack-to-the-futureインタープリターVMから派生したJITVMの進化形です。

これら3つの方言互いに最も近い相対的なものはVisualWorksSmalltalkであり、これはXeroxPARCで開発された最終バージョンであるSmalltalk-80v2から直接派生しています。 thisContext疑似変数を介してコンテキスト(Smalltalkのファーストクラスアクティベーションレコード)をサポートすることにより、4つすべてを他のSmalltalkと区別できます。コンテキストはアクティベーションレコードです。これは、実行中のメソッドまたはブロッククロージャの状態を保持するオブジェクトです。表面的な違いは、Squeakファミリーがタプル(便利な配列構造)とcaseステートメントをサポートしているのに対し、VisualWorksには名前空間システムと名前空間の境界を越えてオブジェクトにアクセスするためのBindingReferenceリテラル形式があることです。

Smalltalkとその近親者であるSelfとNewspeakは、システムが自己定義的であるということです。クラス、メソッド、コンテキストはすべて、クラスとメソッドの観点から定義されたファーストクラスのオブジェクトです。これは、コンパイラとデバッガ、例外システムなどにまで及びます。これにより、Smalltalkを言語レベルで進化させることができます。タプル、caseステートメント、および名前空間はすべて、基盤となる仮想マシンを変更することなく、それぞれのシステムに実装されました。この進化する能力により、Smalltalkがやや問題となるものを正確に定義することができます。健全なSmalltalkは進化するSmalltalkです。動くターゲット。

Pharoコミュニティの中には、Smalltalkが90年代に悪い名前になったと考える人もいれば、開発者のサポートがないことに不満を持っていて、AlanKayの研究チームが持っていたEtoysに焦点を当てている人もいます確かにEtoysがチームの焦点でした。その結果、Pharoは非常に異なる重点を置いており、Squeakの現在老朽化したマルチメディアサポートから離れて、githubなどの現在のコンピューティングエコシステムとのより良い統合に向けて、そしてはるかに動的な探索プロセスとしてプログラミングを再発明することに向けて前進したいと考えています。たとえば、RossalとGTツールキットの上のアジャイル視覚化作業を参照してください。したがって、Pharoコミュニティの一部は、PharoがSmalltalkの方言であることを否定したいと考えています。これは私が理解している立場ですが、実際には誤り(構文、セマンティクス、実装においてPharo / is / Smalltalk-80のバージョン)とやや無礼で恩知らず(Pharoは優れたプログラミング環境です。その中で素晴らしい仕事をしている素晴らしい人々であり、Smalltalkであるためにそれが可能です)。でも気にしないで。 Pharoは、プログラマーに根本的な生産性のメリットを提供する、強力で急速に進化するSmalltalkの方言というメリットに基づいています。ざっと見ただけではありません。それは場所に行きます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です