最近思った話し。
プログラミングには、事前に整えておかなければいけないものがあります。
コンパイル言語であったらコンパイラやその動作のための環境、インタプリタ言語ならインタプリタ。そしてコードエディタ。
最近では高度な処理をライブラリに任せることも多くなったため、必要に応じてライブラリも揃えなければいけません。それらの環境を整えるのってだいぶ面倒くさい。
ただ、それらの設定を行っているうちに、最近表題のようなことを考えるようになってきています。
なぜそう思ったか
たとえばPython。
WindowsにはPythonの実行環境こそ入ってはいませんが、公式サイトから簡単にインストールすることができますし、最近ではWindowsストアでの配布もはじまっています。
そして、CGライブラリであるOpenCVをPythonで使うためのモジュール、OpenCV-Python
こちらも、見た限り一行だけでインストールが終わるのは、Windowsだけ。
最近、インストールの準備に関するコードを見ると、Windowsが一番シンプル というケースをぼちぼち見るようになってきたように思います。
Windowsではすぐにプログラミングはできないけれど・・・
Windowsには最初から使えるプログラミング環境が、バッチファイルとWindows Scripting Hostくらいしかありません。
最近になってPowerShellとC#、VB.NETが追加されましたが、それくらい*1。
結局、ちゃんとプログラミングができて、実行ファイルまで作れるような環境はそんなに存在しません。
ただ、逆に、最初は余計なものが入っていないので、環境を構築しようとしたら比較的すんなり構築できる。
たとえばMacの場合だと、最初から入っているPython2を削除する というところからはじめないといけないときもあり、面倒くさい*2。
そのへん、元からなにも入っていないからこそ、逆にシンプルに片がつくというのが、Windowsだな ということを最近感じています。
それでもインストールが難しいものはあるけど
それでもインストールが面倒くさいといわれているツールはいっぱいあります。自分が最近使ったツールの中では、Pandocとか、Dockerとか。
ただ、これについて、Windowsには最近、Chocolateyというツールもあります。
これはざっくりいうとWindows版のapt-getのようなもので、管理者コンソールでchoco install ***
というコマンドを叩けば、それだけで簡単にアプリをインストールできる。
この中には、PandocやDockerなどのツールも含まれているため、インストールはとても簡単。
PandocでPDFを生成するために必要なLaTeXはChocolateyからはインストールできませんが、Chocolateyからインストールできるwkhtmltopdfというツールを使えば、PDFを生成することも可能。
さらに、ChocolateyGUIを入れればインストールしたアプリの一覧を生成することも。
これを使うことで、新しい環境へのソフトウェア自動インストールも可能になります*3。
プログラミング「以外の」情報の豊富さ
そして、プログラミング以外の情報が豊富であるということもあります。
Macは実際、プログラミングには向いているのかもしれませんが、ユーザーが少ないぶん、どうしても一般的な利用に関する情報が不足しがち。最低限情報を自分で判断して処理するスキルが必要になります。
とくにMacはあくまでUNIXベースですから、本来Macが得意な(デザイン分野などの)範囲を少しでも抜けると、剥き出しのUNIXが待っています。上級者にとってはそれはいいことなのかもしれませんが、初心者にとってそれはとても難しいことだと思います。
プログラミング以外のことに変に煩わされないこと。それは現状、Windowsが最も煩わされにくいのではないかなと。
今はDockerやWSL(Windows Subsystem for Linux)もあるし
それに今は、DockerやWindows Subsystem for Linuxにより、容易にLinuxなどの開発向け環境を構築することも可能です。もし、どうしてもそれらの環境が必要になったら、Windowsならあとでいくらでも追加できる。
案外Windowsにあると昔言われていた、「プログラミングをしづらい要素」は無くなっていたりする。
だからこそ今はWindowsなのかなあ と、最近思います。