言いたいことは分かる気がするんですけど、 現実問題として、 ほとんどありとあらゆるフリーソフトウェア/オープンソース・プロジェクトにおいて、 コアな開発者の数は足りないと思うんですよね。 慢性的にマンパワーが不足しているというか。
一体世の中で「オープンソースにすれば世界中の有能な開発者が集まり、 コミュニティの巨大さによって開発が促進される」なんていう幻想がどれぐらい信じられているのか、 私にはよく分からないんですが、 とにかくそれは幻想なわけです。 そんなにたくさんの開発者が集まるプロジェクトって、 ごくごく少数で、むしろ例外と言っていいはず。
もちろん、たまにバグ潰してくれる程度(という言い方はまずいですけど) の貢献者であれば、 全く姿を現さなくなっても、 似たようなことをやってくれる人はまた出現するでしょう。 しかし、設計や基礎になるようなコード部分にまで手を出せる人って、 滅多にいるもんじゃありません。 単純にそれだけ優れた人材が多くはないというのもあるでしょうし、 そこまで重要な役割を担いたくないと考える人が多いというのもあるでしょう。 いずれにせよ、 非常に広く利用されているようなプロジェクトであっても、 抜けられると致命的なケースというのは多々あると思うのです。
例えば、 GRUBの場合。 明らかに人材は不足してますし、 完全にメンテナンス・モードにでもならない限り、 私が抜けると致命的でしょう。 最近ようやく任せられる人が現れたので、 もしかしたら私が死んでも何とか続けてくれるかもしれませんが、 もうしばらくは無理でしょう。 少なくともこの数年間は私が抜けたら死んだプロジェクトになっていただろうことは想像に難くありません。
まあ、GRUBはそんなに重要ではないとしても、 他にも似たようなことが考えられるプロジェクトはたくさんあります。 Rubyにおけるまつもとさんとか、 PythonにおけるGuidoとか。 Perlはコアな開発者が結構いるから、 Larryはいなくなっても大丈夫かな? もっと小さいプロジェクトなら、もっと状況は酷いわけで...
私が物事をシビアに見過ぎなのかもしれませんが、 私が思うにフリーソフトウェアの世界は結構綱渡りに近い状態。 誰かがぽっくり逝ったら、 永遠に後継者が見付からないというわけではなくても、 相当長い期間に渡って、困った状態が続く気がします。
あんまり経緯とかも分かっていないのですが、 なんでメソッドはNilClassのインスタンスなんでしょうか?
$ ruby -e 'def foo(); end; p foo.class' NilClass
Methodクラスのインスタンスではないんですよね...
それに、Methodクラスのインスタンスを同じ方法では呼び出せないんですよね... foo
がMethodクラスのインスタンスとして、
foo(1, 2)
では駄目で、
foo.call(1, 2)
としないといけないんですね。 メソッド呼び出しで括弧を省略できるので、 ややこしいのは何となく分かるんですが。
最初の疑問を考えた理由は、
メソッドだけが与えられた時に、
そのメソッドの引数の情報を得ることは出来るのだろうかと思ったからなのでした。
どうも出来ないらしいんですけど。
Pythonだとfunc_code
を見てやれば分かります。
Internet casino gambling bonuses. Gambling internet casino gambling online.
Group sex.
Mommy likes anal.
Gay black male anal sex.
Pooping during anal masturbation.
Brown and round anal orgy.
Young sexy black teen porn.
Free hardcore teen porn pic.
Free teen titans porn videos.
Cum sluts oral triple penetration.
Bbw woman in triple penetration.
Effects of snorting xanax.
Xanax discount overnight. Xanax overnight guarantee no prescription. Buy xanax mastercard overnight delivery.
Triple penetration mpeg.
Taylor rain triple penetration torrent.
Triple penetation.
Xanax weight gain.
Evening dress. Red dress. Informal wedding dress. Ross dress for less. Dress up games. Wedding dress patterns. Boys made to dress as girls. School dress code.
Free bdsm stories. Bdsm library.
Chronic fatigue. Cloudy days and fatigue. Fatigue and malaise. Thermal fatigue stress analysis.
Morning fatigue. Compassion fatigue. Causes of fatigue.
Webcam chat. Teen webcam pics. Webcam.
Teen porn. Homemade porn. Free porn downloads. Free porn pictures. Hardcore porn. Porn sites.
Amateur album. Amateur lesbians. Creampie at hoes com amateur pussy and anal. Amateur sex.
Adrenal fatigue co q10. Fatigue. Cdc chronic fatigue syndrome. What causes chronic fatigue. Most common causes of fatigue. Fatigue cleanse.
Evening dress patterns. Dress. Prom dress patterns. Christmas dress. How to field dress a deer. Girl dress up games. Dress form.
Anal fisting.
Party dress. Dress. Dress up games for girls. Dress shoes. Ross dress for less. Dress up games. Evening dress patterns. Wedding dress patterns.
Amateur sex pics. Amateur private sex. Secret amateur videos. Amateur nude. Amateur gangbang. Amateur wife. Amateur home videos. Amateur teens.
Scanty attire.
Ravin teen titans cartoon porn.
Test for chronic fatigue syndrome. Causes of fatigue.
Free hardcore teen porn movies.
Nudists amp public nudity porn links lt penisbot.
Men peeing. Peeing stories. Panty peeing panty. Panty peeing.
Hot air balloon. Hot air balloon pilot training. Balloon rocket science. How to make a paper balloon.
Long legs. Legs-r-us.
Lingerie. Plus size lingerie. Victoria secret lingerie. Lingerie models.
Foreign women megasite. Smallville news archives from the tv megasite. Civil marvel war wikipedia megasite. Japan boyz gay asian photo megasite.
Sex toys. Adult toys. Toys r us.
Asian chicks. Asian girls. Asian small penis. Asian brides.
Ass.
Free spanking. Otk spanking. Spanking.
Beautiful latina models. Latina ass. Free latina sex galleries. Latina sluts. 8th street latina. Latina porn.
Gay male fetish.
Model a single downdraft. Savage stevens model 15 single shot 22 rifle parts. Single cell model. New model single six front sights. Stevens model 15 single shot 22 rifle parts.
Live cam gallery.
Squirting pussy. All squirting chicks.
Mens vintage silk jackets. Ladies vintage watches. Free vintage porn galleries. Gay vintage. Nataya 1920 s vintage style. Range hoods vintage.
Free gay male masturbating porn. Gay men masturbating. Gay masturbating.
Ebony footjob torrent. Footjob sex movies page of weindexed com. Stocking footjob.
Ebony auditions. Auditions for porn movies. First time auditions. Movie auditions. Auditions for tinkerbell.
Great expectations dating service review.
Inexpensive 1 year dating aniversary gift ideas. Dating anniversary gift ideas.
Thai dating agencies. Thai dating services.
International dating new zealand. International dating find australian men. Lovedating free international dating site. International dating mariages. International dating. International dating website escort. International interracial dating.
Dating sim games. Sim dating flash games.
Catholic dating. North dakota catholic singles dating and personals. Catholic dating services. Catholic dating sites. Asian catholic dating.
Gay dating sites. Gay interracial dating sites. Gay teen dating sites. Free gay dating sites for guys only. Gay sites in uk net guide lifestyle amp dating.
Christian dating service.
Net clubbing free online dating service. Mybigwish com free online dating service. Free chicago online dating agency service. Free online dating service searchyourlove.
Dating indian woman.
Totally free adult dating sites. Free password for adult dating sites. 100 free adult dating sites. Free adult dating sites.
Online dating tips.
Mature women dating. Dating mature women.
Questions dating gameshow. Hypothetical dating questions. Dating questions. Internet dating questions. Questions to ask someone you are dating. Questions to ask someone u are dating.
Disabled united friends and dating. Disabled dating.
Online dating sims games. Online dating sims.
Free dating sites and chat.
Ubat kuat cialis.
Websites hiv dating. Dating web site hiv positive. Sex dating and hiv for gay men the body.
Close dating passionate uk. Free uk dating for black people. Online dating uk. Christian dating agency uk. Uk dating. Online dating services uk.
Rpg dating sims games. Free dating sims games. Dating sims games. Dating sims games posts. Sims dating games.
Dating sites in colorado.
Indian dating hindu matrimonial and indian singles. Online dating for singles yahoo personals. Victoria singles free local online dating amp chat. Dating singles in victoria texas.
foo.class とすると foo 自体が引数無しのメソッド呼出しとみなされるので、当該コードだとNilClassなのはfooの返り値です。
「fooメソッドがnilクラスのインスタンス」なのではなく、「fooがnilを返してる」んですね。<br><br>Python慣れした人には奇妙にみえるかもしれませんが、Rubyでは<br><br> obj.foo<br><br>はメソッドオブジェクトの取り出しではなく、メソッドの呼び出しです。<br><br>メソッドオブジェクトを取り出すためには<br><br> obj.method(:foo)<br><br>とします。メソッドオブジェクトを直接扱うような「めったにない」ことのための文法を短くするのはハフマン圧縮的に意味がないというのが一応の理由です。
そういうことですか。つまりメソッドをオブジェクトとして扱うことはできない、ということなんですね(あるいは、メソッドはオブジェクトではない)。<br><br>Pythonのcallable objectの有用性を噛みしめてしまっているので、RubyでメソッドとMethodクラスのインスタンスが(文法上)区別されるのは不便に感じます。私が言っているのは、文法が短いか否かではなく、文法的に透過であるか否か、です。
「メソッドをオブジェクトとして扱うことはできない」という表現が適切かどうかは分かりません。<br>「Pythonとは流儀が違う」のは確かでしょう。<br><br>実行モデルとして、Pythonは<br><br> obj.foo<br><br>でメソッドオブジェクトを取り出し、()によって呼び出すというモデルを採用しています。<br>ある意味わかりやすいモデルですが、引数呼び出しの括弧が省略できない、などの制約もあります。<br><br>一方、Rubyでは<br><br> obj.foo<br><br>そのものがメソッド呼び出しであるというモデルです。<br>呼び出しの括弧が省略できる、属性が無比奇数のメソッドで簡単に実現できいるなどのメリットがあるほか、いちばん一般的なメソッド呼び出しが直接的に行われるので最適化が行いやすいということもあります。<br><br>その逆としてメソッドの手続きそのものを取り出したり(obj.method(:foo))、そのメソッドを呼び出そうとしたり(m.call())、そのメソッドを他のクラスに移そうとしたり(define_method(&m))すると手数がちょっと増えます。個人的にはそんなことをするのは「普通」じゃないから、簡単にできなくてもよいと思ってますけど、人によっては違う意見を持つかも。<br><br>どちらが一方的によいということはないと思います。歴史的に言えば、RubyはLisp流、PythonはScheme流ということになるでしょうか。<br><br>ところで、「引数の状態を取り出したい」ということですが、引数の数はMethod#arityで分かります。<br>正の整数であった場合、その個数の必須引数を取ります。負の整数であった場合 -n-1 個の必須引数を取ります(たとえば必須引数1であれば-2)。
ありがとうございます。>arity<br>でも名前とかは分からないってことですよね。<br>Pythonのfunc_code.co_varnamesみたいなことはできないんでしょうか。
すいません。現時点ではできません。<br>計画はあるんですけど。<br><br>ところでPythonのfunc_code.co_varnamesってPythonで実装された関数にしか使えませんよね(確認)。
Cで書かれた関数にはfunc_codeがそもそもないと思います。<br>言われてみると、不便ですね。<br>callable objectの場合にはfunc_codeを自分で作らないといけないのもダサいですね。