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-03-08)
[go: Go Back, main page]

«前の日記(2005-03-07) 最新 次の日記(2005-03-09)» 編集

Matzにっき

<< 2005/03/ 1 1. 就職活動
2. NPO法人や神戸情報大学院大学がオープンソースのイベント,MySQL創業者やZope CEOが来日講演
3. 「日本企業はCOBOL資産を利用し続けるべき」と英マイクロフォーカス社長
4. FLOSS-JP オープンソース / フリーソフトウェア開発者 オンライン調査日本版
5. 「ソフトウェア特許は弊害をもたらす」、MySQLのマーティン・ミコスCEO
6. FAQ based Web site
2 1. iPodショックから日本企業は何を学ぶのか
2. カールとターボリナックスがリッチ・クライアントソリューションで提携
3. The Internet Company − Special Offer for Ruby Users
4. ピアノの移動
5. Computer History Museumに見る小型化の歴史(その1)
6. 効果的なリリースの仕方
7. JSON: The Fat-Free Alternative to XML
3 1. 初節句
2. ブラウザ特許訴訟、控訴審でMicrosoftが逆転勝利
3. オープンソース・イニシアティブ、ライセンス急増への対策を提案
4. IBM、オープンソース支援策を発表--学生の求職やスキル習得をサポート
5. 論文書きにおける悲劇のサイクル
4 1. Category in Objective-C
2. お葬式
5 1. オープンソースカンパニーユヒーロ再び
2. IT業界に根付く神戸情報大学院大のオープンソースカリキュラムとは
3. EUのソフト特許法案、7日の閣僚会議で承認へ
4. 「サマータイム」がやってくる!?
5. 情報処理学会第67回全国大会 - 情報の検索・抽出最先端
6. SAJAX - Simple AJAX Toolkit
7. Dynamic Languages Symposium
8. 寒さとお祭り
6 1. 松江
2. Matsue Ruby Meetup Group
7 1. Span
2. Pugs
3. 韓国で有名な日本人
8 1. The Nice programming language
2. Eleven
3. Meetup for The Matsue Ruby Meetup Group
4. 出会え系
9 1. Eleven続き
2. Meetup Group Meeting レポート
3. Ruby 2.0 ブロックローカル変数
10 1. Rast ファーストリリース
2. The Power of Blocks in Ruby is accepted
3. FOSS企業を成功に導く7つのヒント
4. 思いつき
5. 「Regarding Ruby (and Ruby on Rails)」または初心者向け言語の落とし穴
11 1. ハネムーンナンバー
2. こんなにあったUI特許--ジャスト-松下裁判で浮かび上がる課題
3. Colorization Using Optimization
4. ITmediaニュース:先願主義を導入すべき-MS弁護士、特許法改正を訴える
5. アマゾン、「女の子にはピンクの包装紙」を提案するシステムで特許取得 - CNET Japan
12 1. 新見
2. 言い訳
13 1. 新見(2日目)
14 1. 体調不良
2. MM!
3. RubyURL.com in a hour...
15 1. 確定申告
2. キムチの作り方
3. 抗菌コンピュータ
4. 特許庁にビジネスモデル申請 - 内部告発システム開発で泰希堂
16 1. 続・言い訳
17 1. 米Yahoo!、架空の「テクノロジー予測株式市場」を開設
18 1. 卒業式
19 1. Undergraduation
2. Sun、動的言語を支援する「Coyote」プロジェクト
3. ParenScript
20 1. 岡山
21 1. Java vs Ruby (or RIFE vs Rails)
22 1. CC-Wikiライセンス
2. The State of the Scripting Universe
23 1. 地球の壊し方
2. Ruby Conference 2005
24 1. Five Things You Didn't Know You Could Do with Ruby
2. コードがドキュメントだ
25 1. The Pragmatic Studio
2. UnderC
3. Selenium
26 1. 『巌窟王』と思い出
2. オープンソースソフトは時限爆弾 -- MS出資のシンクタンクが批判
3. 「RPGツクール XP」東京工科大学の授業用教材として採用
4. 企業で真価を発揮するP言語 -- Burton Group報告
5. Writing a simple Ruby evaluator
6. The Guerrilla Guide to Interviewing
7. OSC 2005 セッション「Ruby Hot Topics」
27 1. 出雲
28 1. 就活デー
2. FSF:「GPL第3版でフリーソフトプロジェクトが分割することはない」
3. IT資本論 観光と文化資本クラスター
29 1. 山口へ
2. 一時間で覚える Ruby
30 1. 遊ぶ子供たち
2. 日本通信 B-MOBILE
31 1. Five-minute Multimethods in Python
2. 住商情報システム、VAリナックス子会社化でオープンソース分野を強化
3. ヒューメント、Firebirdの有料サポートサービスを開始
4. 松江市玉湯町
>>
Dr.Web 予測するアンチウイルス  Hiki も使った新サイト、10/18 リニューアルオープン!

2005-03-08 [長年日記]

_ [言語] The Nice programming language

kazamachiさんからの情報。JVM上で動くyet another language。 IBM Developer Worksのalt.lang.jreでもとりあげられている

Java言語の冗長なところを取り除いて、 Parametric Typeなどを強化した、という感じか。

