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にっき(2008-02-01)
[go: Go Back, main page]

«前の日記(2008-01-31) 最新 次の日記(2008-02-02)» 編集

Matzにっき

<< 2008/02/ 1 1. 「ハッカーと画家」の著者が新しいLisp系言語「Arc」を公開 | エンタープライズ | マイコミジャーナル
2. 「セキュリティ、なめんなよ!」 なめねこも一緒に情報セキュリティ強化宣言 | ネット | マイコミジャーナル
3. 「サイオステクノロジーはグルージェントの未来技術に期待し子会社化」:ITpro
2 1. Nimble Method: Garbage Collection is Why Ruby on Rails is Slow: Patches to Improve Performance 5x; Memory Profiling
2. LuaJIT roadmap 2008
3. What will Matz do?
4. EURUKO 2008 − European Ruby Conference, Prague, March 29th − 30th
3 1. 末娘の成長
2. ゴードン・B・ヒンクレー葬儀および埋葬
4 1. 初心者向けの言語
2. ソフトウェア開発における初心者
3. Linux 2.6.24 on Thinkpad X61
5 1. Copy-on-write friendly patch for Ruby 1.9
2. セキュリティキャンプ・キャラバン with プログラミング -鳥取-
3. 最もタメになる「初心者用言語」まとめ - UK is not Britonish - ハチロク世代
4. Ruby.NET is dead | Zen and the Art of Ruby Programming
5. 立ち位置と情熱とバランス感覚:ITpro
6 1. 思わずうっかりついポロリ!これがエンジニアの失言だ/Tech総研
2. Ruby Waves: Home
3. Static Languages: Rationalizations and Myths :: Steve Vinoski’s Blog
4. バランスボール
7 1. microBlog >> Bounties for bug fixers: a bug-tracker plugin
2. Years of irrelevance - (37signals)
8 1. 米子工業高校 情報電子実習
2. たこ焼きパーティ
3. Garbage-first garbage collection
4. Bigtableオープンソース実装2題
9 1. Beautiful Code + 日経Linux
2. use Perl | Perl is now Y2038 safe
3. CPython用拡張モジュールをIronPythonから呼び出す (1) 「CPython Extensions for IronPython」とは? | マイコミジャーナル
4. プログラミング言語の進化を追え: 第1回 サルでも分かるプログラミング言語の新潮流(前篇)
10 1. 福千年
11 1. Life is beautiful: 原点に戻って徹底的に納得するまで理解する
2. スケート
3. SEDA - Architecture for Highly-Concurrent Server Applications
12 1. 取材
2. nishimotzの日記 - Rubyのチカラ
13 1. デブサミ2008 1日め (ディープな1日)
14 1. デブサミ2日目
2. PythonをDISる。
3. Pre New Generation Chronicle:上野康平−−3次元空間を統べる若き天才プログラマー - ITmedia エンタープライズ
4. New Generation Chronicle:べにぢょ−−ギークプロトコルの解読を試みるサイバーヤンキー - ITmedia エンタープライズ
15 1. 米澤先生講義
2. 京都 - jkondoの日記
3. 「島根県CMS」のオープンソースとしての公開について
16 1. io - Objective-C Syntax
2. InfoQ: John McCarthy on Elephant 2000, Lisp, Ruby and the Computer Industry
17 1. 風邪引き
18 1. 渡米
2. Matzに聞いてみた:効率の良い開発についてどうお考えでしょう? - builder by ZDNet Japan
3. レノボX300 封筒に入る超薄型ThinkPad - Engadget 日本語版
4. Hilton San Francisco
19 1. Sun Microsystems
2. A small example of the hidden dangers of dynamically typed programming languages.
3. Curlは関数型?というか、カオス - noblog
4. Time to rewrite DBMS, says Ingres founder | Reg Developer
5. almost effortless >> El Dorado
20 1. Google TechTalk
2. B・ゲイツ氏、マイクロソフトとスタンフォード大学の結びつきを強調:ニュース - CNET Japan
3. 月蝕
4. greenlet Lightweight in-process concurrent programming
21 1. オレゴンOTBC
2. オレゴンディナー
22 1. 帰還
2. しまねOSS協議会などに「地域づくり総務大臣表彰」:ITpro
3. Matz×Dan×Daiji「エンジニア進化論」|「てくらぼ」オープニングイベント スペシャル対談開催|パソナテック(PASONA TECH)
4. 【インタビュー】Love Code, Love CodeGear! - 22年目の親愛なるコードオタクDavid I参上 Love Code, Love CodeGear! | マイコミジャーナル
23 1. 帰還(2)
24 1. 帰還(3)
2. Happy Birthday Ruby
25 1. 帰還(4)
2. 誕生日
3. programming: Google TechTalk: Matz on Ruby 1.9
4. Virtuous Code > Monkeypatching is Destroying Ruby
26 1. KIISセミナー
2. 国内ベンチャーの海外進出ってどうなの?:CNET Japan オンラインパネルディスカッション - CNET Japan
3. アドビ、SQLite Consortiumに参加で開発を支援:ニュース - CNET Japan
27 1. 楽天ミーティング
2. 楽天、電子マネーサービス「楽天キャッシュ」を開始
28 1. MacRuby - ruby - Trac
2. Ruby, a message to you >> Boy, what ISN'T destroying Ruby these days?
29 1. 1.9.0-1 リリース準備
2. Webエンジニア武勇伝 第18弾 笹田耕一氏 | 株式会社ウェブキャリア
>>
迷惑メール対策なら Dr.WEB
『Dr.WEB メールデーモン』、MTA 用迷惑メール対策製品です!


