Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
clominal
clojureで作る
Application Platform
自己紹介
● 及川正崇(おいかわまさみつ)
● 静岡県在住のプログラマ
● 俺様言語処理系を作ってたらSchemeに遭遇
● 紆余曲折を経てclojureに落ち着く
理想的な環境
● ちょっとしたツールを手早く作れる
● 柔軟な言語
● 既存のライブラリが豊富にある
● 「気軽に」GUIを作れる
● 環境構築が楽
clojureを選んだ理由
● Lisp(repl、S式、マクロ)
● Javaの基盤を使いまわせる
– 豊富な標準クラスライブラリ(GUI付き※)
– 豊富な3rdParty製クラスライブラリ
– 豊富な技術情報
● 環境構築が割と楽
とはいえ・・・
テキストエディタとreplだけではしんどい・・・
となるとやはりEmacsで開発する?
Emacsは・・・
● すごい環境だと思う
→Emacs Lispで設定どころかアプリが作れる
● でもどこまで行ってもEmacs Lisp
→いろいろ制限があるようで、どうしても
 本気で勉強する気になれない。。
結局、自分が欲しいのは、
マ...
おもしろそうだから
作ってみよう
「clominal」の誕生
● ベースはテキストエディタとして実装
● すべてclojureで実装
● 当然clojureで機能拡張可能(GUI含む)
● replもGUIのツールとして実装したい
→clojureの関数呼び出しがまんまコマンド...
実装済みの機能
まだテキストエディタの基本機能だけしかない
● 簡単なファイル操作(開く、保存、閉じる)
● 検索(使いにくい)
● clojureコードのハイライト表示
● S式単位での移動
● ショートカットキー機構(Emacsのような複合...
実装はまだ全然貧弱
困っている事の方がはるかに多い。。
困ってる事(テキストエディタ)
● 当初「コアな機能は全て標準クラスライブラリ
で」と息巻いていた
● が、エディタ部分で使っていたJTextPaneの
Syntax Highlightが思う通りに実装できず
● O型なのでなんだか面倒くさくな...
困ってる事(日本語変換ウィンドウ)
● Linuxで実行した場合、日本語変換候補ウィン
ドウがJFrameの左下に出てしまう。
● 結構致命的な気がするけどO型なので(ry
● Windowsでもおかしな位置に表示されたが、
こちらは一応座標を...
困ってる事(置換機能)
● RSyntaxTextArea.jarが持っている置換機能
の呼び出しがうまくできない。
● ソースを見たが、置換の関数は検索の関数と
アクセス記述子が異なっていた。(private)
● なので、リフレクションを使...
困ってる事(性能)
● 爆速PCだと違和感を感じないが、超非力な
PCだとかなりもっさりした動き
● ボトルネックを調べて改善したいけど、ボトル
ネックの調べ方がいまいち分かってなくて放置
状態
困ってる事(設計とコード)
● 基本的な設計指針がしっかりと決まってなくて
構造が汚い
(Emacsを先生にしないとダメな気がする)
● 設定ファイルsettings.cljをどういう位置づけに
すべきなのか割と本気で分からない
● 「手続き」...
clominalは・・・
● まだまだ課題が山積み
● その上ブサイク
● でもかわいい我が子のようなヤツなので
のんびり実装していこうと思っています
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

clominal

419 views

Published on

clojureで作ったテキストエディタ、clominalのコンセプトの発表です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

clominal

  1. 1. clominal clojureで作る Application Platform
  2. 2. 自己紹介 ● 及川正崇(おいかわまさみつ) ● 静岡県在住のプログラマ ● 俺様言語処理系を作ってたらSchemeに遭遇 ● 紆余曲折を経てclojureに落ち着く
  3. 3. 理想的な環境 ● ちょっとしたツールを手早く作れる ● 柔軟な言語 ● 既存のライブラリが豊富にある ● 「気軽に」GUIを作れる ● 環境構築が楽
  4. 4. clojureを選んだ理由 ● Lisp(repl、S式、マクロ) ● Javaの基盤を使いまわせる – 豊富な標準クラスライブラリ(GUI付き※) – 豊富な3rdParty製クラスライブラリ – 豊富な技術情報 ● 環境構築が割と楽
  5. 5. とはいえ・・・ テキストエディタとreplだけではしんどい・・・ となるとやはりEmacsで開発する?
  6. 6. Emacsは・・・ ● すごい環境だと思う →Emacs Lispで設定どころかアプリが作れる ● でもどこまで行ってもEmacs Lisp →いろいろ制限があるようで、どうしても  本気で勉強する気になれない。。 結局、自分が欲しいのは、 マクロ言語がclojureのEmacsモドキ
  7. 7. おもしろそうだから 作ってみよう
  8. 8. 「clominal」の誕生 ● ベースはテキストエディタとして実装 ● すべてclojureで実装 ● 当然clojureで機能拡張可能(GUI含む) ● replもGUIのツールとして実装したい →clojureの関数呼び出しがまんまコマンドに! →「clojure」の「端末(terminal)」     ↓  「clominal」と命名  ちょっと響きがかっこよくて気に入っている
  9. 9. 実装済みの機能 まだテキストエディタの基本機能だけしかない ● 簡単なファイル操作(開く、保存、閉じる) ● 検索(使いにくい) ● clojureコードのハイライト表示 ● S式単位での移動 ● ショートカットキー機構(Emacsのような複合 キーストロークを実現)
  10. 10. 実装はまだ全然貧弱 困っている事の方がはるかに多い。。
  11. 11. 困ってる事(テキストエディタ) ● 当初「コアな機能は全て標準クラスライブラリ で」と息巻いていた ● が、エディタ部分で使っていたJTextPaneの Syntax Highlightが思う通りに実装できず ● O型なのでなんだか面倒くさくなってきて ● RSyntaxTextArea.jarを使うことにしてお茶を 濁している。
  12. 12. 困ってる事(日本語変換ウィンドウ) ● Linuxで実行した場合、日本語変換候補ウィン ドウがJFrameの左下に出てしまう。 ● 結構致命的な気がするけどO型なので(ry ● Windowsでもおかしな位置に表示されたが、 こちらは一応座標を返してきたので、補正して カーソル位置に表示できるようにしてある。 ● 貧乏人なのでMacでの挙動は知らない。。
  13. 13. 困ってる事(置換機能) ● RSyntaxTextArea.jarが持っている置換機能 の呼び出しがうまくできない。 ● ソースを見たが、置換の関数は検索の関数と アクセス記述子が異なっていた。(private) ● なので、リフレクションを使って無理やり呼び出 そうとしたが、なぜかうまく呼び出せない。 ● O型だけど、これは何とかしたいと思ってる。
  14. 14. 困ってる事(性能) ● 爆速PCだと違和感を感じないが、超非力な PCだとかなりもっさりした動き ● ボトルネックを調べて改善したいけど、ボトル ネックの調べ方がいまいち分かってなくて放置 状態
  15. 15. 困ってる事(設計とコード) ● 基本的な設計指針がしっかりと決まってなくて 構造が汚い (Emacsを先生にしないとダメな気がする) ● 設定ファイルsettings.cljをどういう位置づけに すべきなのか割と本気で分からない ● 「手続き」丸出しのclojureコードでちょっと恥 ずかしい
  16. 16. clominalは・・・ ● まだまだ課題が山積み ● その上ブサイク ● でもかわいい我が子のようなヤツなので のんびり実装していこうと思っています
  17. 17. ご清聴ありがとうございました

×