clominal

240
-1

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
240
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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. ご清聴ありがとうございました
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×