プログラミング環境について


以前は、大学の端末室を使ってプログラムを書くのが一般的だったが、 コロナ以降、 早稲田大学も2024年度からBYOD化を推進している。端末室を廃止し、 各自が自分のノートPCを持参してプログラミング等を行う方向になる。 よって、 自前でプログラミングの環境を整えるスキルを身につける 必要がある。

1. Windows Native

Visual Studio Community 2022を使う

Visual StudioはMicrosoft製のプログラミング用統合環境。 以前はExpress Editionという機能限定版しか使えなかったが、 今はフル機能を無償で使えるようになった。 Visual Studio 2022 コミュニティ エディション – 最新の無料バージョンをダウンロードする にある。

2. Windowsでの疑似unix環境

WSL (Windows Subsystem for Linux) を使う

64bitなWindows10/11のPCを持っているならお勧め。 に入れ方が書いてある。

WSLの中に入れるLinuxの種類は現在はUbuntu 24.04がお勧め。 (Ubuntuは24.04, 24.10, 25.04, ...のように、4月と10月にバージョンアップする。 偶数年の4月に安定版が出ることになっていて、22.04, 24.04, 26.04...が お勧め。)

WSLとWSL2の2種類があり、それぞれ特徴があるが、今ならWSL2がお勧め。

にWSL2インストールの詳細な情報がある。

その他の疑似unix環境

MSYS2というシステムもある。 MSYS2を試してみる に以前使ってみたときの記録がある。

なお、windows,gccみたいなキーワードで検索するとMINGWを勧めるページが いくつかヒットするが、互換性が低くお勧めできない

3. PC-UNIX

PC-UNIXをインストールする

LinuxやFreeBSDなど、PC上で動くUNIX OSがある。 多くは無料で使うことが出来る。

Ubuntu 24.04がお勧め。 Ubuntu 24.04のインストールメモ がある。

Windows OSと共存するためにはハードディスクを分割する必要があるなど 敷居が高いが、使いこなせればとても強い味方となることは間違いない。

PC-UNIXを仮想化ソフトを使ってインストールする

VMwareVirtualBox などのPCのハードウェアをエミュレートする ソフトを用い、その上に「ゲストOS」としてPC-UNIXをインストールする。

個人向けVMware製品であるVMware Workstation Proは、 VMware社がBroadcomに買収されたことにより、無料で使えるようになった。 いろいろ要登録でめんどくさいが、ダウンロードは ここから

VirtualBoxは無料で使える。 また、Windows 10/11のProfessional以上であれば、 Hyper-Vという仮想化ソフトが使える。

ハードディスクを分割するよりはいくらか敷居が低いかもしれない。

4. Mac OS

Macを持っているなら話は簡単である。 BSD UNIXを元にしているので、ターミナルを開けばUNIX環境がそのまま使える。

まず、「command line tools for Xcode」を入れる。ターミナルで、

  xcode-select --install
とすれば、gcc (ただしかなり古い)が使えるようになる。

この授業だけならこの古いgccでも大丈夫だが、本格的にunix環境を整えるには、 更に Homebrew を入れてこちらを使うのが良さそう。

Macは最近CPUがApple Silicon(M1/M2/M3/M4 chip)に変わった。低消費電力かつ高速。 IntelのCPUをエミュレートするためのRosetta 2という仕組みがあるが、 nativeで動いているのかエミュレーションで動いているのかを常に 意識する必要があり、プログラム環境としては少し複雑な印象。

5. クラウド

Replitを使う

Replitで、 ローカルに何もインストールしなくてもブラウザだけでプログラミングの 実習をおこなうことが出来る。

アカウントを作り、 start conding -> Cと進み、"Create Repl"すれば、 ターミナルが開いてプログラミングができる。 ファイルのロード、セーブも可能。

URLを覚えておけば(ファイルが消えずに)作業の続きが出来るようにも見えるが、 いつ消えるか分からないのできちんとファイルを手元に保存することをお勧めする。

COCALCを使う

COCALCにある。 Replitと似たようなシステム。
プログラミング環境について /