答えは「そのレベルで安心できない人はRubyを使わない方がよい」です。 だって、整数のプラスだってなんだって再定義可能なんだから。
とはいえ、滅多にないとは言え名称の重複を心配しないといけないというのも切ない。
こういう時はまず原典を参照するに限る。 改めてCLtLを参照してCommon Lispのcatchとthrowについて調べてみると、
The catch special form serves as a target for transfer of control by throw. The form tag is evaluated first to produce an object that names the catch; it may be any Lisp object.
とある。がーん、今までずっとシンボルしかダメだと思ってたよ。 任意のオブジェクトがcatch/throwできるのね。
だとすると、やり方はある。
catchに引数を省略した時にタグになるようなオブジェクトを作ってやればいいんだ。 今まではシンボルに限定していたので、今まで使われたことのないシンボルを生成する gensymのようなことをするには抵抗があったのだが(シンボルはGCされないから)、 オブジェクトでいいというのなら、とりあえず任意のオブジェクトを作って渡してやればいいのだ。
新しいAPIだとこういう使い方になる。
catch {|tag|
....
throw tag
}
で、tagは一度きりしか使われないオブジェクトだから(現在の実装は、Objectのインスタンスを渡す)、重複を気にせず使えるようになる。大域脱出させたい時には、tagのオブジェクトを引数で渡してやることになるだろう。
これで安心。
近い将来1.9にコミットしようと考えている。 でも、ささだくんに聞いたら、これってYARVだと実装が難しいんだって。 なかなか難しい問題だ。
申し込みサイトがオープンした。 私も発表することになっている。
っていうか、坂村センセの直後に話すのは、ひっじょうに抵抗があるんですけど。 分不相応っていうか、なんていうか。
ITmediaに載せるということで取材を受ける。 写真のためということで、わざわざ松江まで来てくださる。
日経、朝日、と続いて最近取材が続いている。
日経ITpro, ラジオ, で今度のITmediaだ。 なんだか露出が多くて恥ずかしい。
お昼は蕎麦。鴨南蛮と割子蕎麦でおいしい思いをした。 風穴さんも満足げだ。
1月17日から19日まで、フランスのニースで開かれる ACMのプログラミング言語に関するカンファレンス。
行きたいなあ。
Wednesday, 17 January 2007
Invited Keynote: 9:00 - 10:00
Perl 6: Reconciling the Irreconcilable
Audrey TangSession 1: 10:20 - 11:20
Operational Semantics for Multi-Language Programs
Jacob Matthews and Robert Bruce FindlerSemantics of Static Pointcuts in AspectJ
Pavel Avgustinov, Elnar Hajiyev, Neil Ongkingco, Oege de Moor, Damien Sereni, Julian Tibble, Mathieu VerbaereA Typed Intermediate Language for Compiling Multiple Inheritance
Juan ChenSession 2: 11:30 - 12:30
Cork: Dynamic Memory Leak Detection for Garbage-Collected Languages
Maria Jump and Kathryn S McKinleyDynamic Heap Type Inference for Program Understanding and Debugging
Marina Polishchuk, Ben Liblit, and Chloe W. SchulzeCompositional Dynamic Test Generation
Patrice GodefroidLocality Approximation Using Time
Xipeng Shen, Jonathan Shaw, Brian Meeker, Chen DingSession 3: 14:00 - 15:15
Modular Type Classes
Derek Dreyer, Robert Harper, and Manuel M.T. ChakravartyFirst-Class Nonstandard Interpretations by Opening Closures
Jeffrey Mark Siskind and Barak A. PearlmutterPADS/ML: A Functional Data Description Language
Yitzhak Mandelbaum, Kathleen Fisher, David Walker, Mary Fernandez, and Artem GleyzerGenerative Unbinding of Names
Andrew M Pitts and Mark R ShinwellSession 4: 15:45 - 17:15
Types, Bytes, and Separation Logic
Gerwin Klein, Harvey Tuch, Michael NorrishA Very Modal Model of a Modern, Major, General Type System
Andrew W. Appel, Paul-Andre Mellies, Christopher D. Richards, Jerome VouillonContext Logic as Modal Logic: Completeness and Parametric Inexpressivity
Cristiano Calcagno, Philippa Gardner, Uri ZarfatyThursday, 18 January 2007
Invited Keynote: 9:00 - 10:00
From Implementation to Theory in Product Synthesis
Don BatorySession 5: 10:20 - 11:30
Scrap your boilerplate with XPath-like combinators
Ralf LammelLightweight Fusion by Fixed Point Promotion
Atsushi Ohori , Isao SasanoLazy Multivariate Higher-Order Forward-Mode AD
Barak A. Pearlmutter and Jeffrey Mark SiskindSession 6: 11:30 - 12:30
A Complete, Co-Inductive Syntactic Theory of Sequential Control and State
Kristian Stoevring and Soren B. LassenTowards a Mechanized Metatheory of Standard ML
Daniel K. Lee, Karl Crary, Robert HarperSession 7: 14:00 - 15:30
Logic-Flow Analysis of Higher-Order Programs
Matthew MightExtracting Queries by Static Analysis of Transparent Persistence
Ben Wiedermann and William R. CookVariance analyses from invariance analyses
Josh Berdine, Aziem Chawdhary, Byron Cook, Dino Distefano, Peter O'HearnSession 8: 16:00 - 17:30
Assessing security threats of looping constructs
Pasquale MalacariaJavaScript Instrumentation for Browser Security
Dachuan Yu, Ajay Chander, Nayeem Islam, and Igor SerikovSecure Implementations of Typed Channel Abstractions
Michele Bugliesi and Marco GiuntiFriday, 19 January 2007
Invited Keynote: 9:00 - 10:00
Advanced Programming Languages in Enterprise Software: A lambda-calculus theorist wanders into an enterprise datacenter
Chet MurthySession 9: 10:20 - 11:20
Proving That Programs Eventually Do Something Good
Byron Cook, Alexey Gotsman, Andreas Podelski, Andrey Rybalchenko, Moshe VardiProgram Verification as Probabilistic Inference
Sumit Gulwani and Nebojsa JojicSession 10: 11:30 - 12:30
Lock Allocation
Michael Emmi, Jeffrey Fischer, Ranjit Jhala, Rupak MajumdarModular Verification of a Non-Blocking Stack
Matthew Parkinson, Richard Bornat and Peter O'HearnOn the Analysis of Interacting Pushdown Systems
Vineet Kahlon and Aarti GuptaSession 11: 14:00 - 15:30
Specialization of CML message-passing primitives
John Reppy, Yingqi XiaoConditional Must Not Aliasing for Static Race Detection
Mayur Naik and Alex AikenInterprocedural Analysis of Asynchronous Programs
Ranjit Jhala, Rupak MajumdarSession 12: 16:00 - 17:30
Preferential Path Profiling: Compactly Numbering Interesting Paths
Kapil Vaswani, Aditya V. Nori, Trishul M. ChilimbiGeometry of Synthesis: A structured approach to VLSI design
Dan GhicaA Semantics-Based Approach to Malware Detection
Mila Dalla Preda, Mihai Christodorescu, Somesh Jha, Saumya Debray
しかたない、Proceedingsを待つか。いつ来るかなあ。
言語間でお互いにどう見ているかの階層。
「わかるわかる」というものもあれば、 「それは違うんじゃない」というものもある。
ところで、外から見たRubyプログラマへの印象ってのは
Rubyプログラマはどのプログラミング言語利用者よりも自分たちが上だと考えているが、 Webプログラミング言語以外が存在していることを知らないのでPerlよりも上にした。
という感じなんだろうか。実際は、私の周辺では 「Webプログラミング言語以外が存在していることを知らない」人なんてのは 少数派なんだけど。私の周辺は特異点である可能性が高いしな。
_ ささだ [Webプログラミング言語ってなんでしょうか。Webアプリケーション構築用のプログラミング言語って意味かなぁ。]
_ まつもと [たぶんね > Webプログラミング言語]
_ 高橋清文 [「行きたいなあ−」は、「行きます!!」発言にはなりませんか。わたしは、Rubyがあらゆる世界言語カンファレンスには、..]
_ 凡人 [どなたか、Geekな人に尤も好まれている言語をご存知でしょうか? Geekな人のType別に教えていただければ、す..]
_ まつもと [どうやって調べたらいいんだろう > 尤も好まれている言語 客観的な調査はどうやったらいいのか分かりませんが、私..]
_ 凡人 [まつもと様、 >Rubyは...いろいろですね。とっつきやすいだけにGeek濃度はLispより低い? というのは..]
判決が出た。有罪。
150万の罰金刑で済んだのを喜ぶべきか、 有罪になったのを悲しむべきか。
しかし、法律素人の観点から見るとこの判決はおかしく感じる。
著作権侵害の幇助と見なせる要件は満たしていると言えないことはないと思うので、 法廷で「Winnyは主に著作権を侵害するために開発されたソフトウェアである」との 裁定が行われて、その結果有罪であると言うなら、論理は通っている。
あるいは、技術自体に罪はなくても、金子さんが世の中に著作権侵害を蔓延させようとしていた というのであれば、有罪なのもやむなしと思う。
しかし、実際には
(Winnyは)さまざまな分野に応用可能で有意義なものであり、技術自体は価値中立的なもの
であり、
(金子被告は)著作権侵害の状態をことさら生じさせることは企図しておらず、経済的利益も得ていない
と認定している。上記の両方が成立していないにもかかわらず、 これで有罪というのでは、 「では、いったい何が悪かったの」という話になるのではないだろうか。
判決文全文を読んだら、また違う印象を持つのだろうか。
ヨットレースへのスポンサーを集める話。
オープンソースソフトウェアもこれくらい熱心にスポンサーを集めたら、 もうちょっと違う形の発展があるだろうか。
しかし、スポンサーがいなければそもそも参戦できないヨットレースと コンピュータ1台(あとできればネット回線)があれば、開発できちゃうソフトウェアとでは かける熱意が全然違うのかもね。
スポンサー探しするくらいだったらコード書いてたいし。
延長賛成派(特に松本零士)の意見がまるっきり論理的ではないのは、 私が反対派だからだろうか。
普通、延長したいなら、延長することのメリットについて語ると思うのだが、 浪花節もどきのような話(私の夫の作品の著作権が切れるのです〜)とか、 根性論(歯を食い縛って作品を生みだして〜)とか。
苦労したことに同情しないでもないが、 それは一律70年に伸ばす理由にはならない。 一定の要件を満たす時に延長を許すというならまだしも。
むしろ、そのような人情論が一律延長の理由になると感じられる感性が理解できない。 人情論で人類のコモンズの発展を阻害してよいのか。私にはとうていそうは思えない
まだまだ溝は深い。
WebアプリケーションフレームワークとHTTPサーバの間に入って抽象化を行う層。
Webアプリケーションフレームワークが林立するPythonの事情がきっかけになったに違いない。 が、そのような抽象化層の存在は(性能などのじゃまにならない限り)望ましいことだと思う。
「あっというまにゼロからWSGI」も参照のこと。
Rubyもこういうのがどんどん出てくるくらいユーザや開発者の層が厚くなるといいなあ。
日々進歩しているらしいJRubyの新リリース。
Railsの動作も改善され、opensslも(スクラッチから実装したものが)添付され、 性能も改善されたらしい。
そのうち抜かれちゃったらどうしよう。「気にしない」と言いつつも 本音では結構意識しているような。
_ libitina [著作権だけ保護が延長されるのはおかしいので、特許も延長してください、という意見は技術職からでないのだろうか。むしろ、..]
_ 高橋清文 [東京の仲間は、続々と「世界RubyOSS大学」構想の賛同協賛者になって行きつつあります。年明けのアクションが楽しみに..]
_ まつもと [やめて〜っ > 特許延長 公表日から20年ってのはいいなあ。 改定か再登録で延長できれば、延長賛成派も満足できる、..]
_ なひ [cruby用openssl wrapperのAPIをBouncyCastleで実装したのか! すげー。不毛さがイカす..]
_ Skirnir [私も特に松本零士氏の主張は論理的ではないと感じました。感情的というか、意固地になっているというか。とりわけうどん屋の..]
_ 亡者 [いや、貧乏人と金持ちの戦いというだけに見えますが。もちろんそれを explicit には言えないからいろいろ理屈はつ..]
_ masterQ diary:[commons]著作権保護期間は延長すべきか 賛否めぐり議論白熱 ソフトウェアエンジニアとしては延長なんてもってのほか、 と思..
_ ささだ [あれ、難しいって言いましたっけ。入れるようにします。ところで、catch() 時に行う比較は C レベルのポインタ比..]
_ まつもと [比較はequal?です。つまりポインタ比較。 ]
_ ささだ [うお、equal? なんてものがあったんですね。Schemeの場合、文字数が短くなる(equal? -> eqv? ..]