4

Python、Ruby、および PHP の IDE に取り組んでいます。

私は Smallltalk を使ったことがありません (私が大学時代に非常に人気がありました)。メソッドを 1 つだけ表示する従来の Smalltalk ブラウザは、本当に従来のファイル編集の改善なのか、そうでないのか疑問に思います。

私自身は、クラスでできるだけ多くの概要を把握するのが好きです。現在、24 インチの 1280x1920 ディスプレイを 2 列モードで使用しており、1 列に多くの行を表示できます。

個人的には、たとえば、ユーザーがすべての定義 (関数コード本体) を 1 回のキーストロークで折りたたむことができる優れたコード折りたたみエディターもある場合、どのような利点があるのか​​ 疑問に思う必要があります。

しかし、時々、ニュースグループで xxx をもっとつまらないものにしてほしいというリクエストを見かけます。画像ベースのバージョンが必要な人もいるかもしれませんが、ブラウザは 2 番目に異なる Smalltalk の発明でした。

4

6 に答える 6

5

Smalltalk ブラウザには 2 つの部分があります。上の部分にはパッケージ、クラス、プロトコル、およびメソッド/メッセージが表示され、下の部分には 1 つのメソッドのコンテンツが表示されます。これは、コード行のウェブとしてではなく、署名と名前を考慮してプログラムを設計/コーディングする場合に非常に役立ちます。

署名に集中すると、システムが相互にメッセージを送信するオブジェクトのコラボレーションとして設計される、より「オブジェクト指向」なスタイルにつながる可能性があります。このパラダイムでは、メソッド名は実装方法よりも重要です。

非常に大きな画面を使用している場合 (私も持っています :-))、いくつかの smalltalk ブラウザーを開いて、いくつかの異なるパッケージやクラスを参照 (およびコーディング) することができます。さらに、オブジェクトをテストして操作するための worspace と xUnit もあるでしょう。

Squeak 用に作成されたウィスカー エディターを参照することをお勧めします。名前と署名のナビゲーションと、コードの探索行との間の非常に良いバランスを提案します。スクリーンショットはそのダイナミクスと、コードの「ボックス」をどのようにナビゲートするかを示していないため、試してみる必要があります。

http://www.mindspring.com/~dway/smalltalk/whisker.html

于 2009-08-19T10:50:19.957 に答える
3

Eclipseは、ブラウザのようなSmalltalk、Javaブラウジングパースペクティブを提供します。私自身はスモールトーカーですが、ほとんど使用していません。なんで?Smalltalk IDEがブラウザではなくデバッガである場合、強力な部分です。Smalltalkをコーディングするときは、最初にすべてのテストを実行してから、テストの実行中にデバッガーで欠落しているすべてのメソッドを修正します。他の言語でこれを使用すると、次のようになります... WOW JUST WOWなので、先に進んでこれを実行してください:)

于 2009-08-26T13:40:15.923 に答える
2

VisualAge for Java は、コーディングに Smalltalk ブラウザー モデルを使用しました。私は、彼ら (IBM) が典型的なファイル ベースの言語をより高い概念モードに引き上げる素晴らしい仕事をしたと思いました。インスタンス化には、優れたリファクタリング ツールを VAJ に導入するための優れたアドオンさえありました (人々は、どの言語リファクタリング ツールが最初に導入されたかを知らないか、忘れています... 推測してください ;) もちろん、私は Smalltalk に慣れていましたが、その後、C++ に移り、何年もの間 (多すぎます)、Smalltalk のようなものを見て喜んでいました。IBM が Eclipse に真剣に取り組んでいるのを見たとき、私は驚きました。

しかし、当時の同僚のほとんどは、.java ファイルのテキスト全体を一度に見ることができないことを好まなかった。私は、「一度にすべてのクラス ファイルを表示できるように、クラスに 1 つのメソッドだけを用意するのはなぜでしょうか?」と尋ねます。すると、誰かが「それでは、自分のコードをまったくうまく分解できないだろう!」と答えるでしょう。「あなたのコードがうまく分解されているなら、なぜすべてのメソッドを一度に見る必要があるのですか?」と私は答えます。そして、どういうわけか物事が遅くなるという反応を得るでしょう...

コードデータベースがテキストファイルのシステムであるという事実を目の当たりにし、そのような方法でコードを操作することを強制する開発環境は、私には常に遅れているように思えました...特にオブジェクト指向言語の場合.

そうは言っても、従来の Smalltalk ブラウザには気に入らない点がいくつかあります。開いてアクセスしたブラウザー インスタンス間を移動するためのより良い方法が必要になることがよくありました。コードを操作するときはいつでも、操作しているメソッドとクラスのコンテキスト (変更および/または表示) が常に存在します。作業中に動的に展開するコンテキストをナビゲートする方が簡単なはずです。また、一度に 2 ~ 3 個のメソッド本体のビューを簡単に構成できるようにしたいと考えています。これは、少なくとも 1 つのファイルについて、コード折りたたみエディターが提供できるものです...

于 2009-08-19T21:47:58.680 に答える
1

クラス ブラウザには 1 つのメソッドしか表示されないと言うのは、少し単純化したものです。実際には、生のソースコードが通常行うよりもはるかに組織化された方法で多くのメソッドを示しています。これらのうち、どれが欲しいものを見つけやすいと思うか考えてみてください。

class Thing
  def foo
    blah blah blah
    blah.each do |blah|
      blah blah blah blah
      blah.collect {|blah, blah| blah blah blah}
    end
  end


  def bar(blah)
    blah blah blah
    blah.each do |blah|
      blah blah blah blah
      blah.collect {|blah, blah| blah blah blah}
    end
  end
end

class Fob
  def foo
    blah blah blah
    blah.each do |blah|
      blah blah blah blah
      blah.collect {|blah, blah| blah blah blah}
    end
  end


  def bar(blah)
    blah blah blah
    blah.each do |blah|
      blah blah blah blah
      blah.collect {|blah, blah| blah blah blah}
    end
  end
end

または:

Classes     Methods

Thing   ->  foo     ->  blah blah blah
Fob         bar         blah.each do |blah|
                          blah blah blah blah
                          blah.collect {|blah, blah| blah blah blah}
                        end

そして、実際の Smalltalk クラスのブラウザーは、私のばかげた小さなプレーンテキストのモックアップよりもはるかに強力ですが、Ruby のソースは実際にはそのように見えます。クラス ブラウザを使用すると、クラスを一連の抽象的なテキストではなく、自律的な動作を備えた実際のエンティティと考えることができます。

于 2009-08-19T06:49:11.940 に答える
0

私は Smalltalk ブラウザー (私の場合は Squeak) と好き嫌いの関係にあります。スライスしたパン以来最高のものだと思うこともあれば、歯ぎしりをすることもあります。Smalltalk の問題点は、基本的にブラウザだけで十分だということです。もちろん、自分で書くこともできますが、その道をたどる人はほとんどいません。一方、ファイルベースの言語では、必要に応じてまったく異なるエディターや環境を使用して、コードを見る方法を選択できます。しかし、一度に 1 つのメソッドしか見ることができないコードを見る方法があります。

于 2009-08-19T08:12:01.383 に答える