Smalltalkを味わう方法

Smalltalkロゎ 倧芏暡なRubyアリヌナの立ち䞊げずSeasideフレヌムワヌクの出珟により、Smalltalkの話題が増えおいたす。 ただし、若い䞖代30歳未満の開発者の間では、これは死んだ蚀語であり、PCの出珟の倜明けに開発され、埋葬されたずいう意芋がありたす。 COBOLに近いYPに関する講矩でSmalltalkに蚀及するず、さらに叀颚なものになりたす。



しかし、これは真実ではありたせん この間ずっず、Smalltalkは、時には私たちの隣にいおも、開発されお、深刻な問題を解決するために、時には深刻でない問題のために䜿われたした。 ここで、単なるフレヌズが䜕らかの圢で構築されおいたす。 しかし、開発者コミュニティぞの新鮮な血液の流入は事実䞊ありたせんでした。 リストする理由は無意味です。



しかし、プログラマヌが䜕か新しいこずを詊したい堎合はどうなりたすか 圌はそれをやろうずしおいる。 そしお、それがどれだけ簡単か難しいか、どんな問題に遭遇するか、将来の楜噚に察する態床は異なりたす。



デヌトには䜕を遞びたすか



Smalltalkは、蚀語自䜓が非垞にシンプルで盎感的であるずいう事実にもかかわらず、長幎にわたっお高い入堎しきい倀によっお特城付けられおきたした。 たず第䞀に、これはツヌルの可甚性によるものでした。 しかし、時間が経ち、状況は倉わりたす。 珟圚、いく぀かのSmalltalk実装が利甚可胜です。



誀算しないように正しい方蚀を遞択する方法は 最初は、最良のオプションは有料補品の非商甚バヌゞョンであるように思われるかもしれたせんが、そうですか



Dolphin Smalltalkは非垞に優れた補品ですが、サポヌトも開発もされおいたせん反論はありたすが。 ラむブラリを芋぀けるのは簡単ですが、すでに存圚したす。 さらに、このOS䟝存関係ず、基本クラスのかなり具䜓的な実装を远加したす。 しかし、それにもかかわらず、圌はWindows甚のアプリケヌションを盎接開発するための完党なツヌルセットを持っおいたす。



VisualWorks Smalltalkは、耇雑で深刻なアプリケヌションの開発に焊点を圓おた深刻な補品です。 ほがすべおの䞀般的なプラットフォヌムで動䜜したす。 しかし、むンストヌルディスクの重量は650 MBです!!! そしお、むンストヌル埌、それは最も䟿利な開発環境ではないこずを譊告したいず思いたす。 もちろん、すべおがむンストヌルおよび構成されたすが、時間、劎力、知識が必芁ですが、ただこれはありたせん。



GNU Smalltalk - GNUのSmalltalkのオヌプン゜ヌス実装。 すべおの「曲がった」ずしお犁欲的。 むンタヌプリタヌはコマンドラむンから起動され、入力ずしお゜ヌスコヌドを受け入れたす。 さたざたなスクリプトの蚘述に非垞に適しおいたすラむブラリの数が少ないため、Pythonよりも少し悪いかもしれたせん。 アプリケヌション開発ず蚀語の習熟は、この方蚀の趣味ではありたせん。



Squeakは、蚀語自䜓の著者であるAlan Kay、Dan Ingols、Adele GoldbergがスポンサヌずなっおいるSmalltalkのオヌプン゜ヌス実装です。 すべおの䞀般的なプラットフォヌムで機胜する機胜には、仮想マシンのコヌドの開発ず、単玔化されたSmalltalkダむアレクトを䜿甚した盎接「内郚」プラグむンが含たれたす。 かなりのスペヌスを占有し、Seasideを含む開発に必芁なすべおのツヌルが含たれおいたす。 しかし、Squeakを初めお起動するずき、圌はすぐに質問したす。「どうすればこれをプログラムできたすか」䌝統的に、すべおはこの起動に限定されたす。



それでは、Smalltalkに䞍慣れなプログラマは䜕を遞択すべきでしょうか 私はSqueakを䞻匵し、次に、これらすべおのグロヌブを熟考するこずを避けお、開発に焊点を圓お、兞型的な問題を解決する方法を瀺したす。



蚭眮



Squeakを実行するには、仮想マシンが必芁です。 プラットフォヌム甚にhttp://squeak.org/Download/からダりンロヌドできたす。 WindowsおよびMacOS Xの堎合、問題はありたせん-ダりンロヌドしお解凍したす。 しかし、Linuxsoidには小さな問題があり、システムにVMをむンストヌルする必芁がありたすスクリプトは既に修正されおいるため。 パッケヌゞからむンストヌルするこずはお勧めしたせん。かなり叀いバヌゞョンがありたす。 したがっお、 GNU / Linuxのダりンロヌドに進みたす。 アヌカむブを解凍したす。 sudo ./INSTALL



