84

私の質問は簡単です!

  1. 時間があれば、Smalltalk の学習を始めませんか? なんで?なぜだめですか?
  2. Smalltalkをご存知ですか?Smalltalkをお勧めする理由は何ですか? なぜだめですか?

個人的には Ruby on Rails プログラマーであり、とても気に入っています。ただ、ブログをいろいろ読んでいるとRubyのことを「Smalltalk Light」みたいに呼んでいる人がいるので、Smalltalkのことを考えています。私が Smalltalk に興味を持った 2 つ目の理由はSeasideです。

たぶん、誰かが以前に同じ移行を行ったことがありますか?

編集:実際、Smalltalk/Seaside について私が最も興奮したのは、WebDevRadio の次のエピソードです:エピソード 52: Randal Schwartz on Seaside (とりわけ)

4

20 に答える 20

62

Ruby が好きなら、おそらく Smalltalk も気に入るはずです。IIRC Seaside は、Gemstone/S OODBMS の一部であるGemstone VM に移植されました。これは Ruby よりもはるかに優れたスレッド サポートを備えているため、大容量システムのバックエンドとして優れています。これは、それを詳しく見てみる良い理由かもしれません。

Smalltalk を学ぶ理由:

  • 本当に素晴らしいプログラミング環境です。理解が深まれば (C++ や Java に慣れている人にとっては、ちょっとしたカルチャー ショックになる傾向があります)、仕事をするのに本当に良い環境であることがわかるでしょう。私が使っていた古い Digitalk のものは、非常に使いやすいシステムです。Kent BeckMartin Fowlerのような古い XP や OO のグル タイプの多くは、当時Smalltalk に慣れ親しんでおり、公の場で古き良き時代を懐かしむ声が時折聞こえてきます(Frank Shearer の引用に感謝します。+1) -アジャイル開発はこのプラットフォームで始まりました。

  • これは、歴史上最も生産性の高い開発プラットフォームの 1 つです。

  • いくつかの成熟した実装が存在し、そこには驚くほど大きなコード ベースがあります。ある時点で、開発者の生産性と市場投入までの時間が非常に重要な金融市場のサークルで非常にトレンディになりました. 1990 年代半ばまで、アプリケーション開発に適した商業的にサポートされている高水準言語が必要な場合、それは多かれ少なかれ唯一のゲームでした (LISP は例外の可能性があります)。

  • 展開は簡単です。イメージ ファイルを適切なディレクトリにドロップするだけです。

  • 特に理由はありませんが、Gang of Four Bookはかなりの数の例で Smalltalk を使用しています。

Smalltalk を学ばない理由:

  • それはニッチな市場の何かです。仕事探しに苦労するかもしれません。ただし、サーバーを所有するある種の.com アプリケーションを作成している場合、これは問題にならない可能性があります。

  • これは、多くの人からレガシー システムと見なされています。プラットフォーム上での新しい開発は比較的少ないです (ただし、シーサイドは少しルネッサンスを推進しているようです)。

  • 従来のソース管理システムではうまく機能しない傾向があります (少なくとも私が使用した 90 年代前半から半ばまで)。これは、まだそうかもしれませんし、そうでないかもしれません。

  • やや閉鎖的で、一人で遊ぶのが好きです。Python または Ruby は、最初から統合用に構築されており、より乱雑になる傾向があるため、サードパーティ ソフトウェアとの統合が容易になります。ただし、他のさまざまなより主流のシステムは、多かれ少なかれこのタイプの閉鎖性に悩まされており、それらの使用をそれほど妨げているようには見えません.

于 2008-09-29T15:51:53.630 に答える
47

ええと、あなたが私の名前を挙げてくれたので、声を上げるべきだと思います。

そのポッドキャストのインタビューで述べたように、またhttp://MethodsAndMessages.vox.com/のブログで繰り返し説明したように、今年は「smalltalk の年」です。そして、過去 10 か月間 Smalltalk の擁護活動を行ってきた今、それが実際に起こっていることがわかります。Smalltalk と Seaside に注目する顧客が増えており、Smalltalk ベンダーは皆、この新しい注目の流入を捉えようと懸命に取り組んでいます。さらに大規模な Smalltalk カンファレンスが計画されています。以上の求人情報が掲載されています。ブログの投稿が増えています。

今日 Smalltalk を利用するのは、あなただけではありません。他にもたくさんの人がいます。

編集

