«前の日記(2005年01月06日) 最新 次の日記(2005年01月08日)» 編集

Matzにっき

<< 2005/01/ 1 1. 新年会
2 1. [教会]松江
3 1. 年始
4 1. [言語]Adding Optional Static Typing to Python
5 1. [言語] Python Is Not Java
2. 米子
6 1. [Ruby]Playing with Ruby
2. [言語]The Evolution of an Extension Language: A History of Lua
3. [特許]MS、ソフトのコンパイル・編集に関する特許を取得
7 1. [言語]Optional Static Typing -- Stop the Flames!
2. Typing Ruby - Ruby言語型チェックプログラム
3. [会社]会議
4. [特許]“特許テロ”と戦う手段
5. [言語]PHPが「2004年のプログラミング言語」に〜TIOBE Index
8 1. [言語]The Guido van Robot Programming Language
2. [OSS]A New Linux Business Model
3. [言語]Alan Ver0.08
9 1. [教会]岡山
10 1. [言語]The design of the Inferno virtual machine
2. [言語]DSL Design Considerations
3. [Ruby]Free Money for Rubyists!
4. [Ruby] YARV: Yet Another RubyVM 0.1.0
11 1. [特許][OSS]IBM、500件の特許をオープンソースに「寄贈」
12 1. [OSS]Sun CEOが語る「Javaをオープンソース化しない理由」
2. [OSS]PostgreSQLをメインストリームに推すPervasive
3. 新年会
13 1. [言語]私はなぜXMLを愛していないか 〜 言語屋の視点から
2. [Ruby]Looking for Japanese allies
14 1. 知識共有を基盤とした高度造船CIMの開発研究
2. Famous and not so famous programming quotes
3. [言語]Python in What's Ruby
4. 10代男の子の『なりたい職業』第1位は、プログラマー
15 1. [特許]マイクロソフト平野氏「特許は新製品を生み出すドライビングフォースとして無視できない」
16 1. [教会]出雲
2. [家族]誕生日
17 1. ミクロマンマニアックス
2. [原稿]Linux Magazine 3月号
18 1. [特許]Matz's diary:マイクロソフトは、オープンソースソフト陣営にどこまで接近できるのか
19 1. [会社]ビジター(訪問者)
2. [本]『C++の設計と進化』
20 1. [言語]Python Optional Typechecking Redux
2. [会社]人材不足と慢性的残業の悪循環を断ち切る : Hotwired
3. [Ruby]Ta-da list
21 1. OOPSLA 2004 Proceedings
22 1. 今日のハック
2. 水鳥ウォッチング
23 1. [教会]松江
24 1. [Ruby]文法の意味
2. [知財]Transmeta、経営再建へ - 知財と技術ライセンス重視へ
3. 知っておきたかったこと --- What You'll Wish You'd Known
4. [Ruby][ANN] Ruby 2.0!
5. [Ruby] Ruby-on-Rails Effect
25 1. [OSS]見直しがすすむGPL
26 1. [特許] 米サン、基本ソフト特許1600件を無償公開
2. [Ruby]accident attempt
27 1. Developers Summit 2005
28 1. [家族]三ヶ月目
2. [Ruby]Ten Things Every Java Programmer Should Know About Ruby
3. [OOP]OOP Is Much Better in Theory Than in Practice
4. [家族]ふたば祭
29 1. [本]『ハッカーと画家』
30 1. [教会]松江
31 1. [特許]「本当にオープン?」、米Sunの特許無償提供に民間団体が異議
2. [OSS] FSFは将来のGPLに対してフリーハンドか
>>

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のこのエントリが参考になる。なんか昨年後半に急激に下がっているような。


«前の日記(2005年01月06日) 最新 次の日記(2005年01月08日)» 編集