まめ畑

ゆるゆると書いていきます

Lightweight Language Futureまとめ

昨日のエントリでも書きましたが、2008年8月30日開催のLL Futureに行ってきたので簡単にまとめておきます。
以前の、OSC2008 Kansaiの時のように個人的にメモをしたことをまとめているので、情報の不足などがありますがご了承下さい。
また、写真を掲載しているので不都合などありましたら削除します。


最高に興奮した中野でのLL充な1日の始まり。

D

基調講演(Mr. Larry Wall)

Perlの作者の方。登場した瞬間に興奮。。
実は会場入りした時にご家族に遭遇しました。
講演を聞いた感じでは、すごくおちゃめな方といった印象。
普段Perlは使わないし、よくわからないけどとても興味深かった。
しかし、英語での講演だったため若干聞き取れないところがあり勉強不足を悔やんだ。


内容としては、Perl6について。
正規表現の事など。
正規表現の書き方の違い。
パーサーについても話していた。


そういえばUbuntu使ってた。

LLで未来を発明する(司会: 今泉貴史さん)



こちらも何と豪華なメンバー!
興奮続き!
セッションの内容は3つの質問に答えていくといった感じ。

  1. 100年後の言語はどうなっているか?
  2. これまで何をしてきたか?
  3. これから何をしていきたいか

1

    • impossible to predict
    • extensible but expressive
    • self-defined
    • precisely scoped
    • paradigm neutral
    • scalable
    • optimizable
    • paralleizable
    • accessble
    • techable
    • transparent
    • community-based
    • -O楽


2
Perl!


3
他の開発者のコミュニティを見守っていきたい
CPANとか

1
人間とコンピュータのインタラクションはプログラムではなく、自然言語で行われるようになるのでは?
しかし、数学の延長線上に何かあるかも。


Q「数学的な気泡で好きなもの」
A「+ -」


2
Ruby
プログラム言語は楽しいということを普及。
言語だけで1000人も集まるのは日本だけ。
アメリカではこんなに推進力がない。
未来は明るい。


3
言語好きを増やす。

1
わからない
100年前の論文にλ
17〜20世紀Computer = 職業
100年後のプログラム言語は予想も、意図して発明も出来ない。
電子計算機を「自然言語+α」で操作できるかも。


2
色んな抽象化した言語の研究
数学的なモデルで言語を見ている。


3
100年後とかにも記録に残るように下支えをしていきたい

  • 藤田善勝さん(Ypsilon)

1
メモリ管理
並列処理
プログラム
は労力を減らす
C++とかはなくなるかも
→CPUが低レベルな事をサポートするようになると、プログラムは抽象度の高い所へ。
実装と分離される
→実装にひきづられない


2
ゲーム開発で使う、DSLのツールのためにスキームで実装
多様な言語を作るのに適している


3
何か面白い言語仕様のものが出たら使ってみたい
実装出来なくても、仕様を発表して欲しい

1
言語統一理論発表!
言語はやっぱりLispだったんだ!!


PCを生まれた時からあって、存在を疑わない簡単に扱える
手足のように
ただ、完全に自然言語で扱うのではなく少し練習をする


2
SICPに感銘を受けた
スキームの素晴らしさを世に広めたい
S式でコマンド入力()保管機能


3
OSを世界の人に使ってもらう
(MonaOSの作者の方です)
フルスタックのOS
使いやすい

先ほどのメンバーでトーク

  • かいつまんでます
  • 違う視点からのディスカッションで大変興味深かった。


まつもとさん: 未来の自然言語でCPUに命令を出す時代でも、PCにLinuxを起動するように命令してgccでプログラミングをする。

Mr. Larry: Perl6は広く深くを目指す

藤田さん: エラーメッセージをわかりやすく(ユーザのレベルに応じたエラーの表示)
     仕様ないし


まつもとさん: 考えていない。でも、大切なこと

住井さん: エラーに関する論文ない。評価も大変。

ひげぽんさん: プログラミング言語のせいでユーザに時間をとらせたくない

サイコー!?フレームワーク(司会: 佐々木健さん)