それから何年も経った今、私は代わりにDartを推奨しています。これは Google が開発した優れた言語ですが、現在は ECMA 委員会が所有しています。Node.js スタイルでサーバー側を実行しますが、JavaScript にトランスパイルすることにより、最新のブラウザーでクライアント側も実行します。多くの優れた書籍、ブログ、ヘルプ チャネル、IDE サポート、公開ライブ ペーストビン。私はそれが間違いなく脚を持っていると思います.オンサイトまたはオンラインで教えるコースウェアを書いているので、私からの本が1つか2つあると確信しています. また、昔の Smalltalker である Gilad Bracha が設計に大きく貢献しているため、Dart には多数の Smalltalk があります。

于 2008-09-29T22:23:01.677 に答える
31

Smalltalk は学習するのに適した言語であり、素晴らしいことは、学習に 1 日しかかからないことです。それは単なるアカデミックな言語ではありません。人々は、数十億ドルを扱う巨大でスケーラブルで複製可能なアプリケーションを構築しています。彼らはそれについてあまり話しません。たとえば、GemStone と Orient Overseas Container Lines: A Shipping Industry Case Studyを参照してください。

Seaside は Smalltalk を学ぶ良い理由ですが、Rails より桁違いに優れているとは思えません。

そう確信したのはGemStoneでした。Gemstone の GLASS (GemStone、Linux、Apache、Smalltalk、Seaside) が大好きです。そのキラーな部分は GemStone です。GemStone は、オブジェクトの永続化をほとんど何も考えずに処理します。彼らのデモをいくつか見て、GemStone で人々が何をしているかを聞いて、「大きなアプリケーション」が何を意味するかについての私の考えをリセットしました。

Rails で最も気になる部分は、オブジェクト リレーショナル マッピングです。それは、GLORP (Smalltalk の ActiveRecord を処理する) や Perl などで同じようにうまくいかないため、Ruby に対して何も悪いことではありません。オブジェクトをデータベース テーブルにマッピングするのは苦痛です。GemStone ではデータベースのことを考えることがなくなるので、データベースに関する作業もなくなります。背中から巨大な石(またはサルの群れ)が取り除かれるようなものです。

于 2008-09-29T22:27:49.247 に答える
16

> 腕も足もかからない Smalltalk 開発環境が見つからなかった

Google - 無料のスモールトーク

Cincom Smalltalk、Squeak、GNU Smalltalk

于 2008-09-29T15:11:43.117 に答える
15

Smalltalk を学ぶことで、OO を発明した人物 (Alan Kay) の視点から、オブジェクト指向ソフトウェア開発の基礎を築くことができます。重複するウィンドウ環境のアイデアは、Smalltalk から生まれました。

Smalltalk を学習する際の障害は、それが次のようなフロー制御のための奇妙な構文を持つメッセージ パッシング システムであることです。

i < 60
   ifTrue: [ self walk ]

これには非常に成熟したクラス ライブラリがあり、あまり多くの場所を見たことがない一貫性があります。すべての環境 (商用の Smalltalk を含む) のクラス ライブラリには、言語の達人から学ぶことができる利用可能なソースがあります。Smalltalk をプログラミングするとき、私はいつも環境でそれがどのように行われるのかという質問をします。

Smalltalk は通常、システム内のすべてのオブジェクトのライブ環境であるイメージに実装されます。

対話型デバッガーは、Ruby から Smalltalk を本当に分離します。

Seaside は Web 開発フレームワークであり、Smalltalk に新たなスポットライトを当てています。ヒット内デバッグとリッチクライアント型のスムーズな開発体験を可能にする継続ベースの環境です(トップアプリケーションフローは単一のメソッドで設計できます)。script.aculo.us との統合は、Smalltalk 内から簡単に呼び出せるように行われています。

于 2008-09-29T15:15:13.623 に答える
10

ナイジェル、私が持っている1つの引用はこれです:

何かをしてから久しぶりですが、Smalltalkを指名しますが、コンピュータコードに思考を移すことができるという点で、これほど素晴らしいものはまだありません。それは言語だけではありません。それは素晴らしいブラウザ環境、ライブラリ、そして他の何よりも早くスパゲッティを生み出すことができるように明確でうまく設計されたコードを書く文化です。JavaOneの参加者が、Javaの生産性が他の何よりもはるかに優れていることを称賛していたとき、私は茶色の紙袋が必要でした。さて、クラスパスの整理に戻りましょう...-Martin Fowler(Software Development Magazine、2001年1月)

ここで見つけました。

于 2008-09-30T13:17:38.267 に答える
10

大規模なアプリには Smalltalk を使用しないだろうと考えている投稿者には同意しませんが、まさにそれが優れているところです。しかし、かなりグルーヴィーな (小文字に注意) プロトタイプ アプリも 1 週間以内に作成しました。

