アカウント名:
パスワード:
自分はObjective-Cの評価をできるほど、理解していないという自覚ぐらいはあります(w
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
Objective Cは? (スコア:0)
もっとも、Macの開発言語として存在するだけ、成功している方なのかもしれませんが。
Re:Objective Cは? (スコア:0)
Re:Objective Cは? (スコア:3, 参考になる)
まぁ、それはCarbonとCocoaという2つの選択肢を与えているコトをふまえた上で言えるのかもしれないけど。
Objective-Cを“言語”として耳にすると、未知のマイナー言語として大きな障害に聞こえるけど、実際Objective-Cの大部分はスーパーセットであるC言語だから、Cを習得している人なら学習コストは少ない。少なくともちょっと大きなC/C++ライブラリやフレームワークを覚えるより全然楽。
また、Objective-CのLL言語系に近い動的具合はC++やJavaがまねできないし、実際にGUIのフレームワークとしてともて相性がいい。少なくともC+++MFCよりも全然いい感じ。
iPhoneのSDKはObjective-Cらしく、Apple自身もその優位性を見いだしていると思えるし、Apple製品の好調ぶりと比例して少しずつ認知されていくでしょう。
Re: (スコア:0)
というよりは、
CocoaとかといったMacのフレームワークが、
ObjectiveCの利点(たとえば動的なところ)をばりばり活かす設計になってる、
っていうところが重要なんでしょうね。
>実際Objective-Cの大部分はスーパーセットであるC言語だから、Cを習得している人なら学習コストは少ない。
ええ?そうかな?相違点であるOOPのかぶせ具合が隔週コストを招くと思うけど。
ただ、だから悪いといいたいんじゃなく、ObjectiveCのOOPは、時間かけてでもいちど学んでおくに値すると思う。少なくともC++やJavaのよりは余程
Re:Objective Cは? (スコア:1)
SmallTalkもCもC++も知っている身としては、言語の学習コストはほぼ0でした。AppKit/CocoaやUIKit/Cocoa についてはまだまだ学習コストがたまっていく感じ。
そもそも実用的にはObjectiveCやCocoaに限らず、「言語の学習コスト << フレームワークの学習コスト」です。C言語についても(アセンブラ知ってれば)3日で覚えられます(演算子順位などはマニュアルを見ながら書けば良い)が、printf()やFILE構造体、fopen()などの標準ライブラリの使い方を覚える方は1月くらいはかかるはず。設計としてはUI側からみた大枠のMVCはCocoa/ObjectiveCで書き、Mの中からロジック部分を抜きだしてそこはtemplateばりばりのC++で書く、というのが私のスタイルになっています。glueになるMのところは ObjectiveC++です。すなわちフレームワークから遠いところはObjectiveCで書く必要はない。
話は発散しましたが、言語なんてどうでも良くて「フレームワークこそが問題」で、ただしCocoaのフレームワークの場合はObjectiveCじゃないと利用しづらいので(Cocoa javaは失敗作だと思います、もともと無理があった)ObjectiveCである、ということ。そもそもObjectiveCの発生の起源を考えてもNextを動かすために出来た言語だと言っても良いと思います。
またObjectiveCから見れば、それが成功しているかどうかはおいといて、MacOSXで採用されている事実はその普及にとって非常に大きなプラスであることも事実。
あと、このツリーでの別の話題について言えば、AppleはObjectiveCを選んだのではなくジョブズがNextを持ち込んだだけでしょう。その際にpostscript→pdfにしたのは一般ユーザから見れば成功だったかも(OS側が「PDF出力できるプリンタ」を用意しているので、どんなプリントできるアプリでもPDF出力が出来る。これがPSだと一般ユーザはうれしくない)。
Best regards, でぃーすけ
Re: (スコア:0)
Re: (スコア:0)
Objective-Cを選んだんじゃなくて、BeOSにふられてNEXTSTEPを選んだだけでしょ? BeOSと仲良くなっていたら、いまどきのMacの開発言語はC++だったろうね。
Objective-Cは、ブロックを除いたSmalltalkもどきですから、シンタックスはすぐに覚えられる。しかし、CocoaなどのFrameworkはすぐに覚えられるものでもないのは、ほかのクラスライブラリとそんなに変わらない。
C/C++に慣れたプログラマは、インスタンスのデータ型がないことに違和感があると思う。そこがいいんだが(^^;
Re:Objective Cは? (スコア:2, 興味深い)
なぜ良いかと思うと
・C言語とObjectiveな部分が切り離してある
・隠蔽がしやすい
・かといって、内部仕様はポインタでぶっこぬける
・NextStepの進化系であるMacはNextStepの遺産をたくさん使えた。(内部のAPIはNSで始まるクラスばかり)
言語としての好き嫌いはあると思いますが、なぜ失敗なのか理由が聞きたい。
Re: (スコア:0)
ここが一番気に入らない部分で、もっとCの延長で自然にObjectiveに書ける言語を出してくれないもんかと。
Re: (スコア:0)
Re: (スコア:0)
# あらゆる論理的な説明は自明なところまで説明を求められた時点で必ず破綻します。
Re: (スコア:0)
自分はObjective-Cの評価をできるほど、理解していないという自覚ぐらいはあります(w
Re: (スコア:0)