公園にあるオブジェをモノとして見るように、ボタン、テキストボックスなどをモノとしてデザインすることがオブジェクト指向と定義づけをする。ボタン、テキストボックスなどはクラスで実装する。そして動的にふるまう。型付けがない言語はランタイムエラーになる。動かして確認することがモノを扱うコツと考えるのが、クラシック・オブジェクト指向なんだろう。(自分ではクラシック・オブジェクト指向と表現しています。)
グラフィック処理能力が低いときに、ボタン・テキストボックスなどのコントロールを求めすぎだったと思います。
USER INTERFACE GUIDELINES | アジソンウェスレイ | マニュアル |
DEVELOPMENT TOOLS TECHNIQUES | アジソンウェスレイ | マニュアル |
OPERATING SYSTEM SOFTWARE | アジソンウェスレイ | マニュアル |
NETWORK AND SYSTEM ADMINISTRATION | アジソンウェスレイ | マニュアル |
OBEJECT-ORIENTED PROGRAMING AND THE OBJECTIVE C LANGUAGE |
アジソンウェスレイ | マニュアル |
PROGURAMING INTERFACE SUMMARY | アジソンウェスレイ | マニュアル |
ネクストガイドブック NeXT GUIDE BOOK |
SE | SE編集部 |
The NeXT Book |
アジソンウェスレイ トッパン |
B・ウェブスター 竹内清隆&プラン・ドゥグループ |
Objective-Cオブジェクト指向のプログラミング |
アジソンウェスレイ トッパン |
L・J・ピンソン/R・S・ウィナー 石川克己訳 |
オブジェクト指向のプログラミング ソフトウェア開発技法の進化 |
アジソンウェスレイ トッパン |
B.J.コックス |
NextSTEPプログラミング | プレンティスホール |
アレックス・D・ニュム 生田りえ子 |
PCユーザーのためのNEXTSTEP導入ガイド | AI出版 | 本田雅一・寺本貴幸・長野由木雄 |
MacOSXプログラミング入門 Objective-C | 広文社 | 荻原剛志 |
MacOS X Cocoa プログラミング 第3版 | ピアソン・エデュケーション | アーロン・ヒレガス/村上雅幸 |
OpenStep for Enterprise | 毎日コミュニケーション |
Nancy Craighill 椎名遥/酒匂雫 |
NeXTComputerをキャノンゼロワンショップで見たときは衝撃でした。本体価格は高価でとても手が出ないのでせめて本を購入して勉強しようと思いました。まだ、所持して本棚にある書籍一覧が上記のものです。いつか、NeXTSTEPを使ってみたいと思い、InterfaceBuilderでコーディングしたいと願っていました。ずっと「夢の途中」として置き放しのままでした。やがて、NextSoftwareがAppleに買収されて開発環境はMacOS XのCocoaになりました。MacOS X TigerのObjective-Cでコーディングしたときは、やっと「夢が叶った」と感動もありました。でも、自分としてはグレーの角張ったデザインがやっぱり良いと思い込んでいるので、「夢の続き」は「GNU Step」でやってみようと思っています。
Little Smalltalk入門 | アスキー出版局 | Timothy Budd |
オブジェクト指向プログラミング | アスキー出版局 | 石塚圭樹/横手晴彦 |
オブジェクト指向入門 | オーム社 | 酒井博敬/堀内 一 |
オブジェクト指向とSmalltalk システム操作入門から信号処理への応用まで |
CQ出版 | 小林史典 |
Smalltalk/Vによるオブジェクト指向プログラミング |
日刊工業新聞社 | 加藤木和夫 |
Smalltalkベスト・プラクティクス シンプル・デザインへの宝石集 |
ピアソン・エデュケーション | ケント・ベック |
Smalltalkで考えさせられるのは、OS・言語・ハードウェアがセットになっていることです。
メモリ管理は、OSがメモリ(ハードウェア)管理するものと役割分担が明確になっていました。
3つがセットになっていることも興味を惹くのですが、プログラミング言語として考えると、
・C++は、C言語でSimulaを実現した。
・Objective-Cは、C言語でSmalltalkを実現した。
別々のアプローチでおもしろいと思い、Smalltalkを勉強してみる気になりました。
SmalltalkのC言語版なので、Objective-Cは最初からオブジェクト指向が言語で実装されていました。
コックス氏の本で、ボタン、テキストボックスがオブジェクトの階層で表現されています。
結局は、「ウィンドウシステムのインターフェースが、イコールオブジェクト指向になる。」
それが判っただけでした。
本当は、Objective-C、Smalltalkどちらもあまり習得の勉強は進まなかった。
理由は、言語構造が旧くてObjective-Cについては、C言語特有のメモリ管理がついてまわりインテリジェンスでない。
メモリリークしないようにちゃんとPG設計をするものと言えばそれまでですが、タッチパネルのような扱いをするアプリ開発においては、もうついて行けていない感じがします。
・VisualStudioでは、C#
・Embarcaderoでは、C++Builder・Delphi
ターゲットになるプラットフォームを問わずアプリを開発できます。
実際、セミナーに参加して実感しました。
ただ、Delphiは名称で損をしているように思います。
DelphiでiPadの開発デモを見たりすると、なかなか良いと思いました。
Embarcadero Studioとかにすれば、もっと開発に使うユーザーも増えるだろうと思ったりします。
(EmbarcaderoJapanのホームぺージを確認したら、RAD Studioとありました。)
いずれにしても、Smalltalk、Objective-Cは過去のものだと実感しました。
iPad/iPhoneは、通信処理などハードウェアに依存する処理などは、Objective-Cが必要かもしれません。
私は、iPad/iPhoneの商用アプリの開発経験がないので詳しいことは知りません。
また、SmalltalkはVisual Worksでコーディング・実行できます。
マニュアルのイメージ