«前の日(01-06) 最新 次の日(01-08)» 追記

Matzにっき


2004年01月07日

_ [言語]まつもとゆきひろの「プログラミング言語論」【前編】

以前、リニューアル直後の『日経バイト』に書いたものがWebで掲載された。

一般的な言語論についてまとめて書く機会はなかなかないので面白かった。〆切はきつかったけど。 で、結果としては、歴史的正確さはいまいちだが、読み物としての出来はまあまあではないかと自画自賛。

_ [Ruby]M17NとCitrus project

Citrus Projectの人たちにも聞いてみてはという提案をいただいた。

とりあえず、私の理解ではCitrus Project当面の目標は「正しい」localeシステムの実装にあると思っていたので、 RubyのM17Nはより上位層であって参考にはならないのでは、と考えていた。 それはそれとして、とりあえずもう一度調べてみようと思ったのだが、 このCitrus Projectの現状は私にはさっぱりわからないのだった。

Googleで検索して得られるページは、 かなり古そうだし、メーリングリストアーカイブを見てもSpamばっかりだし。

一応、目標の中に「マルチスクリプトフレームワークの設計/実装」とかあるんで期待したんだけど。


2005年01月07日

_ [言語]Optional Static Typing -- Stop the Flames!

以前紹介したAdding Optional Static Typing to Python」に関連してフレームウォーが発生しそうなので、Guidoが火消しに回った記事。整理するとともに、より現実的な案を提案している。

  • Argument and return type declarations

    以前のエントリの通り。文法は

    def foo(a: t1, b: t2) -> t3:
      ...body...

    ただし、前回は紹介されなかった「意味」が定義されている。

    def foo(x: t1, y: t2) -> t3:
        ...body...
    
    is more or less equivalent to this:
    
    def foo__(x, y):  # original function
        ...body...
    
    def foo(x, y):    # wrapper function
        x = adapt(x, t1)
        y = adapt(y, t2)
        r = foo__(x, y)
        return adapt(r, t3)

    全体にPEP-246(Object Adaptation)を採用している。

  • Attribute declarations (maybe)

    型のついた属性。

    class C:
        x: t1

    を以下のように解釈する。

    x = typedAttribute(t1)
  • Interface declarations

    interfaceを導入する新文法の提案。PEP-245(Python Interface Syntax)よりimplementsが要らないなど簡略化されている。

  • Design by contract (maybe)

    function decoratorでpre, postを明示的に指定するというスタイルが目新しい。具体的にはこんな感じ。

    def _pre_foo(self, a, b):  # The pre-condition has the same signature as the function
        assert a > 0
        assert b > a
    
    def _post_foo(self, rv, a, b):  # The signature inserts the return value in front!
        assert rv > b
    
    @dbc(_pre_foo, _post_foo)   # design-by-contract decorator
    def foo(self, a, b):
        return a+b

型システムとしてはgeneric typeがなくなったりとかなり後退している。とはいえ、なんか、いきなり現実的になった感じ。Object Adaptationとかdbcとかは興味深いし、Rubyでも採用できそうな気がしないでもない。

_ Typing Ruby - Ruby言語型チェックプログラム

先日のエントリが引き金になってできたページらしい。 静的解析によりRubyプログラムの型不整合を発見するツール、と考えたらよいのか。 これも面白そうな試み。 完璧は無理でもデバッグの助けにはなりそう。 どこまでチェックできるのか注目したい。

_ [会社]会議

取引先との打ち合わせに参加。なにが出てくるか事前に予想できなかったので、同席したが、 実際には出番はなかった。これは、つまり、保険みたいなものか。「出番がなくてよかったね」と。

_ [特許]“特許テロ”と戦う手段

センセーショナルなタイトルだが、内容はあんまりない。要するに「特許ゴロ」のような企業がいくつもあり、それらを退治する根本的な方法は(まだ)ない、ということのような気がする。結局は現在の特許制度の限界と破綻の可能性を暗示しているということか。

_ [言語]PHPが「2004年のプログラミング言語」に〜TIOBE Index

Internet Watchより。

プログラミング言語の人気度を推測するために毎月ランキング情報を提供している「TIOBE Programming Community Index」が、「2004年のプログラミング言語」にPHPが選ばれたと発表した。この賞は、同インデックスにおけるレーティングの増加率が最も大きかった言語に与えられる。

だそうだ。おめでとうございます。

インターネットでしばしば使用されるスクリプト言語では、Perl(2.14%減)が6位、Python(1.72%増)が8位となっているほか、Rubyが29位に入っている。

と、とってつけたようにRubyが取り上げられているのが、嬉しいやら悲しいやら。

もっとも、このTIOBE Indexはかなりいいかげんな測定のようで、あんまり参考にはならないかもしれない。 ランキングを見ても、今日現在の1位であるCや、2位のJavaはともかく、「SAS(12位)」や「RPG(20位)」などは「違う単語が入ってるんじゃない?」って気になる。また、「ABAP(14位)」のような聞いたことのないものも含まれているな。

TIOBE IndexにおけるRubyのランキングについては、Premshree’s Personal Weblogのこのエントリが参考になる。なんか昨年後半に急激に下がっているような。


2006年01月07日

_ 雪かき

山陰地方は大雪。少々高台にあるわが家は一面雪に被われた。

今日は、私の実家に行こうと思っていたのだが、 先方が風邪でダウンだそうで、中止。

子供たちと妻が玄関先を雪かきしている。 ガレージの辺り、かなり広くなっているのだが、 ここが低温で凍ると車の出し入れが面倒になるからだ。

次女は積み上げた雪で「かまくら」を作って楽しんでいた。 うーん、かまくらなんて子供の時に見て以来だなあ。

で、しょうがないんで、路地の入り口からガレージまで2,30メートルほど、 私が雪かきをした。息が切れた。あんまり電池の保ちが良くないんで。

ぐったり。

_ [言語] プログラミング言語SRU

SmalltalkとRubyを足したような言語。だから「S-RU」なんだそうだ。

実用性は未知数(っていうか、現時点では実用性はない)けれども、 応援したい。


2007年01月07日

_ [教会] かぜひき

昨日のスケートで張り切りすぎたのか次女が体調が悪い。 自宅で休ませる。

聖餐会。いろいろな人が話してくださり、 またビショップが年頭の挨拶(兼、今年のワード目標の披露)。

ちょっと時間が押してしまったので、 あと何分で誰が話して...と気にしてしまったのは秘密だ。

次女が心配なので早めに帰る。 セミナリー補習の予定もあったのだが、延期。


2009年01月07日

_ 知事に会う

島根県庁に出向いて、溝口知事に昨年の Ruby Associationの活動について報告する。

島根県庁もRuby発展に協力してくださるとのこと。


«前の日(01-06) 最新 次の日(01-08)» 追記