私は 92 年から ST で OO を学びました。OO の本当の背景を教えてくれました。授業で考える。タイプなし。STはメッセージングを非常に重視しています。何かを知りたい場合は、オブジェクトにメッセージを送信して回答を得ます。私見、精神とIDEは、結合と結束で正しいことをすることを本当に奨励しています.

私の Java の日常業務では、ST IDE よりも桁違いに生産性が低いファイル、ジェネリック、Eclipse のような IDE に悩まされています。STを使っていたのは、開発が予定より早く終わったときだけでした。実際、それは非常に生産的で、再利用が多すぎたので、何もすることがなかったので、別のプロジェクトに移動する必要がありました! (わかりました、多分私は推定することを学ぶのに時間を費やすことができたでしょう...)

squeak をダウンロードし、良い本を見つけて遊んでください。唯一の欠点は、日常業務で Java または C# を使用している場合、ST を使用したいと思うようになることです。あなたはもっと早く家に帰るでしょう。

クリス・ブルックス

于 2008-10-14T11:41:21.827 に答える
9

Lisp (Scheme) または Smalltalk を学ぶことをお勧めします。

Smalltalk には、カルチャー ショックを乗り越えた後に見逃せない素晴らしい IDE があります。はい、複数の無料のものがあります: Squeak、Dolphin、Smalltalk/X、および Visualworks (非商用)。

ただし、Lisp はその数学的な基盤においてさらにクリーンである可能性があります。

よろしく

PS: 実際には両方を学ぶことをお勧めします!

于 2008-12-23T00:53:28.933 に答える
8

ルビーはわかりません..

Smalltalk は純粋なOO 言語です。最も一般的な「OO」言語 (C++、Java など) のシミュレートされた OO だけでなく、OO を本当に理解する必要があると感じる場合は、smalltalk で遊ぶことをお勧めします。

smalltalk では、属性、動作、およびメタを備えたすべてがオブジェクトです。シミュレーションでは、オブジェクトで使用するデータ型があります。

私はそれで遊ぶと言うでしょう、あなたは利益を得るだけです.

于 2008-09-29T15:09:13.030 に答える
7

私は完全にあなたの立場です。私は RoR を使用しており、Smalltalk の土地を調べています。私が重要だと思ういくつかの長所と短所を次に示します。

長所:

  • 成熟した安定した環境
  • 迅速な開発サイクル
  • もっと考えさせて、書くことを減らす

短所:

  • 違う考え方が必要
  • それでもよく分からなかった

どうやって Smalltalk を知ったのか、とても面白いです。Lisp や Erlang のものを検索しているときに、Google の結果にポップアップし続けるのは、この 1 つのことでした。ある日、私はそれをチェックして、すばらしい Windows 環境に驚きました。しばらくすると、Aida/Web フレームワークが見つかりました。私はハマってしまい、このフレームワークを使った Web 開発を通じて Smalltalk を学び始めました。

まだ十分ではありませんが、とても面白くてじっと座っていられません... :-) また楽しんでいます。

于 2009-01-16T12:05:43.187 に答える
5

しないでください!本当にそれを学び始めたら、もう他の何かでプログラミングしたくないかもしれません.

あなたがLispプログラマーなら、これは正しくないかもしれません。

于 2010-01-22T00:12:13.273 に答える
5

時間があれば、それを学び始めませんでした。なぜだめですか?C# や Java を学ぶ方が生産的で経済的に有利だからです。

一方、あなたが愛好家で、考古学的な発掘に行きたい場合は、アラン・ケイを研究して、スモールトークの何、いつ、なぜ、どのように見ていくのに時間を費やすことをお勧めします. 魅力的なストーリーと信じられないほどの人物 (結局、彼はターニング賞を受賞しました)。次に、squeak で少し遊んで、言語の感覚を掴んでください。この後、ブロック、クロージャー、およびオブジェクト指向の原則に対する新たな敬意/理解が得られるかもしれません。

私は Smalltalk のことを知っており、使用しています。約 15 年間使用しており、まだ維持していますが、Smalltalk を友人に勧めることはありません。なぜだめですか?雇用は、持っていて、得続けるのは良いことです。Smalltalk から多くのことを学ぶことができますが、それをこの時代に雇用されて利益を得ることに簡単に変えることはできません。

また、あなたはシーサイドに興奮しているように見えたので、私はシーサイドとジェムストーンのパートナーシップを推測します. 私はかなり長い間 GemStone を使用してきましたが、この 2 つを組み合わせると非常に魅力的です。彼らが成功するために必要な市場シェアと勢いを得られることを願っています。