MobaSiFはO/Rマッパーは用意していないので、SQLを意識する必要がある。
Gihyoで連載中。


Gauche on Rails
RoRで出来ることはLispで出来るのは当然
フレームワークとはメタプログラミングとは
Gaucheはメタプログラミングのための言語


フレームワークの進化はいいことだけではない
→学習コストが高い
Seasarでは機能追加はしないで、より枯れた方向へ
→保守・サポートはする


フレームワークで便利になるけど、学習コストがあるので生産性が上がったかといえば?


RoRの暗黒面

  • 進歩が速い
  • 互換性よりもクールさを求める
  • RoRは開発者を選ぶ


RoRにはまったらLispまであと一歩!
Railsの影響で設定より規約という流れ


LLはJavaが嫌い


会場では、安定性と進化どちらを求めるかという質問に回答は半々でした。

1001枚売れた!
762人しか来てない(15:25)

LLでアート(司会: 砂糖智昭さん)

  • 増田一太郎さん(メタファー)
  • 真鍋大度さん(ライゾマティクス)

LLでアートということで、LLでビジュアル表現といった内容でした。
大変興味深い内容で、とりあえずProcessingやりたくなりました。


海外ではDynamic Languageと言う
特にインド?


Rubyでインタラクティブ
RubyCoCoa
Core Animation(レイヤーアニメーション)
Quartz Composer(動画処理)


Ruby-Processing
JRuby上で動く


action-coding
JRuby+Processing
書いたそばからCGが変化していて面白かった!


プログラムでインタラクティブなものを作る敷居は下がってきている。


Max/Msp
音響・映像のためのビジュアルプログラミング言語


Max/Msp/Jitter

Visual PG環境
Javascript使える
リアルタイム性(実行中に修正・チューニングが可能)


プログラムが煩雑になりやすい
処理が遅い
フリーじゃない
巨大になるとデバッグが困難

キミならどう書く?(司会: 高野光弘さん)

  • 松野徳大さん
  • Yuguiさん
  • 浜地慎一郎さん
  • 西尾泰和さん
  • LL Golf the future
  • U-30

コードゴルフとはお題に対してどれだけ短いコードで書くかを競うもの。

  • Perl Golf
    • 世界初のゴルフ場
  • Code Golf
  • Anarchy Golf
    • 日本初!50以上の言語が使えるゴルフ場

みんな大好きPHP?

アマチュアゴルフテクニック
道具の使い方
どれだけ短くするかを競うので言語の使用、しかもマニアックなものを知っているといいと思った。
しかし、日常生活で使うことはないかと思う。


いつもと違うコードの使い方が面白い
言語やライブラリの特色に注目
コードが短くなる過程を楽しむ
バイナリアンへのきっかけ


こんな言語で参加してきた

すげー・・・・。


少しメモ
$&は初期ではnil
正規表現にマッチするとその部分が入る


会場ではServer errorの特設ゴルフ場で行われたお題の添削と表彰式的なものをやっていた。
普段書かないような書き方や、プロの犯行・ネタなど様々な書き方が登場して目から鱗でした。
ぜひ参加したいです。
これは面白い!

古い言語、新しい言語(司会: 高野光弘さん)

  • 岩槻俊宏さん
  • 小林悠さん
  • 森田創さん
  • 新藤愛大さん


