Python は純粋な OOP です。実際、これは初心者が Python を使用するときに犯しやすい間違いです。
Python のような smalltalk は、「すべてはオブジェクトである」というマントラに従います。したがって、組み込み型を含め、Python 内のすべてがオブジェクトです。違いは、python は手続き型プログラミングが可能なため、smalltalk や Java とは異なり、OOP を強制しないことです。そして、これが罠です。Python が OOP を少なくすると簡単に推測できますが、ヘビであるため、関数でさえオブジェクトであることがわかりません ;)
http://www.linuxtopia.org/online_books/programming_books/python_programming/python_ch10s04.html
smalltalk に戻ると、他の smalltalker が信じていることとは逆に、IDE が重要です。私のように、柔軟性のない IDE に非常に失望しているのであれば、Squeak の IDE を好きになるでしょう。IDE は、すべてのライブラリを簡単にナビゲートし、何が、どこで、なぜ、何かが起こるかを理解するのに非常に役立ちます。テキスト エディタを使用するメリットがわかりません。しかし、ファイルインとファイルアウトを使えばできます。しかし、そうすることで、smalltalk を他のプログラミング言語と同じくらい効率的にすることができなくなります ;)
私は 1 週間だけ squeak と pharo を勉強していますが、初心者の私でさえ、IDE の利点は最初の瞬間から明らかです。
コードが消化しやすいメソッドに断片化されているという事実、これらのメソッドはプロトコルにグループ化され、プロトコルはおなじみのクラスにグループ化され、クラスはパッケージにグループ化されます。したがって、コードは非常によく整理されているため、迷子になることはありません。すべてがどこかに属しており、すべてがクリックするだけで、すべてが検査可能でブラウズ可能です。右クリックを選択してそこに移動します。そして、必要なコードが 10 行を超えることはめったになく、正確に表示されます。これがIDEです。必要のない、気にしない、混乱する可能性のある情報にさらされるテキスト エディタを好むのはなぜですか。
次に、ファイル、コード、ライブラリ、システム ライブラリ、さらには言語自体のコレクションではなく、すべてが単一のイメージ内にあります。すべてがあなたの手の中にあり、あなたを待っており、テスト、変更、使用、悪用を求めています。あなたは言語の一部であり、言語はあなたの一部です。何かがあなたの考えに合わない場合は、それを変更してください。これがIDEです。ファイルとフォルダの切断された方法に戻りたいのはなぜですか?
そうすれば、このすべての力、このすべての柔軟性を恐れ始めます。言語とライブラリを完全に破壊する可能性のある何かを行う可能性は低くありません。その可能性があり、間違いが発生する可能性があり、発生します。ここでも IDE が助けを提供します。すべての変更はローカルの cvs システムに保存され、すべての変更はいつでも分類、保存、監視されます。お粗末な取り消しやその他のナンセンスはありません。あなたが得るのは、古く、十分にテストされた成熟したバージョン管理です。いつでも元に戻すことができます。何も失われることはなく、取り返しのつかない間違いもありません。
また、ハード ドライバを信用できない場合は、vcs がオンラインで squeaksource に拡張されます。そして、それはコマンドラインに翻弄されますか? とんでもない。シンプルでありながら効率的な Monticello ブラウザーが提供されます。これにより、インストールとアンインストールを競合なく行うことができます。
そしてもちろん、ソフトウェアにバグが残るのは望ましくありませんね。単体テスト ツールは、コードの信頼性と安定性を確認するために提供されており、希望どおりに動作することを確認します。ここでも、複雑なタスクを 1 つのボタンで実行できるように、美しくも優れた GUI が使用されています。
そして、どれも完璧ではないので、恐ろしい過ちに直面する時が来るでしょう。あなたは一人にされていますか?ご想像のとおり、ツールが再び提供されます。デバッガー。あなたはそれを呼び出す必要はありません、あなたはそれをセットアップする必要はありません、あなたはそれがどのように機能するかを理解する必要さえありません. 他のすべてのツールと同様に、デザインはシンプルですが洗練されています。エラーを見つけるだけでなく、何が間違っていたのかを教えてくれるだけでなく、エラーを引き起こす最も基本的な言語要素に戻るだけでなく、これまでに見たことのないような言語の振る舞いについて独自の視点を提供します。また、ライブコーディングを行うこともできます。ライブ コーディングは、コードの実行中にプログラムをコーディングする機能です。それは印象的で無限に便利ではありませんか?
最後に、おそらくあなたは喜ばせることが不可能な人々の一人かもしれません.おそらくあなたはまだ欠陥や省略を見つけており、単に好きではないと考えています. IDE は smalltalk で記述され、smalltalk は smalltalk で記述され、IDE はそれ自体と言語を編集できます。言語の非常に基本的な機能と C でコンパイルされた VM 以外に変更できないものはありません。上記のすべてのツールを使用して正確にそれを行うことができると思われる場合は、正しいと思います.
そして、ツールはこれだけにとどまりません。smalltalk は他の言語ほど人気がないかもしれませんが、非常に長い間ここにあり、貢献するのが大好きな非常に熱心なプログラマーが何人かいます。率直に言って、このような素晴らしい IDE と非常によく設計された言語を使用すると、他の言語がそれらに貢献するのは難しいように思えるかもしれませんが、smalltalk の場合、IDE によって非常に簡単になるため、貢献しないという誘惑に抵抗することが課題になります。
他の人がまだコードを書いている頃には、あなたは自分のコードを完成させ、自分が何をしたのか、そしてその理由を実際に理解するでしょう。それは決して小さなことではありません。Python にこれほど優れた IDE または他の言語があればいいのにと思います。しかし、私の経験から、これに近いのは Delphi だけです。そして Delphi の場合でも、私はまだ squeak と pharo を好みます。
他のIDEについて私が厄介だと思うのは、それらはまったくIDESではないということです。それらは単なる美化されたエディタであり、ロックされており、柔軟性がなく、編集できません(別のプログラミング言語を使用して大量のソースコードをナビゲートするつもりがない限り)。Squeak 、 Pharo 、およびその他すべての smalltalk 方言は、本当に便利なツールを提供する真に洗練された IDE を提供します。他の IDE は、smalltalk を詳しく調べて、IDE であることが何を意味するのかを理解することをお勧めします。
これらすべての良いことを言っても、smalltalk は完璧にはほど遠いものです。そして、その最大の弱点と欠点は、初心者が頭から飛び出すのに役立つ楽しくて役立つドキュメントがないことだと思います. Squeak By Example 同様に Pharo By Example は私にとって大きな失望でした。どちらも、両方のプラットフォームで非常に貴重な洞察を提供する非常に重要な 2 冊の本ですが、ドキュメントの品質は平凡なものから悪いものまでさまざまです。主な理由は、両方の本が非初心者向けのアプローチに従っていることです。最初に、IDE を詳しく説明し、第 1 章からデバッガー、さらには単体テストまで紹介します !!! 私にとってこれは大きな間違いであり、プログラミングの初心者ではありませんが、説明されたことをフォローアップするのに苦労しなければなりませんでした. それから本自体は、多くの未回答の質問をさせてくれます. たとえば、インスタンス変数とクラス変数の説明は十分ではありません。how だけでなく、why も示すいくつかの例をお勧めします。本のいくつかの領域には、ギャップがいっぱいであるか、理解するのが難しいだけです.
このリンクhttp://stephane.ducasse.free.fr/FreeBooks.htmlを見つけて、そこから「Smalltalk by Example」をダウンロードしたとき、私の人生はずっと楽になりました。タイトルですが、あなたが誰で、何を知っているかについての仮定はありません。私はそれを強くお勧めします。無料で提供されている他の本も非常に優れていると読んだので、最終的にはすべてダウンロードして読むつもりです。
多くの助けが irc.freenode.net でも #squeak されており、そこにいる人々は私の質問に答え、理解するのを助けてくれました。
Squeak wiki は問題ありませんが、十分ではありません。また、あまりよく構成されていません。コメントやディスカッションが wiki ドキュメント内に表示されるのも好きではありません。そのため、ドキュメンテーションは一般的に初心者にとっては少し苦労する可能性があり、確かに Smalltalk は簡単に習得できるプログラミング言語ではありません。私は多くのスモールトーカーが別のことを言っているのを聞いており、スモールトークとPythonを比較すると、昼と夜のようなものです。しかし !smalltalk を理解すると、これまでに学んだどのプログラミング言語よりもはるかに簡単にプログラミングできるようになり、ほとんどのプログラミング言語を習得できました。したがって、最終的には Smalltalk が明らかに有利だと思います。また、あらゆる C ライブラリを簡単に呼び出すことができる FFI ライブラリも気に入っています。
最初に言語を学び、次に IDE を学ぶ必要はないと思います。IDE が言語とそのライブラリ、およびその中のあらゆる種類のコードを理解するのに役立つという単純な事実を考えると、実際には非常に悪い考えです。言語と IDE は兄妹、陰と陽のようなものです。