于 2008-12-07T03:32:19.667 に答える
4

絶対、Smalltalkを学びましょう!これは 2015 年で、 Pharoのおかげで Smalltalk が再び台頭しています。ファロは無料です。Pharo は強力なエンタープライズ ツールへと急速に進化しています。バージョン 4.0 で、まもなく 5.0 になり、わずか 4 年で大幅に成熟しました。

次に、Web 用の Smalltalk であるAmberがあります。また、無料で急速に進化しています。

Smalltalk の評判にもかかわらず、これはあなたのお父さんの Smalltalk ではありません。現代の Smalltalk は刺激的で有望です。

確かに、Smalltalk の仕事は (まだ) 豊富ではありません。しかし、十分な数の Smalltalker の新しい波に集まることができれば、業界はそれに適応し、ビジネスで Smalltalk がより広く採用されるようになるでしょう。問題は、ビジョンを持っているかどうかです。

于 2015-11-25T21:24:23.823 に答える
3

私はかなりの数年間ソフトウェアエンジニアをしています。人々が Smalltalk について何度か持ち出しているのを聞いたことがあります。確かに Smalltalk は 1980 年頃から存在していましたが、ソフトウェアの主流には決してなっていないように見える言語の 1 つです。Objective C、CLIPS、PL/I など、聞いたことはあるかもしれませんが、ほとんどの人はプログラミングしたことがないものです。

私は、特定の仕事で必要でない限り、Smalltalk を学ぶのに時間をかけないでしょう。数年前にいくつかの Smalltalk のチュートリアルと例を簡単に見ましたが、OO プログラミングの特定の側面に対していくつかの明確な利点があるように見えます (メッセージの概念がクールに見えるなど)。しかし悲しいことに、それは主流ではなく、あまり勢いを増していないようです.

于 2008-09-29T15:27:31.287 に答える
3

エクストリーム プログラミング (およびスクラム) をよりよく理解したい場合は、「はい」と答えます。

せっかちな Java プログラマーが Smalltalk を学ぶ必要がある理由:

http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/

于 2010-08-04T17:24:31.207 に答える
3

私は最初の大学院レベルのオブジェクト指向プログラミング コースの 1 つ (1988 年頃) で Smalltalk を教えられました。先生は、「純粋な」オブジェクト指向言語から始めるのが最善だと考え、よりトレンディなオブジェクト指向言語に移行しました (学期の終わりに C++ を少しやりました)。

その尺度では、まだ純粋な OO から始めるのが最善ですが、最近では Java と C# があり、どちらも「ほぼ純粋な」OO です。それらの非 OO 機能を無視することで得られるほど十分に近いものです。言語の Pure-OO サブセットに自分自身を制限します。

于 2008-09-29T15:05:32.290 に答える
2

1)はい!言語を学ぶことは常に良いことです。言語を学ぶ場合は、簡単かつ迅速に習得できる強力で影響力のある言語にします。

Smalltalk は、OO の概念を学習するための優れた言語および環境であり続けています。

それはすべてのオブジェクトです。これにより、作業に対する真に一貫したアプローチが可能になります。

整数は Class Integer のインスタンスです。文字列は、文字オブジェクトのコレクションです。クラスは、定義するクラスのシングルトン インスタンス オブジェクトです。

制御構造は、Get メッセージを Class Boolean のインスタンスに送信することによって機能します。

匿名メソッド (コードのブロック、別名ブロック) でさえオブジェクトです。

すべては、オブジェクトにメッセージを送信することによって行われます。構文ははがきに収まります。

Smalltalk での概念とその実装の明快さは、Java、Ruby、および C# に直接移行する考え方を開発できることを意味します。Pythonにも当てはまると思います。

概念を明確にするのに非常に優れており、英国の主要な大学が Smalltalk を使用して、年間 5,000 人のオブジェクト指向コンピューティングのトレーニングを行っています。

Squeak 5 がリリースされました。プログレッシブ ガベージ コレクションを備えた新しい Cog/Spur VM により、パフォーマンスが大幅に向上しました。

Pharo 4 のデスクトップ テーマはすっきりとした美しいデザインです。次のバージョンである Pharo 5 が間もなくリリースされます。Cog/Spur VM の使用に移行し、リリースには約 5,000 のクラスが含まれ、追加のクラス パッケージは、構成ブラウザー ツールを介してネットから簡単に入手できます。