2008-02-01 [長年日記]

NEW!_ [言語] 「ハッカーと画家」の著者が新しいLisp系言語「Arc」を公開 | エンタープライズ | マイコミジャーナル

Arcがとうとうリリースされた

現時点ではMzSchemeで書かれたSchemeへのコンパイラとして実装されているようだ。 チュートリアルを見ると 「簡潔な表現を重視したLisp-1」という感じ。 ふーん、Lisp-2じゃないんだ。

興味深いのは「~」と「:」。

「~f」は「(fn (x) (not (f x)))」を意味する。 「f:g」は「(fn (x) (f (g x)))」を意味する。 これらはより関数型プログラミングを強く意識していることを意味してるんだと思う。

あと、「lambda → fn」とか「defmacro → mac」とかは まあ単なる短縮形って感じ。「setf → =」ってのはちょっと意外だったけど。

で、さっそく批判されている。 「ビッグネーム」が6年越しでほのめかしてきた言語だけに 期待が膨らんでいたぶん、失望も大きかったらしい。 まあ、彼ほど忙しい人が自分で開発したんだから、 あんまり進まないのは当然だと思うよ。

さて、いくつもあるのうち最大のものは 「ASCIIの96文字しか扱わない」というもの。 とはいえ、フルUnicodeをサポートするのは大変だし、 「とりあえず」という意味ではそんなに悪い判断ではないと思うよ。 むしろ下手にUnicodeべったりな処理系にするよりは賢いかも。 変に実装すると今さら「1文字=16ビット」で実装しかねないから。アメリカ人は。 逆に「1文字=1バイト」にべったりしてもらっても困るわけだが。

私にとってもっと大きな欠点だと思えるのは、 オブジェクト指向機能あるいはgeneric functionが導入されていないこと。 まあ、Arcがオブジェクト指向言語でない理由はPaulがすでに述べているわけだが、言語の拡張性や柔軟性を考えるとgeneric functionは欲しかった。

あと、Lisp-1にCommonLisp的マクロシステムを導入しているような気がするんだけど、 これって安全に書けるんだっけ。よく知らないんだけど、 Schemeの人々がR5RSの時にマクロシステムでさんざん悩んだのはまさにそこにあった ような気がするんだけど。この辺は識者に聞いてみたいところ。

Lisp-1とLisp-2

ここで説明もなくLisp-1とかLisp-2とか書いたが、 そういえば日本語であまりこの用語を見たことがないので補足しておく。

基本的に名前空間が一つしかないLispのことをLisp-1と呼ぶ。 たとえばSchemeがそう。関数の名前空間と変数の名前空間か分離していないので

(display "hello world")  ;; (1) hello world
(define p display)       ;; (2) displayをpに代入
(p "hello world")        ;; (3) 1行目と同じ動作

となる。一方、名前空間がひとつでないLispをLisp-2と呼ぶ 別に名前空間の数はふたつに限るわけではない。CommonLispでは7つと聞いたような気がする(本当?)

(print1 "hello world")  ;; (1) hello world
(setq p print1)         ;; (2) undefined variable print1

CommonLispでは関数の名前空間と変数の名前空間が異なっているので、 上記の代入はエラーになる。

Lisp-1とLisp2の区別はLisp以外のプログラミング言語でも存在する。 たとえば、PythonやJavaScriptはLisp-1であり、 RubyはLisp-2である。

どっちが良いとかは難しいが、Lisp-1の方が関数型プログラミングを 統一的に書きやすいというメリットはある。 一方、伝統的なオブジェクト指向プログラミングモデルにはLisp-2の方が なじみやすいだろう。

NEW!_ 「セキュリティ、なめんなよ!」 なめねこも一緒に情報セキュリティ強化宣言 | ネット | マイコミジャーナル

「なめねこ」まで引っ張り出すとは。なんか私が前フリをかましたように見えるけど、 先日の「Webアプリケーションをなめるな」の元ネタは 「月をなめるな」ですからね*1

ちなみにこの研修、うちの娘の参観日でも行われていた。 が、中学生たちはちゃんと月について理解してたようだ。 少なくとも「酸素ボンベは要らない」などとは言わなかった。

*1  正確には「はっきりと意識はしてなかったけど、あえて言えば」くらいだね

NEW!_ 「サイオステクノロジーはグルージェントの未来技術に期待し子会社化」:ITpro

意外な展開。見守りたい。

これがどういう意味を持つのかは 内部事情を知らない私には断言するのは難しいけれど、 オープンソースをはじめとした技術(未来技術?)に価値を見いだす企業が増えており*1、 お金に余裕があれば会社を買うことでその技術を入手しようという行動が 少なくとも海外では目立っており、 この買収は国内でもその動きが出てきてい兆候なのだ、 とも読める。

そうなんだろうか。

*1  最近の例だとMySQL, Trolltechなど

本日のツッコミ(全2件) [ツッコミを入れる]
_ ささだ (2008-02-03 17:42)

(fn (x) (not (f x))) ?

_ まつもと (2008-02-03 23:11)

あ、ほんとだ。直しときます。

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

«前の日記(2008-01-31) 最新 次の日記(2008-02-02)» 編集

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