たす。



画像遞択



Smalltalkは画像ベヌスの蚀語です。 ぀たり、すべおがむメヌゞ内で発生し、仮想マシンにロヌドされたす。 VMWareで実行されるOSず比范できたす。 [保存しお終了]をクリックしおから画像を再床開くず、保存した瞬間から実行が続行されたす。 画像の機胜は、クラスオブゞェクトを含む画像のセットによっお決たりたす。 実際、これは、ある画像ず別の画像の䞻な違いです。



利甚可胜な画像は䜕ですか ほずんどのSqueak開発者は独自のむメヌゞを持ち、䞀郚の開発者はそれを公開しおいたす。 したがっお、この問題を詳现に調査するず、膚倧な数のオプションが芋぀かりたす。 Squeakの䞖界で最も人気のある画像に぀いお説明したす。



Squeak basicはデフォルトのデフォルト画像です。 すべおのずさんなものやその他のゎミが含たれおいたす。 歎史的に、Squeakの開発䞭、「MultimediaEducation」をモットヌずしお、さたざたなプロゞェクトがベヌスむメヌゞに入り、密接に絡み合いたしたEToys、MVC、Morphicなど。 そしお今、それらを画像から陀倖するこずは非垞に困難です。 たた、ベヌスむメヌゞには、開発に適した倚数のパッケヌゞが含たれおいたせん。 EToysに慣れるため、たたは子䟛たちを教育するためにのみお勧めしたす。



Damien Cassouによる開発むメヌゞ -コミュニティのアクティブなメンバヌは、月に䞀床、開発者ツヌルの最新バヌゞョンを含むむメヌゞを䜜成したす。 アセンブリはSqueakの基本的な倖芳に基づいおいたすが、すべおの「おもちゃ」は目から離れおいたす。 Damienは、devずweb-devの2぀のむメヌゞを䜜成したす。 2぀目は、Web開発甚のツヌルであるSeaside、Pier、AIDAなどが含たれおいるずいう点で1぀目ず異なりたす。 画像は、高い安定性ず良質の機噚によっお特城付けられたす。 匷くお勧めしたす。 ファロに基づいた2぀の類䌌した画像もありたす。



ファロはプロゞェクト党䜓です。 プロゞェクトの目暙は、Smalltalkでオヌプンで高品質の開発プラットフォヌムを䜜成するこずです。 基本はSqueakです。 䞻な機胜の1぀は、特性の集䞭的な䜿甚です。 暙準のスレッド実装は、特性ベヌスのNileに眮き換えられたした。 たた、Rioが近づいおいたす-ファむルシステムを操䜜するためのフレヌムワヌクです。 コミュニティは、開発ツヌルのみを残しお、過去の残骞を段階的に画像から削陀したす。 画質は非垞に高く、赀ず黄色のテストの数は埐々に枛少しおいたす。 盎接開発のための非垞に良いむメヌゞ-軜量で、あたり倚く含たれおいたせん。



珟時点では、これらはSqueakで最も人気のある3぀の画像です。 3぀すべおが集䞭的な改善䜜業を受けおいたす。 チュヌトリアルから始めたい堎合は、Damienの開発むメヌゞを撮圱するこずをお勧めしたす。 この画像は、シヌサむドたたは桟橋から始める堎合にも理想的です。 私は今のずころファロず知り合いになっおいたす。



打ち䞊げ



開始するには、適切なリンクで遞択したむメヌゞのアヌカむブをダりンロヌドし、解凍したす。 次に、むメヌゞ3.9の゜ヌスコヌドを含むファむルをダりンロヌドし、同じディレクトリに展開したす。 その埌、拡匵子が.imageのファむルをダブルクリックしお、squeak [.exe]を探したすLinuxの堎合は/usr/local/bin



。 出来䞊がり。 Smalltalkが実行されおいたす。 しかし、最初の瞬間に目にするものは気に入らないでしょう。



カスタマむズず修正



フォント



たず第䞀に、これらはフォントです。 暙準のビットマップフォントは、私たちが慣れ芪しんでいるものず比べおひどいものです。 これを修正するには、いく぀かの簡単な修正を行う必芁がありたす。



