”命令型のコールバック、関数型のプロミス”への反応(とその後)

James Coglan 氏のプロミス記事の翻訳 (https://gist.github.com/okapies/5354929) に対するコメントや後日談等。 ・翻訳までの経緯 ・記事へ頂いたコメント ・新たな火種 "Fantasy Land" 騒乱の勃発
26
前へ 1 ・・ 4 5 次へ
koichik @koichik

@okapies プロミスにいいところがあるのはわかりますが、トレードオフを取り上げることなく「命令型より関数型」というだけで「コールバックを選んだのは最大のミス」なんて釣り的なこと書いちゃった原著者は悪い意味でナイーブなのか本物の釣り師なのか。。。 という感じで印象悪いです。

2013-04-13 03:09:42
Yuta Okamoto @okapies

@koichik 英語圏の関数型コミュには、何事にもそういう感じのモヒカンな一党がいるようですねー。プラクティカルな立場の人達としょっちゅう軋轢を起こしていて、私もあまり好きではないです。まぁ、少なくともあの記事は実務的な理由を丁寧に説いてて良いなー、と思った次第。

2013-04-13 11:35:58

訳者の意見

Yuta Okamoto @okapies

プロミスの記事をレビューしてくれたJS使いの友人曰く、Nodeの作者さんが日本で講演した時に、質疑応答で「コールバック地獄を何とかする予定は?」と問われて曰く、「コールバック使えばいいじゃん(笑)」という反応だったらしい。 #nodejs_jp

2013-04-12 00:08:46
Yuta Okamoto @okapies

で、「コールバックの学習コストの安さは魅力的」「それが本来支払うべきコストを先延ばしているだけだとしても、大抵のユーザにとって問題ではないのだろう」とかいう話をした。 #nodejs_jp

2013-04-12 00:16:11
Yuta Okamoto @okapies

静的型 vs 動的型の時も出てた話だけど、コストの支払いを猶予できる仕組みは、初学者に易しいだけでなくプロトタイピング等でも有用な性質なのだ、というのはよく分かる。 #nodejs_jp

2013-04-12 00:20:10
Yuta Okamoto @okapies

ただ、さっきの友人曰く「そもそも、非同期プログラミングってかなり難しい代物ではなかったか?」と。あるサービスを作った時に、コールバックにはかなり苦労したとか。猶予されたコストの支払期限がわりとすぐ来るのだとすると、メリットがコストに見合わない場合もありそう。 #nodejs_jp

2013-04-12 00:26:18
Yuta Okamoto @okapies

個人的には、一旦は問題に対するコストの割り当てを先延ばしつつ、追加作業無しで「猶予されている負債」の管理と可視化が自動的に行われるような仕組みが欲しい。言語やフレームワークレベルでもそうだし、それ以外の仕事でも。

2013-04-12 00:36:52

そして、新たな火種が…

リンク GitHub promises-spec Brian Mckenna criticised current spec. He proposes to use FP approach to achieve much better modularity. Suggest to read it, really good ideas with just three changes. http://brianmckenna.org/blog/category_theory_promisesaplus His proposal is to incorpora
藤村 @ffu_

プロミスを圏論でもっとモジュラーかつ正しくしようよ〜というHaskeller氏(Royの作者)がJSerとバトッてる。 面白いけど長い! https://t.co/a3w4lhf3tQ

2013-04-12 11:50:22
mizchi @mizchi

JSでライブラリ単位で圏論的な操作実装しろとかHaskellerはいうことが違いますね

2013-04-12 11:56:44

経緯

  1. 元記事を受けて、Brian McKenna (@puffnfresh) 氏が自身のブログで Promises/A+ の現在の仕様を批判し、API をモナドに適合させるべきだと主張。

http://brianmckenna.org/blog/category_theory_promisesaplus

  1. Brian 氏の記事を受けて、Promises/A+ プロジェクトの Issue において、”Promise を作る関数 (point) の導入””then(f) からエラー系を取り除いて onRejected(f) へ移す”という2つの仕様変更が提案される。

https://github.com/promises-aplus/promises-spec/issues/94

  1. プロジェクト関係者の @domenic 氏から、”型付き言語のファンタジーの国(typed-language fantasy land)のもので現実を無視してる” とか ”一部の人の美的嗜好を満足させるために厄介で有用でないAPIは適用できない” とか散々なコメントがついて即行でリジェクトされる。
  1. Brian 氏本人が降臨。大炎上。
  1. 喧々諤々の議論の末、Brian 氏が仕様をフォークした "Fantasy Land" を建設。
リンク GitHub fantasy-land fantasy-land - Specification for interoperability of common algebraic structures in JavaScript
Yuta Okamoto @okapies

正直、この喧嘩の行く末は見届けてみたいと思っている俺が居る。

2013-04-13 01:08:13
Yuta Okamoto @okapies

例の Fantasy Land のやつは、一次的には「モナド」という単語を一切出さずにメリットを説明できないと厳しいんでないかなーと。まー、色んな意味で試金石になりそうな感じがするので成り行きに注目。

2013-04-13 11:47:05
Yuta Okamoto @okapies

ぶっちゃけ、目的がはっきりしてるならこっちのが分かりやすいな・・・w http://t.co/HZ4jV2RJal #javascript

2013-04-13 12:59:42
リンク t.co jQueryのDeferredとPromise - tkawachi Blog JavaScript(というか CoffeeScript)って90年代にブラウザ上で使われていた頃のイメージが拭えず、どうも気持ち悪くて逃げて回ってたんですが、事情があって最近は渋々書いてます。 JavaScripterの皆様にとっては何を今更だとは思いますが jQuery. &
前へ 1 ・・ 4 5 次へ