仕事のプロジェクトが一段落したかと思いきや、後出しジャンケンを食らっている あーる(@rkoubou_jp) です。
仕事上で後出しジャンケンを食らうことや、忖度、エスパー能力を求められるのは一番キライです。
閑話休題。
目次
Twitterで実施したアンケート
10回答を頂くことが出来ました。
回答をして頂いた方々、ご協力ありがとうございました。
現在、Visual Studio Code 向け KSP 対応の拡張機能を公開しています。
次のバージョンでは、スクリプト内容の解析が強化され、エラー・警告を検出の精度が一段と上る見込みで、
KONTAKTのエディタ上以上に細かい結果を得られる事ができるようになります。
(*この記事を書いている時点でプログラミングはほぼ終わっています。)
例:こんな感じです。
Q1
結果
- 50%:KSPのみ
- 20%:KSPがメインで他のプログラミング言語も使う
- 30%:KSP以外のプログラミング言語がメイン
目的
エラーメッセージ表示に辺り、文言を考えなければならないわけだったのですが、
- 分かりやすさ
- 細かさ
- 用語の使用方法
等の点でどう構成するかを考えていました。
自分の中では【KSPを書ける人は普段他のプログラミング言語も扱えるだろう】 という無意識に思い込んでいましたが、ここで一歩下がって「それは本当にそうなのか?」と思い、この設問を設けさせて頂きました。
結果、半数の方が「KSPのみ」だったため、可能な限り分かりやすい文言で構成するように心がけました。
(中〜上級者の方にもエラー文から有益な細かい情報も得られるのではないかと思っています。)
Q2
結果
- 30%:1000行未満
- 30%:1000〜3000行
- 20%:5000〜10000行
- 20%:余裕で10000行を超える
目的
スクリプトの解析時間の目安を想定するにあたり、どれぐらいの記述量なのかを知りたくこの設問を設けさせて頂きました。
自分の予想では10000行前後かな、と思っていましたが、10000行も超える方もいました。
恐らく中〜大規模・製品レベルになるとそのぐらいになってくるのだろうと感じました。
ちなみにスクリプト解析プログラムの行数をカウントした所、約15000行ありました。
次期アップデートで解析内容が増えるためどのぐらい処理時間を要するかで使い勝手が変わってくると思っています。
PC・Macのスペックに依存してしまいますが、予想では1秒以内、物凄いスクリプトの記述量(40000〜50000行)でも1〜2秒程度を見越しています。
ただ、手元に数万行レベルのスクリプトが無いので憶測レベルになってしまいます…。
Sublimeの拡張機能があるのに、なんで作ってるの?
以下、おまけ的な物です。
1: Visual Studio Code の拡張機能を作り方を学びたかった
興味本位で新たな分野に手を出してみよう、面白そう、という理由で始めました。
2:KSPをサポートする Visual Studio Code の拡張機能が無かった
無いなら作れば良い、ということや前述の目的もあり、習作として始めました。
昔から誰もやっていなければ自分がやればいい、という志向があり、今回それが合致した形になります。
あとはコンパイラ作成の復習も兼ねて、というのもありました。
3:Sublimeのダイアログって煩わしいんじゃないかな?
有名どころだと現在
https://github.com/nojanath/SublimeKSP
があります。
でも、1つでもエラーを検知した時点でダイアログが出て、仮にスクリプトにたくさんエラーが紛れてしまった場合、その都度ダイアログが出るのって、スマートじゃないよなーと思いました。(Sublimeの仕様上の問題だとは思います)
公開中のVisual Studio Code 版であれば
- 検出可能なエラー、警告は一気に列挙して状況を把握することが出来ます
- データ型チェックが細かく Sublime 版より精度が高いです
- KONTAKT上で確実にコンパイルエラーになるものを事前に検知できます
- 未使用変数の検知が出来ます(オプション)
- strictモード(重箱の隅を突くモード。オプション)
- 変数・コールバック一覧、及びジャンプ
- 変数が参照している箇所の検索
- 英語と日本語のエラーメッセージに対応
- KONTAKTのバージョンアップで追加されるコマンド、変数に対して機能追加が容易
外部のタブ区切りテキストで管理しているので、極論誰でもメンテナンスが可能
など細かい機能を持っています。
逆に劣っている部分は
- 独自の拡張構文は無い
です。
後は、スクリプト解析は専用の外部プログラムとして作成しているので Visual Studio Code 以外のエディタでも転用が容易ですし、コマンドラインでスタンドアローンのアプリとしても使用できます。
Syntax Parser for KONTAKT Script(KSP)
Visual Studio Code 版は近日中にアップデート予定です。もし使っていただいている方がいれば今しばらくお待ち下さい。