Mac JavaScript

mac ではスクリプトは何を使おう?

筆者が主に Python を使っているのは Linux だったから。
書くまでもなく PyGObject という究極便利なものがあったから。
Linux なんてアップデートマネージャや dnf が Python 製。

使う言語はフレームワークやライブラリで決まる。
簡易な CMS ツールなら wordpress ベースなので PHP に。
スマホゲームなら Unity 一択に近いので C# に。

Mac で Python はどう考えたって役立たずだよなぁ。
Apple スクリプトを覚えても他で応用が効かないのが痛い。
ならば JavaScript なんてどうだ?

なんたって上記のドレも JavaScript が絡む。
今や GNOME デフォルトアプリでさえ Gjs 製がある。
Unity(mono) は JavaScript も使える、というように。
mac でも Gjs のようなものがあれば便利だけど。

知らないうちにMacがシステム標準でJavaScriptで操作できるようになってた (JXA) – Qiita

って思っていたら Yosemite なら普通に使えるんかい!

早速 .bashrc にエイリアスを用意しよう、mjs でいいかな。
どうでもいいけど mac には標準で nano が入っている。
ドットファイルの編集をする場合なんかに便利だね。

nano

PS1='[\u@\h \W]$ '

mjs()
{
        if [ $# -eq 0 ]; then
                osascript -l JavaScript -i
        else
                osascript -l JavaScript $@
        fi
}

普通にエイリアスを登録でもいいけど筆者は関数にした。
これなら Gjs や Python 同様に引数の有無でインタラクティブシェルに。
同じようにしたい人は関数名をお好みで変更してね。

再ログインで使えるようになったのを確認してと。
control+D で終了できるけど終了時に改行はしてくれないようだ。
さて、Gjs 並には使えるのかな?

mac_js

let は無理か、まあ Safari でも使えないからね。
JavaScript エンジンは Safari と同じ Nitro だろうし。
でも Gjs のようにタプルは問題なく使えるようです。
SpiderMonky に統一ってわけにはいかないよな。

標準出力は console.log() を使えば可能。
print() を用意してほしいな、手段を知らないだけかもだが。

さて言語は使えることが解ったので GUI を作る方法でも。

OS X YosemiteからJSでMacアプリを作れるようになったって!?と聞いてみたものの | mah365

こんなのを見つけたけど osascript では動かないや。
スクリプトエディタ.app で command+R の必要がある。
うーん、これじゃたいして役に立たないぞ。

何か手段があるのだろうけど検索しても出てこない。
そりゃこんな Mac らしくないことがしたい人は少ないよNE。
もう少し調べる。