DBC(Design By Contract)やmulti-methodをサポートしているのは良いところだ。 というか、Javaが最初からこれくらいできていれば苦労しないですんだ人は多いだろう。 十分に保守的なので「Javaのあるべき姿」と言っても良いかもしれない。

でも、レシーバがある場合のmulti-methodの定義構文は好きじゃない。 定義と呼び出しで見かけが全く違うから。

void laugh(String str){
  println("haha, I'm holding an instance of " str);
}

let myString = new String("Andy");
myString.laugh();

_ [言語] Eleven

この「Matzにっき」で紹介した言語もかなりの数になると思うのだが、 よくもまあ次々と現れるものだ。言語好きとしては嬉しい限りだ。

Elevenは、 信頼性の高い、スケーラブルなWebアプリケーションを開発するためのプログラミング言語で、 Cに似た文法でデータベースをバックエンドとしたアプリケーションを開発できる。 Elevenで開発されたWebアプリケーションは PHPまたはmod_perlで動作する(ということは、コンパイラはPHPまたはPerlを吐くということか)。

面白いのはセッション状態変数をすべてMySQLデータベースに記録するので、 セッション管理などは暗黙的に行われる(これをstatesafe variableと呼ぶ)。

statesafe var first, last;

display
{
  print ("Please enter your name.");
  edit ("First name: ", first);
  edit ("Last name: ", last);
}

display
{
  print ("Thank you, ", first, " ", last, ".");
}

これだけで2画面を持つWebアプリケーションを実装したことになる(右図は実行例)。 実行例には「Updated state for user 1005.」とか「Continue」「Logout」とかのように 「どこから来たのか?」と疑問に思う部分もあるが、 とりあえず気にしないことにする(いざとなればソースを読めばよいから)。

それぞれのdisplayがWebアプリケーションの各画面に相当しており、 ロジックが非常にわかりやすい。画面遷移の記述として非常に直感的だ。 すばらしい。

次の例も衝撃的だ。

statesafe table
{
  var deadline    "Task deadline";
  var description "Task description";
} todolist;

display
{
  edit ("Enter your tasks: ", todolist);
}

これでToDoリストアプリケーションが実装できた、ということらしい(右図)。 非常に興味深い。tableというのがpredefinedな構造で、 "edit"に対して「Modify...」、「Remove...」、「Add entry...」などまで含めて提供しているようだ。

なかなかよくできている。 プレゼンテーションとロジックの分離のような 最近のWebアプリケーションサーバーでのはやりの仕組みはどうなっているのかという点も気にならないではないが、基本的な方向性は非常に共感できる。

で、考えてみると、これって別に新しい言語を導入しなくても、 Rubyのブロックとインスタンス変数を使ってライブラリで実現できそうだ。こんな感じで。

statesafe :first, :last;

display {
  print "Please enter your name."
  edit "First name: ", @first
  edit "Last name: ", @last
}

display {
  print "Thank you, ", @first, " ", @last, "."
}

だれかElevenのアイディアをRubyのライブラリとして実装しようという人はいないだろうか。

_ [Ruby] Meetup for The Matsue Ruby Meetup Group

ということで、開催された。

事前の予想通り、社外からの参加者はなかったが、告知時間が短かったのでしょうがないだろう。 参加者は、私から時計まわりに、 まつもと、しゅうご、ゆうや、ごう、どん、こうじ、けんご、かずひこの計8名(敬称略)。 どこかに食べに行くか、という話もあったが、それでは食べるばかりでミーティングになりそうもなかったので、 オフィスの大机でピザを取ることにした。

結局、なんだか雑談で終わってしまったような気もするが、とりあえず話したこと。

  • 自己紹介(のようなもの)
  • Rubyと求人(ちゅーか、どんな新人に来てほしいか)
  • RubyとWebアプリケーション(ちゅーか、社内で開発中のWebアプリについて)
  • Ruby 2.0(「いつでるんですか?」「できたとき」「はぁ」)

あとなんだっけ。Lispにおけるレキシカルスコープとダイナミックスコープの話とか、 いろいろしてたような気がするけど。きっとかずひこくん辺りが議事録を出してくれるんではないかと。 出ても雑談ばかりで価値があるかどうかはわからないけど。

反省点など。

  • けっこう楽しかった(私は)。他の人は退屈だったかも。
  • 時間が長すぎ(6時半から11時近くまで)
  • 雑談に終始して生産性(?)は低かった

次回も開きたいが、今度はテーマを決めた発表か、CodeFestにした方が良いかもしれない。 時間も1時間半くらい限定で。

_ 出会え系

ところで、今回利用したMeetup.comだが、 ミーティング中にさっそく「今回のMeetupはどうだったか」とか「次回はいつにするか」とかメールを送ってきた。なんと積極的な。これは「出会え系(命令形)」とでも呼ぶべきか。

本日のツッコミ(全2件) [ツッコミを入れる]
_ kazamachi (2005-03-09 09:59)

Eleven面白そうですね。興味がわきます。
Niceを取り上げていただいて有難うございます。Matzさんの意見を読みたかったので、本当に有難うございました。

_ yoosaki (2005-03-09 10:13)

Ruby版、名前はやはりTwelveでしょうか。

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

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