O'Camlが第五回 ICFP プログラミングコンテストを制す 29
ストーリー by Oliver
hello-world 部門より
hello-world 部門より
yt曰く、"98 年から毎年行われている ICFP 主催のプログラミングコンテストですが,今年はプログラミング言語に O'Caml を使った日本人チームが優勝したようです.
ICFP プログラミングコンテストは"Is your favorite programming language the best?"などのテーマで毎年様々な課題に挑戦するチームを募集し,プログラム言語の優秀さを競い合うコンテストです.課題が公開されてからプログラムの提出を締め切るまでの時間が非常に短いため,短時間でバグのないプログラミングが要求されます.関数型言語である O'Caml は 1999年, 2000年も優勝を飾っているほか,2001 年は Haskell が制するなど関数型言語の活躍が目立ちます.
今年の課題は主催者側が用意した仮想世界での多人数参加型ゲームでプレイヤーを演じるプログラムを作成し,トーナメント方式で対戦させトーナメントの優勝者がコンテストの優勝者となります.ちなみに 1 等の賞金は $1000 USD です./.Jer のみなさんもご自慢の言語とともに来年参加されてみてはどうでしょう?"
関数型言語が (スコア:3, 興味深い)
Re:関数型言語が (スコア:2, 参考になる)
制限時間が72時間のようで。
課題は見ていませんが、きっとオブジェクト指向なんかだとタイプ量なども含めて時間をより多くくってしまうのでしょう。
関数型言語を使いこなせる人々が優秀だと言うのも否めないですけど。
// Give me chocolates!
Re:関数型言語が (スコア:2, すばらしい洞察)
たぶん、個人の能力もあるのでしょうが、72時間の制限で作れる規模のソフトウェアの場合、OOの持つ特徴の恩恵を受ける前にコードが完成してしまうというのはあるかもしれません。ちょっと違うかもしれませんが、それなりの規模のソフトウェアと同じようにUMLつかって設計した場合、コードを書き始める前にタイムリミットを迎える恐れもあるかもしれません。
異なる時間制限をもったいくつかのコンテストがあればきっとそれぞれの優勝者の使う言語の傾向は異なってくると思います。要は適材適所ってことで。
// kraymor
Re:関数型言語が (スコア:1)
>にコードが完成してしまうというのはあるかもしれません。ちょっと違うかもしれませんが、それなりの規模のソフトウェア
>と同じようにUMLつかって設計した場合、コードを書き始める前にタイムリミットを迎える恐れもあるかもしれません。
余談。いつも思うのだが、OOの恩恵って、そういうようなもののことを指すんだろうか?という疑問が。
「そういうこと」ってのは、UMLとかなんとかでObject指向ならぬClass指向な開発を行うこと。
なにも、「クラスを」「設計する」ことが、Object指向だというわけではないので。
ちょっと違うが(でもRADという意味では似ているはずだが)、GUI RADなんかも「Object指向の」恩恵の1つなわけで、
ガチガチの設計というものがOOに不可欠か?と問われれば、NOと答えておくほうが妥当だと思う。
ま、関数型とOOPとって、ちょっと油断してると「どっちがPrimitiveか」論争になっちゃったりするし(^^;、
両者を最初から兼ね備えた(=自分でOOP環境を作らずに済む(笑))言語で仕事が楽になることも多いだろうし、なのだけど。
本当に余談:
Class指向(をObject指向と混同すること)が広まってしまったのは、やっぱりC++(でOOPが刷り込まれてしまった人々)のせいだろうなあ。
Re:関数型言語が (スコア:0)
Re:関数型言語が (スコア:0)
ほかのクラスの関数呼んだりするけど、あんまりOOPLを意識しないなあ。
Re:関数型言語が (スコア:0)
Re:関数型言語が (スコア:0)
なんていう課題だったらどの言語が優秀だろう?
Re:関数型言語が (スコア:2, すばらしい洞察)
マイナーな言語を使うプログラマに、わりあい優秀な人が多かったりしますからね。
メジャーな言語を使うからダメというわけでなく、そういうのは玉石混交で、
石レベルに当たると目も当てられない。
そういやC++なんかもマイナーなだったときは使う人は結構、優秀な人が多くて
話聞いてるだけで、いろいろとタメになったんだけど、だんだん、なんじゃこいつ
というのばっかり当たるんで、Javaプログラマの話を聞くようになったんだけど
ところがこれもメジャーになりだすと以下省略。
Re:関数型言語が (スコア:1)
Re:関数型言語が (スコア:1, すばらしい洞察)
Re:関数型言語が (スコア:1)
言語は自由なので。
Re:関数型言語が (スコア:1)
Re:関数型言語が (スコア:0)
分野は少し違いますが,INRIA は Scilab (http://www.scilab.org/)というシミュレーション用言語(いわゆるMATLABクローン)でも有名なところです. なかなか優秀な研究所のようですね.
Re:関数型言語が (スコア:0)
MLの特徴 (スコア:2, 興味深い)
Re:MLの特徴 (スコア:1)
Re:MLの特徴 (スコア:0)
関数型やオブジェクト指向だからじゃなく、 (スコア:1)
#かつて、lisperだったころを思い出す。笑
-- kleenex
Re:関数型やオブジェクト指向だからじゃなく、 (スコア:2, 参考になる)
大規模なプログラムを書く時は使えないです。
普通は O'Caml はバッチコンパイルですよ。
個人的には toplevel は電卓替わり、、、
Re:関数型やオブジェクト指向だからじゃなく、 (スコア:1, 興味深い)
Re:関数型やオブジェクト指向だからじゃなく、 (スコア:1)
TurnAroundTimeが短い言語/環境ならば大丈夫っすよね。
#毛色の違う言語だからって、やりかたを何もかも違うものにしてしまうこともないわけで。
だからたぶんこれは、それだけの問題じゃないんだと思います。
俺には関数型言語は未ださっぱり判らないので、Practical Scheme [dreamhost.com]読んどきますぅ。
関数型言語とか、宣言型言語とか (スコア:1)
「だって10倍以上遅いじゃん」という状況も
今のCPU事情ならなんら問題にならない訳ですし、
一寸づつHaskellとかPrologとか流行ると面白い
ですねー。
「関数型言語って、Cだってそうじゃん」という
トーシローが一人でも少なくなりますように。
(そりゃ俺か)
-----------------
#そんなワタシはOS/2ユーザー:-)
Re:関数型言語とか、宣言型言語とか (スコア:0)
Ocamlの実行速度 (スコア:1, 興味深い)
しかもOcamlは強い型付けの御蔭でバグを入れにくいという長所もあります。
関数型言語が、というか (スコア:0)
前提からして関数型言語が優勝するのは当たり前なのでは(^^;;
# 自信が無いのでAC
Re:関数型言語が、というか (スコア:0)
関数型言語を前提としたものには思えないんですが?
はげしくオバカな質問ですいません (スコア:0)
# 岡村さん何してはるんですか~?
Re:はげしくオバカな質問ですいません (スコア:0)
or
おきゃむる
or
おーかむる
or
おーきゃむる