タイトルはつり(ry

  • 古い言語
    • 構文解析技術
    • LL(1) -> SLR(1) -> LR(1) -> LALR(1)
    • パス数
    • 計算機の性能

PCにやさしい言語
コスト構造
人件費+管理台帳 <<<<<< 計算機資源(昔)
Lispとゴキブリの共通点: なつたん

WEB3.14w


LLVM
low levelの世界

  • Riscライクな低水準命令セット
  • レジスタマシン
  • プログラムのライフサイクル全体にわたる変換と最適化
  • LLVMの使いどころ
    • 設定ファイルやオプションが多い環境

MacOSX LeopardOpenGLスタックに採用


過去のC資産の再利用を重視

  • 関連Project

俺言語GCCフロントエンド向けに書いたコードがブラウザで動作するようになる

Tamarin・・・

自由なプログラミング言語開発環境

LT

  • 出演者

  • 準備風景

LT twitter人工無能を作ろう! (showyouさん)

人工無能とは(Twitter: ha_ma)
簡単な応答を返す
IRCで最初は実装した

Twitterだとアイコン+テキストで識別するので人工無能と人間とを間違いやすい。

  • 推論


かわいいアイコンも大切
LLで簡単に作れる

LT Client-side database storageで実際にアプリケーションを作ってみた (藤井太洋さん)

HTML+JS
dashmark

クライアントPCへデータを保存
非同期
→処理にIDをふってスレッド処理のように

富豪的SQL
1人でDBを使うから
Safariを閉じると消える

  • DBは保護されている
    • ドメインが違えばアクセス出来ない
    • PASSないのでファイルを開けば見れちゃう

LT 私は如何にしてNarioを作り、一面をクリアしたか (authorNariさん)

これは面白かった!
LTでゲームの1面をクリアしようとするのがすごい!
何回か失敗してハラハラした。会場からもがんばれの声が。

  • Nario
    • Rubyで作ったあのゲームに似た横スクロールゲーム

あのBダッシュの爽快感を再現
Narioのグレーなところを大幅削除、ソース中のMarioを削除

LT 「Pit」で救う世界 (庄司嘉織さん)

1年120Secが無駄
IDとパスワードを書き換えて
IDとパスワードを書き換えて
IDとパスワードを書き換えて
IDとパスワードを書き換えて
IDとパスワードを書き換えて
IDとパスワードを書き換えて

password dankogai kogaidan でググると480件ヒット

もろもろで500年無駄になってる。

Pit
account management tool
設定がないなら、$EDITORで
$HOME/.pit/配下に設定ファイル
プロファイル名.yaml
簡易DBとしても

失われそうな500年のためにもPitを作ろう

Pit Java
Coming soon

LT Babel21 (原悠さん)

島根は鳥取の左です
LL本書いてる
White Spaceも印刷されている

C in LL ←今ここ
LL in LL

Rubiskell
Haskellインタプリタはしる
富豪的プログラミング

Ruby in Scheme in Rubyも出来る
Ruby1.8にRuby1.9

今後
Brainf*ckを入れたい

unbabel

LT Ruby on Railsで実現する自走式Webサーバ (佐藤伸吾さん)

これは会場が爆笑の渦に包まれた!
だって、Webサーバが走る!

拡張現実ライフ 跡地 (引越し先は http://akio0911.net/ )

ワイド画面タッチスクリーン搭載リモコン
Webサーバ
ラジコン

Webサーバ走った!
iPhone(Safari) -> RoR -> Delphi -> サーボコントローラ -> サーボ

LT ちょっと草植えておきますね型言語Grass (うえのかつひろさん)


草をはやす言語
w W vで記述
λ計算ベース

にわん語で最初に処理系が実装された

D

Webアプリケーションを作りたい
www ←親和性高い!
でも、これパースエラー
wWwで無限ループ

LT Scilab数値計算 (Y.Sawaさん)

数値計算言語
難しい話は省略
Scilabなら難しい計算も簡単
モデリングツールもある

大会は参加者2桁いないから皆参加しよう!

LT yet Another Prototype Oriented 〜NewtonScriptに見るもうひとつのプロトタイプ志向〜 (GNUEさん)

ApplePDA Newtonのために作った
文法はPython+JSON

プロトタイプ志向
クラス不要
全てインスタンス
プロトタイプチェインで継承

LT 超未来型言語 Gallina (今井宜洋さん)

OcamlHaskellに似ている
言語内で静的継承可
関数と型が第一級

LT 未来の並列プログラミング言語としての Haskell (shelarcyさん)

Haskellの並列化機能
低→高レベルの並列化

DPH
並列配列
自動並列化
ベクトル化(フラット化)
評価

まとめ

兎に角、LLにまみれた1日でした。
会場は

こんな感じで、ここが満員になってました。

凄くパワーをもらえました。
発表もネタが仕込んであって、プログラムでここまで色々な事が出来るとやってみたいことが増えますね!

お話を聞きたかった方々にも会えて刺激になりました。
来年も是非!