アカウント名:
パスワード:
Objective CよりもLISPをまな板に乗せたほうが議論が発散しそう.
同様にしてラテン語やエスペラント語が成功したかどうかも議論できそうですけど.
自分はObjective-Cの評価をできるほど、理解していないという自覚ぐらいはあります(w
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
Objective Cは? (スコア:0)
もっとも、Macの開発言語として存在するだけ、成功している方なのかもしれませんが。
LISPは? (スコア:2, 興味深い)
Objective CよりもLISPをまな板に乗せたほうが議論が発散しそう.
同様にしてラテン語やエスペラント語が成功したかどうかも議論できそうですけど.
Re:LISPは? (スコア:1, 興味深い)
英語もフランス語もドイツ語も全てラテン語の子孫なんだし。
Re:LISPは? (スコア:2, 興味深い)
確かにヨーロッパの多くの言語は、
特に語彙においてラテン語(やギリシア語)の影響を強く受けているのは間違いありません。
しかしラテン語の直接の子孫と言えるのはフランス語やイタリア語、
スペイン語などのいわゆる「ロマンス諸語」と呼ばれるものに限られます。
これに対して英語やドイツ語などはゲルマン語派の西ゲルマン語群に属し
(ラテン語、ロマンス諸語はイタリック語派)、
ラテン語とは共通の祖先である印欧祖語を介した遠戚関係にあるというのが現在の定説です。
そのため、良く似た語があるからといって、それが親子関係にあるとは簡単に断定できないそうです。
それにしてもプログラミング言語を自然言語からどこまで類比して考えることが許されるものなのか、
ちょっと私には判断しかねるものがあります。
;;;興味がおありでしたら「インド・ヨーロッパ語族」等で検索してみてください。
;;;上記の用語法の詳細も検索して出てきたWikipedia の記事 [wikipedia.org]に負っております。
Re:LISPは? (スコア:1)
外交官の公用語がフランス語だったり、いろいろいわく因縁があるせいで、
ラテン語だけでなくフランス語の影響をきわめて強く受けているので、
ゲルマン系の中では特にラテン系の言語に似て感じられるでしょうね。
余談ですが、英語は仏語からの借用語が多いので、日本で利用するときには
発音をどっちかに統一しろと思うときがあります。
「『コンシェルジュ』に『ボン・ボヤージ』と言われたり」するのが気持ち悪いです。
「いちごミルクパフェ」とか、「抹茶ラテのプチケーキ」とかは、
もうどうにでもしてくれというかんじです。
Re: (スコア:0)
Re:LISPは? (スコア:1, すばらしい洞察)
で、表面的な最大の特徴である「読みにくい」って点は、もしかしてラテン語にも通じるんでしょうか?私はラテン語は(どっかの魔法漫画で出てくる奴以外)知らないんですが…
Re:LISPは? (スコア:1)
ラテン語というと実質、
現在の欧米の知識階級が覚えている古典ラテン語を指します。
欧米の新聞なんかを読んでいるとラテン語が引用されることが多々あります。
学術誌にも論文をラテン語でしか受け付けないものがあるそうです。
また、アカデミックな人は、外国人と会話に使ったりもするそうです。
(日本と中国で漢文で筆談したみたいなものです)
ちなみにラテン語は屈折語で活用形がかなりあります(40くらいだったかな)
テニヲハにあたる助詞がない(全部語尾変化であらわします)
その代わり語順は自由できます。
興味があれば、新ラテン文法(東洋出版)をどうぞ。
ラテン語がいろんな言語を生み出したのだから・・・というであれば、
再帰、ガベージコレクションその他を
他の言語に採用されたLispも成功したことになるような気がするのですが。
ラテン語とLispってやっぱ似てるなぁ。
Re: (スコア:0)
Re: (スコア: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)