にわかに勝手に自分関数型ブームです。
前に買ったHaskell本を読んでいたら、前よりも具体的になるほど、という点が多かったので、
勢いに乗って関数型行っちゃう?という波が来ました。
こうなるとどうしようもないので、取りあえず、明日辺りに新しい本でも買ってきます。
以下、候補。
###########################################################
プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~
→OCamlはMLという言語がベースにあるらしい。あとコンパイラが非常に優秀で高速らしい。
プログラミングErlang
→Erlangはエリクソンが開発した関数型言語。マルチスレッドの処理が非常に強力で、1万スレッドでもリニアのパフォーマンスを発揮することもあるらしい(!)
On Lisp—Advanced Techniques for Common Lisp
→関数型と言えば!的なLispの本。本屋でよく見るので気になってはいた。
###########################################################
とりあえず、明日本屋で見て決める予定。
どれでもいいや、とりあえず。
僕が言う本屋とは、こんな本がどれもおいてあるようなデカいところです。
Konozamaではありません。
————————————————————————————————-余談
そういえばConcurrent CleanというHaskellっぽいけどコンパイラも優秀、という言語があるらしい。
ただ、悲しいほどネットのリソース、特に日本語のリソースが少ない。
やっぱりこの世界は英語出来ないと厳しいなぁ。。
Comments:11
- syoyo 2008/10/20
こんちは.
私は主に Haskell と OCaml を使ってます.
記述の美しさでは Haskell でしょうか. ただ融通が聞きません. Ocaml は見た目は汚くなりがちですが融通が聞きます.関数型を CG に、というと、シェーダではこんな例があります.
http://conal.net/papers/Vertigo/Haskell が読めれば、なんとなく分かるかと思います.
あと、Faust という信号処理言語があります.
http://faust.grame.fr/こちらも関数型で、ブロックで連結してプログラムを作っていくとい
う感じです.Houdini の OP ネットワークとかシェーダネットワークとかは、結構関数型とも自然に組合わさると思うんですよね.
なので CG 業界も関数型言語にというのは結構これからあり得るんじゃないかと思っています.
(一度某海外プロダクションのひとと関数型シェーダ言語で盛り上がりました)問題はどれだけデザイナーさんなど最終ユーザに関数型のアドバンテージを示せるかでしょうか.
- inagaki 2008/10/20
関数型言語なんてものがあったんですね。というかLispってそうなんですね。昔大学で括弧の多さに発狂した覚えがあります。自分にとってはLispは一番使いたくない言語です。(笑)当時、括弧がどこで始まってどこで閉じてるか表示してくれるようなテキストエディタがあったらまだ良かったんですけどね。
最近、Rendermanの手書き風シェーダでデモリールのタイトルを作ってみました。感想などありましたら宜しくお願いします。私事ですが明日R&Hの面接です。
- tai 2008/10/20
>syoyoさん
ども、コメントありがとうございます!
コメント内容が濃い!!www> 私は主に Haskell と OCaml を使ってます.
Haskellは遅延評価が基本なので細かいチューニングが行い辛いと聞いたことがありますが、やっぱりそうなんですね。
OCamlはコンパイラも高速らしいですしそこそこ情報もあるので興味あります。
理屈ならHaskell、実用ならOCaml、って感じですかね。> 関数型を CG に、というと、シェーダではこんな例があります.
おおおお!
実際に関数型を活用するための論文があるんですね。
まだHaskellすらよくわかっていないので、ぼんやりとしかわからないのですが、非常に面白そうです。> あと、Faust という信号処理言語があります.
あ、これは確かちょっと前に、SuperColliderに関して調べていた際に見たことがあるような気がします。
でも当時意味不明、と思ってシカトしたんですが、関数型言語だったんですねー。
なんかちょくちょくありますね。> Houdini の OP ネットワークとかシェーダネットワークとか〜
今日SICP本を買ってちょっと読んだぐらいなのですが、なんとなくsyoyoの言いたいことが分かるような気もします。
もうちょい関数型の勉強進んだら是非詳しくお話聞かせてくださいww余談ですが、SICPは僕が持っているHaskell本では触れていないような関数型の魅力が垣間見えそう&関数型信者になりそうな予感で、これから読み進めるのが楽しみです。
> なので CG 業界も関数型言語にというのは結構これからあり得るんじゃないかと思っています.
たぶん開発者的な視点で行くと、無いとは言い切れないんじゃないでしょうか。
でも、、↓> 問題はどれだけデザイナーさんなど最終ユーザに関数型のアドバンテージを示せるかでしょうか.
そこ、そこです。現場のデザイナーに関数型のアドバンテージを、となるとかなりキツいんじゃないでしょうか。
現状MELなりPythonなりが広まっているのは、やはり手続き型で読みやすい(若干語弊ありますが)、とっつきやすいから、だと思います。
でも例えばシェーディング言語に、とか分野を絞って&サンプル多数な状況が作れたら、あとはなるようになるかも、、なんて思ったりして。現状僕自身、正直まだ関数型の利点というものがあまり明確に分かっていないのです。
ただLispがこれだけ長生きな理由、Haskellが指示される理由、ポール・グレアムがLisp教(狂?)な理由、たぶん全然僕が知らない何かがあるんだと思うのです。
なので今後ぼちぼちHaskellなりSchemeなり書きながら勉強しよーと思っているところです。わからないことあったら是非教えてくださいーーー。
- tai 2008/10/20
>inagakiさん
お、ちょうどsyoyoさんへのレス書いてる最中にww
なんというニアミス、、、> 関数型言語なんてものがあったんですね。というかLispってそうなんですね。
僕もどこぞでたまたまHaskellに関する記事を見てから興味を持つようになりました。
Lispはカッコが多くてアレだ、なんて話も確かに聞いたことあります。
今日Schemeのコード見て、あーなるほど、、と思ったばかりだったりしますww
今はエディタがずいぶん進化してたりするので、思ったほど苦ではないのかもしれませんね。> 最近、Rendermanの手書き風シェーダで〜
おおおお!WEBサイトお持ちだったんですね。
シェーダ面白いです。あとは細胞分裂、、、これは良いネタ。
頂きますww
ダチョウのスキーやられてたんですね!ということは僕の先輩(XSI使いのYさん)なんかご存知だったりするんですかね。
業界狭いですねー、って何回言ったことか、、w。inagakiさんはキャラクタ系のTDの方なんですか?
てっきりLightingTDとかだとばかり思っていました、、、> 私事ですが明日R&Hの面接です。
!!!!!!!!
おそらく相当緊張されていると思うので迂闊な事は言えませんが、良い結果が出るように日本からお祈りしております!- inagaki 2008/10/20
>taiさん
今Schemeのコードを見てみて、やっぱりPythonがいいやと思いました。とはいえR&HはPerlなんですよね。できれば、自分は記述の見た目が良い言語を使いたいです。Websiteのソースコードとかはあまり見ないでください。(笑)ごみコードとかデバグ用のprint文とか平気で残ってますから。わかってるバグも放置だったり・・・
手書き風シェーダ作って初めて(レイトレースだからだと思うんですが)マイクロポリゴンあたりのシェーダ計算の回数が一定じゃないことが判明して、自分のシェーダのロジックが駄目なことに気づいても放置してます。(笑)Rendermanはあくまで趣味ですから。ダチョウのは自分は目玉焼きじゃなくてオムライスの方のチームだったので、Yさんという方は面識はないです。多分。3作目の時に撮影時の計測とか行ってるので、もしかしたら、そこでお会いしてるかもしれないですね。
自分はずっとフリーランスだったので、いわゆる日本的なGeneralistですよ。こっちで就職となると、分野を絞らないとだめじゃないですか、そんなわけでCharacterTDって事にしてます。
面接の結果が出ましたら報告致します。
- tai 2008/10/20
>inagakiさん
> 今Schemeのコードを見てみて、やっぱりPythonがいいやと思いました。
wwwwwwwwwwwww
正直、あのカッコの多さには圧倒されますが、とりあえず勉強してみますw> とはいえR&HはPerlなんですよね。
!!
そうなんですか。
Perlを使いつづける理由って何なんですかね。
やはり既に社内ツールがPerlでかなり構成されているとかなんでしょうか。> Rendermanはあくまで趣味ですから。
そうだったんですかww> ダチョウのは〜
ありゃ、そうなんですか。YさんはIがつく会社で1作目だけ参加してたはずなので、面識ないかも、ですね。失礼しました:P> 自分はずっとフリーランスだったので、いわゆる日本的なGeneralistですよ。
なるほど、てっきりどこかの分野のSpecialistかと思ってました。> 面接の結果が出ましたら報告致します。
あいーーー。楽しみにしています!
R&Hは非常にアットホームで素敵なスタジオだと聞いています。
是非受かってくださいね!- inagaki 2008/10/20
社内ツールがPerlベースなんでしょうね。
ドリームワークスがNURBSモデリングの自社ツールがいっぱいありすぎてNURBSモデリングオンリーだったのとかと同じなんでしょうね。自分は1作目は参加してないのでわかりませんが、
Iのつく会社ってことはオーナーさんが背の高い元ベーシストな方だったりします?だとしたら、系列の専門学校で講師をしてたことがあるので、オーナーさんとは食事をしたことがあります。来年度もよろしくと言われたけど、そのときにはアメリカ留学決めてて笑ってごまかした、ほろ苦い思い出があります。- tai 2008/10/20
>inagakiさん
> 社内ツールがPerlベースなんでしょうね。
なるほど、やっぱりそうなんですかね。>ドリームワークス〜
なんとwwwwwwww
いっぱいありすぎると言う時点で既に意味が分かりませんwwwwwww
すげぇなぁ。> Iのつく会社〜
すみません、その辺詳しくは知らないんです・・・inagakiさんは講師もされてたんですねー。
- inagaki 2008/10/21
面接終わりました。
デモリール気に入ってくれたみたいですが、
学生は卒業するまでは、雇わないとのことです。
来期インターン残して、就職しても、インターンでも
そのまま引っ越せるようにしたつもりが、逆に
微妙な感じになりました。インターンもとらないらしいんで。
卒業間近になったら、連絡してね~。という感じでした。
というわけで、良い方向には向かっていると思いますが
就職バンザーイというわけにはいかなかったです。ちなみに、Perl使うって聞いたんですけど~って
それとなく聞いてみたら、メインはC++だよ、Perl使ってるけど、最近はPythonも使うようになってる。とのことでした。- ぷーとん 2008/10/21
いやぁ、最近は大きなスタジオは軒並みPythonですよねぇ…
以前sonyイメージワークスの人が社内ツールのプレゼンに来たんですが、イメージマニピュレーション以外はGUIなども全てPythonで書かれたライティング/コンポジットのインハウスツールがとてつもなくよく出来てて驚きました。
彼らが言うには、実行速度の点でもそれほどC++に引け目を取らないとか。
やべぇ、勉強しないと時代について行けない…
- tai 2008/10/22
>inagakiさん
面接、お疲れさまです!!
なんか、かなりいい感じだったみたいですね!
素晴らしい、、素晴らしすぎです、、、!
肝心の卒業っていつになるんですか?
アメリカだと来年の9月とかなんでしょうか?
でも大学院だとそうしっかり決まったものでもなさそうですよね。
なんにせよ、いい感じで終わって良かったです。お疲れさまでしたーーーっ。> ちなみに、Perl使うって〜
なるほど、C++ > Perl >>> Pythonな感じなんですかね。
PerlはいずれPythonにリプレイス可能な予感。。!!これからはPythonやっときゃ間違いないですね。
>ぷーとんさん
Python、かなりトレンドですよね、CG業界的には。> 以前sonyイメージワークスの人が社内ツールの〜
おおおおおおおおおおおお
ライティング、コンポジットなんてヘビーっぽいツールもPython!
イメージ演算に関する部分だけC++に、ってのは賢い気がします。
GUIもC++で!とするよりも開発効率良さそうですし。やっぱり使いこなしのレベルが違うなぁ、、
僕も時代に取り残されないように頑張ります・・・!!