Squeak 5 は第 1 世代の Raspberry Pi でもパフォーマンスが高く、新しい $5 の Raspberry Pi zero ではほぼ 50% 高速です。99 ドルで Raspberry Pi 2、画面、およびケースを購入できます - 成熟した完全な機能を備えた IDE を実行します。

最先端の研究は、Smalltalk の調整された分散 OO システム (Naiad や Spoon など) で行われています。

世界最大の企業データベースのいくつかが Smalltalk で実行されています。これには、世界の輸送コンテナの 60% の追跡や、世界最大の銀行の取引システムが含まれます。

Smalltalk は、 Amber Smalltalkで記述し、ブラウザーで実行される JavaScript にトランスパイルする、一種の強力な CoffeeScript として使用できます。

Squeak、Pharo、および Amber はすべて、無料でオープン ソースのオープン ライセンスの言語および環境です。

Squeak と Pharo は、MacOS、Windows、および Linux 向けに、一度書き込みを行えばどこでも実行できる機能を提供します。(おそらくRiscOSも)。

Dolphin Smalltalk は、ネイティブ Windows のルック アンド フィールをしっかりとターゲットにしており、完成した作品のクローズド .exe をコンパイルしてエンド ユーザーに配布できます。ベンダーによる Dolphin のさらなる開発は中止されましたが、完全に機能しており、すべての Smalltalk と同様に、大幅に拡張できるように設計されています。(Squeak の 3,000 と比較して、Pharo には現在 5,000 のクラスがあると言いましたか? Pharo は Squeak 3.9 のフォークです)

**Squeak、Amber、Pharo、Cuis、Dolphin のインストールと起動に関するハウツー ガイドは、次の URL にあります。** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk- up-and-running.html

Seaside Web フレームワークは、Squeak と Pharo で実行されます。より伝統的な AidaWeb フレームワークと同様に、これは素晴らしい成熟したツールです。

VisualAge、VisualWorks、および Gemstone はすべて、エンタープライズ グレードの堅牢なシステムを提供します。Gemstone は、トランザクションと永続性を備えた無限にスケーラブルなオブジェクト データベースを提供します。

2) はい - すでに使用しています。

私はオープンユニバーシティを通じてそれを学び、すぐにRubyで生産的になりました(私のそばにあるツルハシの本のコピーとライブラリリファレンス)。それは Java と Xerox Moo-code で私を大いに助けてくれました。

レスポンシブで大規模なマルチプラットフォーム モバイル アプリの管理と配布を制御するためのアプリを作成するために戻ってきました。

近いうちに、JavaScript モバイル アプリも Amber を使用して書き直すことになると思います。

于 2015-11-28T19:59:42.313 に答える
2

このスレッドは私にとって非常に現実的なものになりました。ソフトウェアの Web アプリケーションへの移行を計画しています。データベースベースのソフトウェアです。私は特に代替案をチェックしています 1) Rails 2) Seaside

ジェムストーン/Sの数値がデータベースとして入手できれば、それも検討します。つまり、以前よりも Smalltalk を (よりよく) 学ばなければならないということです。それが今後15年間の私の仕事になるかもしれないからです。好きではないソフトウェアをそれほど長く使用することはありません (そしてすべきではありません) ;-)。Gemstone/S は「キラー」アプリケーションの 1 つという印象を受けました。しかし、オブジェクトの永続性は依然として非常に難しい分野です....

于 2009-12-30T07:40:30.203 に答える
1

私はあなたが探しているものを本当に知りません。

別の言語で書く場合は、利用可能なライブラリに大きく依存すると思います。私は Ruby も Smalltalk も知りませんが、Ruby on Rails のようなアプリケーションを作成する最も効率的な方法は、Smalltalk ではないかもしれません。

Ruby の背後にあるアイデアを学びたいのであれば、これは非常に良い方法かもしれません。私は定量的なものは何も持っていませんが、ツール (言語システムなど) の背後にあるアイデアやその仕組みを知っていれば、ツール以上のことを知っていれば、ツールを使用することについて常に気分が良くなります。

さまざまな種類のオブジェクト指向言語を学習したい場合は、(Ruby と大きく異なる場合は) Smalltalk、Java や C++ など、そしておそらく Common Lisp Object System も学習することをお勧めします。

何か違うことを学びたいだけなら、Smalltalk は良い選択かもしれません。また、Common Lisp を提案したいと思いますし、他の人も間違いなく他の提案をするでしょう (最近、良い Forth システムを手に入れることができますか?)。

于 2008-09-29T15:31:50.683 に答える
-5

はい、興味があります。一度始めてみましたが、腕も足もかからないSmalltalk開発環境が見つかりませんでした。

于 2008-09-29T15:08:02.347 に答える