Windowsで開発環境(考察編)

ひと昔前はアプリのインストーラをサイトからダウンロードして入れるか、Cygwinとかだけだったと思うんだけど、最近はWSLとかでLinuxの仮想環境を作成できるようだ。
久しぶりにWindowsを使うことになったので、ちょっと調べてみてまとめてみる。

Microsoft Store

Microsoft謹製アプリストア。
いちいちサイトに行ってダウンロードしてインストールしなくていいので楽チン。

あまり開発環境はなさそう。
PythonとかはあるけどApacheとかNode.jsとかは無い。
さすがにVScodeはあった。

インストーラー

サイトからインストーラをダウンロードしてインストールする。
Program Filesにインストールされる。(管理者権限が必要。変更もできる?)

大体の開発環境はWindwos版も提供してくれている。

Cygwin

昔はUnix系のアプリをWindowsで動かすのには必須で使ってたけど、最近はCygwinに依存しなくてもいいようになってきていてあまり使われていないのかな。

ググってみても昔の記事しか引っかからない。

エセLinuxではいモノホンのLinuxが動くようになってるしね。

WSL2

Linux用Windowsサブシステム(あってるのか?この訳)
仮想環境にLinux(Ubuntu)がインストールされて動いてる、と認識している。

Ubuntuのaptパッケージ管理でインストールできる。もはやWindowsではなくLinuxとして扱える。
が、、仮想環境として動くので結構メモリを食うそうだ。16GBの会社支給のPCでは辛そう。
WSL上でDockerを動かすなんてメモリいくらくらい必要なのか。

しかし、MicrosoftがLinuxを動作するようにサポートするとはね。

パッケージ管理

これが本命。MacでのHomebrewみたいなもの。
コマンドラインで各アプリをインストールします。
Microsoft謹製のwinget、Chocolate、最近はScoopだとか。

Scoopはユーザディレクトリにインストールされるので管理者権限が不要らしいし流行ってそうなので使ってみたい。

バージョン管理

プログラミング言語などをバージョンを指定してインストールしたり、切り替えたりする。
バージョンが違うと動作が変わるものもあるのでプロジェクト(ディレクトリ)毎に指定できると都合がいい。

各プログラム言語ごとの*env、それらをまとめてラッパーしたanyenv。(Macではanyenvを使ってた)
最近はasdfというのがよさそう。

追記

asdfはWindowsネイティブ(WSLではない)では使えないことが分かった。
vfoxというWindowsでも動く互換プログラムもあったが、それぞれの言語のバージョン管理を使うことにした。

開発環境の遷移

私が思ってる開発環境の遷移

  • 各プログラムのソースをダウンロードしてmakeしてinstallして利用する
  • 各OS用にパッケージが用意されてパッケージマネージャにてインストールする
  • 1つの環境でバージョンを切り替えられるようにバージョン管理が利用される
  • プロジェクト毎に仮想環境を作成してバージョンを指定してインストールするようになる
  • 仮想環境はやっぱり重いし面倒なのでローカルPCでバージョン管理するようになる
  • ローカルPCでバージョン管理できる良いツールが揃ってきた <=イマココ

まとめ

ということで、、Windowsでの開発環境は下記のようにしよと思います。

  • WindowsアプリなどはStoreやインストーラをダウンロードしてインストールする
  • Scoopで開発用アプリをインストールする
  • asdfでバージョンを指定したいものをインストールする
    Windowsのネイティブでは使えなかった。それぞれの言語のバージョン管理を入れる。
  • 各プロジェクト毎に利用するバージョンを指定する

それぞれ実施したらまとめて記事にしていきます。

コメント