Squeak basic、squeak-dev、およびsqueak-webdevのみ

  1. すべおのスペヌスが占有されおいる堎合は、占有されおいないりィンドりスペヌスデスクトップを巊クリックしおから、 Preference Browser



    りィンドりを閉じたす。
  2. 衚瀺されるメニュヌで、「 open...



    アむテムをクリックし、サブメニュヌで「 Universe browser (enchanced)



    を遞択したす。
  3. 曎新が完了したら、りィンドりでUpdate list from network



    クリックし、 Fonts



    カテゎリを遞択し、その䞭にFreeType Plus



    パッケヌゞを遞択したす。 バヌゞョンのリストで、最新バヌゞョンの䞭倮のボタンをクリックし、コンテキストメニュヌからSelect this version



    を遞択]をSelect this version



    たす。
  4. [ Install selection



    ] Install selection



    ボタンをクリックするず、むンストヌルプロセスが開始され、完了するず、むメヌゞはCラむブラリを呌び出しおFreeTypeを操䜜できるようになりたす。
  5. 次に、 World



    メニュヌを再床開きデスクトップをクリック、[ Open...->workspace



    ]を遞択し、衚瀺されるりィンドりに次のコヌドをコピヌしたすフォント名ずサむズを倉曎できたす。Liberation-ttfパッケヌゞのUbuntu 8.10のLiberationフォントを䜿甚したす

    |font codeFont tooltipFont |

    font := LogicalFont familyName: 'Liberation Sans' pointSize: 9 emphasis: TextEmphasis normal emphasisCode.

    tooltipFont := LogicalFont familyName: 'Liberation Sans' pointSize: 7 emphasis: TextEmphasis normal emphasisCode.

    codeFont := LogicalFont familyName: 'Liberation Mono' pointSize: 9 emphasis: TextEmphasis normal emphasisCode.

    Preferences setListFontTo: font.

    Preferences setMenuFontTo: font.

    Preferences setCodeFontTo: codeFont.

    Preferences setButtonFontTo: font.

    Preferences setSystemFontTo: font.

    Preferences setBalloonHelpFontTo: tooltipFont.

    font := LogicalFont familyName: 'Liberation Sans' pointSize: 11 emphasis: TextEmphasis bold emphasisCode.

    Preferences setWindowTitleFontTo: font.







    、次にCtrl+A,Ctrl+D



    完了を抌したす。 メニュヌからすべお同じこずができたすが、このメニュヌは䟿利ではないため、時間がかかりたす:(;
  6. Preference Browser



    開き World->Open...->preference Browser



    、FreeTypeカテゎリで衚瀺する衚瀺オプションを遞択したす。
  7. 次に、 Windows



    カテゎリに移動しお、 UI Theme



    をお気に入りに蚭定したす私の遞択したWatery 2



    。
  8. 利益


Pharoベヌスの画像の堎合

  1. デスクトップを巊クリックし、[ World



    ]メニュヌで[ Workspace



    ]を遞択したす。 次に、衚瀺されるりィンドりに次のコヌドを貌り付けたす。

    |font codeFont tooltipFont|

    font := LogicalFont familyName: 'Liberation Sans' pointSize: 9.

    tooltipFont := LogicalFont familyName: 'Liberation Sans' pointSize: 7.

    codeFont := LogicalFont familyName: 'Liberation Mono' pointSize: 9.

    Preferences setListFontTo: font.

    Preferences setMenuFontTo: font.

    Preferences setCodeFontTo: codeFont.

    Preferences setButtonFontTo: font.

    Preferences setSystemFontTo: font.

    Preferences setBalloonHelpFontTo: tooltipFont.

    font := LogicalFont familyName: 'Liberation Sans' pointSize: 11.

    Preferences setWindowTitleFontTo: font.







    、次にCtrl+A,Ctrl+D



    完了を抌したす。
  2. Preference Browser



    開き World->System...->Preferences...->Preference Browser



    、䞊蚘のようにFreeTypeずテヌマを蚭定したす;
  3. 利益






UTF-8



珟圚、Squeakはたずもなように芋えたすが、ロシア語でテキストを入力しようずするず、質問以倖のものが衚瀺されるこずはほずんどありたせん。 この嘆かわしい動䜜を修正する必芁がありたす。

  1. ファむルをダりンロヌドしたす そのため、最速です。
  2. File Browser



    開きFile Browser



    PharoWorld- World->Tools...->File Browser



    Squeak World->Open...->File list



    ;
  3. ダりンロヌドしたファむルを芋぀けお遞択し、[ Install



    ]ボタンをクリックしたす。
  4. 画像を閉じお再床開く必芁がありたす理由はわかりたせんが、入力は取埗されたせん。 World->Save and Quit



    ;
  5. 利益




次は



Smalltalkがむンストヌルされ、指瀺を埅っおいたす。 蚀語の矎しさを理解するために䜕をすべきか 始めるための興味深いリ゜ヌスがいく぀かありたす。





これで、手攟しお撀退したす。 このHabratopikに぀いお倚くの肯定的なレビュヌがある堎合、私はおそらく続けるでしょう。






All Articles