Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Matzにっき(2005-01-07)
[go: Go Back, main page]

«前の日記(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. 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. 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. Free Money for Rubyists!
4. YARV: Yet Another RubyVM 0.1.0
11 1. IBM、500件の特許をオープンソースに「寄贈」
12 1. Sun CEOが語る「Javaをオープンソース化しない理由」
2. PostgreSQLをメインストリームに推すPervasive
3. 新年会
13 1. 私はなぜXMLを愛していないか 〜 言語屋の視点から
2. 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. Ta-da list
21 1. OOPSLA 2004 Proceedings
22 1. 今日のハック
2. 水鳥ウォッチング
23 1. 松江
24 1. 文法の意味
2. Transmeta、経営再建へ - 知財と技術ライセンス重視へ
3. 知っておきたかったこと --- What You'll Wish You'd Known
4. [ANN] Ruby 2.0!
5. Ruby-on-Rails Effect
25 1. 見直しがすすむGPL
26 1. 米サン、基本ソフト特許1600件を無償公開
2. accident attempt
27 1. Developers Summit 2005
28 1. 三ヶ月目
2. Ten Things Every Java Programmer Should Know About Ruby
3. OOP Is Much Better in Theory Than in Practice
4. ふたば祭
29 1. 『ハッカーと画家』
30 1. 松江
31 1. 「本当にオープン?」、米Sunの特許無償提供に民間団体が異議
2. FSFは将来のGPLに対してフリーハンドか
>>
Dr.Web 予測するアンチウイルス 持ち込み PC 対策でお悩みの方にオススメです。
ウイルス・スパイウェア検査・駆除 用ツール Dr.WEB CureIt! を無償配布中!

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

本日のツッコミ(全8件) [ツッコミを入れる]
_ じろう (2005-01-08 14:52)

はじめまして。

SASは本当に言語かな?と思いますがRPGはAS/400で使われる例のRPG言語のことだと思いますので特に問題はなさげな・・。ABAPはSAP用言語ですね。

_ ゆきち (2005-01-08 15:24)

ABAPやっている人です。ABAPというのは、SAPというERPのシステムで稼働する言語で、構文はCOBOL似と良く言われます。要するにERPでデータを処理するために作られた特殊な言語で、構文中にSQLを混ぜることができます。が、その文法は、おそらくまつもとさんが見たら、卒倒するようなものでしょう。是非一度感想を聞きたいと思っている位なのですが、まあ、普通は、一生使うことはないと思います。

恐らく、その評価はSAPの世界的な需要に応じたものと思われます。

_ yoosaki (2005-01-08 15:27)

> TIOBE Indexでは、Google、MSN、Yahoo!の各サーチエンジンとGoogle Newsgroupにプログラミング言語の名前を入力して、検索結果の件数によって毎月のレーティングを決めている。

そうなので、
プログラミング言語としてよりも別の意味の単語としてカウントされているということですかね。

_ Orca (2005-01-08 16:48)

RPG (RPGII, RPGIII)はパソコン用にも出てたです。
こことか → http://t-kun.sakura.ne.jp/fo/room03/mz09.htm
IBM 5550用のヤツとか

_ じろう (2005-01-08 16:55)

>yoosakiさん
あ・・・、なるほど。全然行間を読めてなかったです。;--

SASも調べてみるとSASマクロ言語ってのがあるようですが、で、これも、例えばSAS(英国特殊部隊)と混合している可能性もあるということですね。

_ まつもと (2005-01-08 19:10)

そゆことです > じろうさん

SASはスカンジナビア航空の略称でもありますね。

_ (2005-01-09 00:51)

TIOBE Indexは「+"<言語名> programming" -tv」という検索クエリを使ってるとのことですので、航空会社や特殊部隊やサザンオールスターズ;-)が混じる可能性は低いかと。
SASは何十年も前からある統計パッケージで、最近ではGUIもありますが、もともと大型計算機上でSAS言語のスクリプト書いて実行するものでした。いまでもちょっと凝ったことをやろうとすれば、SAS言語でスクリプト書く必要があります。
統計関係では業界標準的なパッケージで、大学で教わることも多いと思うので、個人的には12位でもおかしくない気がします。ただユーザーはいわゆるプログラマではなくて、統計屋さんなわけですが。

_ (2005-01-09 01:06)

あ、蛇足ですが、医療統計用のシステム開発案件とか請け負うと、統計処理にはSAS使って……ってことになりがちなので、プログラマがSAS言語を使う場合も、もちろんありますです。

お名前:
E-mail:
コメント:
本日のリンク元
検索

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

RSS feed meter for http://www.rubyist.net/~matz/ Creative Commons License This work is licensed under a Creative Commons License.