ハルオノート

ちらうら。技術系だけど草稿だから信頼性はないよ。よろしくね。

ブログはじめる

twitterで好き勝手なことを言ってるけど、まとまった情報ないの?って自分も思うし、周りが思っているかは知らないけど、Qiitaにはある程度確度のある情報を載せておきたいし、あくまで草稿的な意味合いでブログを書いてみようかと。はたしてはてなの使い方がそれで正しいのかは知らないけどとりあえず始める感じです。

ジュリア・キャメロンのモーニングページというのがある。で、自分には秘密などありはしないのでちらうらを堂々と公開してしまうわけです。ナポレオン・ヒルは成功したければ秘密は秘密のままにしておきなさいと言っていたわけですが、私はビジネス的な成功を望んでいるわけではなく、ハックがしたい。私はソフトウェア・エンジニアではないので、幸いにも業務に関する縛りがなく、自由にGitHubソースコードをプッシュすることができるわけです。これをただの負け犬だというのは結構なのですが、私はとても意義深いことだと思っています。

私ははてなを2016年に使っていたらしいのですが、どう使っていたのかは把握しておらず、多分アフィリエイトを行うためだったと思うのですが、アフィリエイトをやるつもりはないです。というのも、アフィリエイトをやるには才能が必要で、時間も必要だし、秘密も抱えてしまうのでそれあほくさいなと思ったわけなのです。というか世の中の役に立ってないwww

最近はKuin言語のほうでプルリクエストを送らせていただいております。Kuinは非常に小規模ですがWindowsプラットフォームでは使いやすい言語だと思います。ただ、やっぱり自分はLispが気になっていて、Haskellをかじってみたけど大した悟りは開けなかったし、Common Lispでなにかやってみたい。

というのも、Nimという言語が気になっているのですが、Nimは正直使いづらい。アップデートが頻繁に行われるし、Windowsメインではないし(Andreas RumpfはWindowsを使用しているがNimからMSVCのソースコードを生成するというアイディアはなかったのだろうか)、なにか自分がキャッチアップできていない部分があるのかもしれないが昨日Nimをインストールしてみて、nimbleで一つパッケージを落としてこようとしてもgccがないからダメって言われちゃう感じで、なかなか一発ポンで行かない。

Windows開発を行うのであればWindows SDKは持っておきたいところではあるが最新のWindows SDKは2GBのボリュームらしい。かなりふざけている。Windows SDKにはcl.exeが同梱されておらず、cl.exeが欲しければやはりVisual Studioをインストールしなければならないのだ。cl.exeはclangに代替できるようなのであるが、clangはLLVMと分離されていないのでインストールすると1GBほどのボリュームがある。

それではVisual Studioで開発すればいいではないかという話になるわけだが、MSVCには関数型とマクロの機能はないわけである。てか入れるな。入れるとコンパイル時間が増えるからやめろ。自分はMSVC互換のトランスパイラを作りたくて、しかもインタプリタコンパイラを両方完備してあるやつがいい。だけどそれは新しい言語を開発するということではなくて既存の言語のライブラリとして提供するのでなければ工数がかかりすぎてとても一人では開発することはできないだろう。

さて、今IronSchemeとIronPythonが頭をよぎった。Pythonはラッパーを書くには定評のある言語だ。関数型でもある。しかしIronPythonは触ったことがないので正直分からないのだ。使い勝手が。それではNimの代わりにIronPythonを使ってもいいようには思う。Pythonにはインタプリタがあり、IronPython.net Frameworkで動作するのでネイティブDLLの呼び出しも容易だ。IronSchemeはIronPythonよりも魅力的だ。SchemePythonよりもインタプリタの使い勝手がいい。しかしLisp方言というのは文法的くさやを持っていてとても人様に勧められるようなものではない。IronJSというのがあればいいのだが、なるほど、JavaScriptであればLisp方言的なくさやはないし、Schemeよりもインタプリタが充実している。

いやいや、SBCLでMSVCトランスパイラを書いてみようかと思っていたのだが、正直文字コードの問題があってなかなかリスキーなのかなとかは思っていたのだ。F#でトランスパイラを書くという手もある。F#最近元気ないけど。てかWindows界隈が元気ない。Microsoftの迷走のせいだろうか。いや、Microsoftは成功しているほうだと思う。思い切ってRustを使うという手もあるのだ。Rustか。Rustってインタプリタあったんだっけ?なければ作ればいいだけかもしれないけど。

Kuin言語はWindowsプログラミングの可能性を再認識させてくれた言語である。とはいえKuin言語自体は貧弱である。パッケージ管理システムはないし、そもそもインポート機能が充実していない。RacketはKuinよりは優れている。RacketにMSVCのトランスパイラを書かせてもいいのかもしれない。一応Racketにはそれなりのインポート機能とFFIがある。結論、Racketでトランスパイラを作成する。まじか。MSVCのソースコードエンコードってなんだっけ。UTF-16S-JISらしい。UTF-8UTF-16の変換くらいなんとかなるだろう。

とはいえ年内は着手できないと思う。Kuinのdraw2dライブラリ(私はこれをdcライブラリと呼んでいたのだが、くいなちゃんがつけた正式名はdraw2d)を満足する水準まで高めなければならない。Kuinを使っている人は意外に多い。200人くらいはいるのではないだろうか。Kuin言語ってある意味アノニマス言語なのだが、何か知らないけどいろいろ充実してきている。使いづらい言語なのに。Kuinのバイナリパッケージは8MBになってた。8MBなのに落とすのに何分かかかった。これはちょっと問題かもしれないぞ?別にいいのだけど。Kuinのいいところはくいなちゃんが100%言語とライブラリを把握しているところだ。整合性はとれている。

てか今の主流はWeb開発なのに自分はなにやってんだかという感じである。