高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

今プログラミングをはじめるなら、Windowsがいいかもしれない

最近思った話し。

プログラミングには、事前に整えておかなければいけないものがあります。

コンパイル言語であったらコンパイラやその動作のための環境、インタプリタ言語ならインタプリタ。そしてコードエディタ。

最近では高度な処理をライブラリに任せることも多くなったため、必要に応じてライブラリも揃えなければいけません。それらの環境を整えるのってだいぶ面倒くさい。

ただ、それらの設定を行っているうちに、最近表題のようなことを考えるようになってきています。

なぜそう思ったか

たとえばPython

WindowsにはPythonの実行環境こそ入ってはいませんが、公式サイトから簡単にインストールすることができますし、最近ではWindowsストアでの配布もはじまっています。

www.microsoft.com

そして、CGライブラリであるOpenCVPythonで使うためのモジュール、OpenCV-Python

news.mynavi.jp

こちらも、見た限り一行だけでインストールが終わるのは、Windowsだけ。

最近、インストールの準備に関するコードを見ると、Windowsが一番シンプル というケースをぼちぼち見るようになってきたように思います。

Windowsではすぐにプログラミングはできないけれど・・・

Windowsには最初から使えるプログラミング環境が、バッチファイルとWindows Scripting Hostくらいしかありません。

最近になってPowerShellC#VB.NETが追加されましたが、それくらい*1

結局、ちゃんとプログラミングができて、実行ファイルまで作れるような環境はそんなに存在しません。

ただ、逆に、最初は余計なものが入っていないので、環境を構築しようとしたら比較的すんなり構築できる。

たとえばMacの場合だと、最初から入っているPython2を削除する というところからはじめないといけないときもあり、面倒くさい*2

そのへん、元からなにも入っていないからこそ、逆にシンプルに片がつくというのが、Windowsだな ということを最近感じています。

それでもインストールが難しいものはあるけど

それでもインストールが面倒くさいといわれているツールはいっぱいあります。自分が最近使ったツールの中では、Pandocとか、Dockerとか。

pandoc.org

www.docker.com

ただ、これについて、Windowsには最近、Chocolateyというツールもあります。

chocolatey.org

これはざっくりいうと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なのかなあ と、最近思います。

*1:そもそも開発環境と言えるようなものがないため、C#VB.NETでまともにプログラミングするのは、けっこうキツい

*2:自分が持っているPCの話しならそれでも良いんですが、他の人が持ってるPCの環境構築となると、けっこう面倒くさかったりします

*3:これにより、我が家ではPCを初期化後、実作業時間1時間(夜間運転時間を除く)程度でPCを再セットアップすることが可能です