環境を構築しよう

概要

 プログラミング初学者にとって一番最初の壁は難解な文法でも意味不明なエラー文でもありません。環境構築です。本記事ではどうやって環境を整えるのか、それを調べる方法についてサクッと解説します。環境構築の記事はいっぱいあるのですが、初学者はどのようにプログラムが動く/生成されるのか想像がつかないかと思います。それゆえ、環境というものもどうやって作ればいいのかわからないかと思います。本記事は「環境」というものが意味するもの、およびその準備の仕方を調べる方法について解説します。

料理のために最初に必要な物は包丁の扱い方よりも包丁そのもの

 プログラミングを始めようと思った際に、「そういえばプログラムってどうやって作るんだ?」と思ったかもしれません。プログラムを使うことはあっても、それが作られる様子は考えにくいですよね。リチウムイオンバッテリーをよく使っているけど、その製造に禁水雰囲気が必要なことが想像つかないことと同じです。

 「環境」とは、プログラムをする上で必要な、あるいはあると便利な「場」と「道具」のセットです。どのようなプログラミング言語でも、「こうしたらプログラムを作れる」、「このような補助機能があればプログラムを作り易い」という、一種の「場」や「道具」があります。料理で例えれば、台所と調理道具です。大抵の料理では流し、コンロ、まな板、包丁、鍋やフライパンなどが必要でしょう。その他、必要ではないけども、ピーラーやスライサーがあるとなお便利ですよね。それらが整った場所を台所と呼ぶかと思います。プログラミングにとってはそれらが整ったものを「開発環境」というのですが、短く「環境」と呼ぶことが多いです。

 しかしこの環境づくりが煩雑かつ「初めてのこと」が連続するものになっています。それゆえ、初学者にとっての最初の壁としてはだかり、モチベーションを大きくそぎ落とします。今回は環境構築がプログラミングご新規さんの忌避感にならないよう、どのように環境構築を行えばいいのか解説します。

環境の概要

 環境とだけ言われてもさすがにピンとこないと思うので、どのようなものを環境というのかを最初に概説します。どのような言語でも最低限必要となるのは(たぶん)2つです。「テキストエディタ」と「コンパイラ」または「インタープリタ」です。あるいは、それらをひとまとめにした「総合開発環境」(integrated development environment; IDE)というのもあります。

 「テキストエディタ」はその名の通り、テキスト(文字列)を編集するためのソフトウェアのことです。Windows標準のメモ帳もその一つです。しかし一般にはプログラミングに特化したテキストエディタを使います。近年はVScodeというソフトウェアが紹介されていることが多いでしょう。

 「コンパイラ」と「インタープリタ」は人間が書いたソースコードを機械語に翻訳するプログラムのことです。両者には実行されるタイミングが違いますが、それは今は詳細を省きます[1]。これは言語によって異なります。PythonではPythonインタープリタが必要です。

 その他の必須でないけどあると便利なツールとして、例えばテキストエディタの拡張機能があります。ソースコードはただの英数字と記号の集まりなので、何がどのような機能を果たしているのかが分からなくなる時もあります。そのため、ソースコードを分析して、文字や記号の色を自動で変えてくれる機能があったりします。

筆者のPCにあった適当なソースコード(VScode; TypeScript)。役割に応じて色が違う。例えば、実行されないメモ書きは深緑色、言語特有のキーワードは青色、変数の種類はシアン色になっている。また、かっこも色分けされて対応が見やすくなっている。なくてもコードはかけるけどあると便利。

環境の作り方の調べ方

 ここでは個別で環境構築の作り方は説明しませんが、その作り方を調べる方法について述べます。ただし注意してほしいのは、最初から最後まで一つの解説に従うことです。環境は道具と場の「セット」ですから、ちぐはぐに組み合わせると機能しなくなることがあります。それゆえ、どれが自分の環境に合っているか調べてから構築を始める必要があります。「なんか複雑になっちゃったから、別の方法にしようかな……」と思っても、途中まで構築された環境が新しくインストールしようとしたソフトウェアに干渉してしまうことがあります。例えば、筆者のPCにはバージョンの違うPowershellがあり、微妙に干渉して新しいバージョンのPowershellが起動できません(直そうと思えば直せるのですが、めんどいので放置しています)。また、何かの指南本を読んでいるのであれば、その中に環境構築の方法が乗っているはずなのでそれに従ってください。

 とりあえずやることは、「(使いたい言語) 環境構築」でGoogle検索することです。いろんなサイトが出てきます。

とりあえず、その中から何個か見ていってください。それぞれ構築される環境が微妙に違います。Pythonの開発環境でよく見るのはVScode+Pythonインタープリタの組み合わせの必要最小限の方法とJupyter Notebookという総合開発環境などです。ぱっと見どれが一番いいのか見当がつかないのではないでしょうか。そこで「(言語) 環境 比較」「(言語) 環境 お勧め」といったキーワード検索などで自分に良い環境を探します。

最初は「できる」が優先

 正直環境はなんでもいいのですが、構築の容易さにだけは気を配って下さい。どんなに便利な環境でも構築でつまずき、起動できなくなったら使われる機会はなくなるでしょう。それゆえ、環境の構築方法を一通り読んで、「自分でもできそうだな」と思うことが一番大事です。

 例えばPythonの環境構築で(筆者基準で)一番簡単なのはVScodeとPythonインタープリタをインストールする、必要最小限のスタイルです。これはプログラミング学習サイトprogate様[2]でも紹介されています[3]。特段便利機能があるわけではありませんが、すぐ環境を整えられるというのは利点です。その他、筆者にはPythonのIDEとしてSpyder[4]というのを使っている人もいます。「起動が重いけど、実行と出力の確認が容易」とのことです(筆者は使っていないので伝聞です)。他にもC++ならVisual Studio、RustならVScode + Rustコンパイラなど、というように、言語によって様々な環境があります。

環境構築ができたか確認

 一通り構築し終えたと思ったら、きちんとそれが実行されるかどうか確認しましょう。よく使われる超初歩的なプログラムとして"Hello world!"と出力されるプログラムを使ってその通りになっているかを確認します。Pythonであれば、新しくソースコード(.pyファイル; 例えば、ここではhello_world.pyとします)に以下のように記述します。

print("Hello world")

次にhello_world.pyがあるフォルダをエクスプローラで開き、そこでPowershellを起動します(Windows 11なら右クリック→ターミナルで開くでそれが可能です)。それをコマンドプロンプトかPowershellなどのプログラムで以下のようにコマンドを打ちこみ、実行します。

python hello_world.py

これで画面上に"Hello world"と表示されれば環境がきちんと構築されていることが分かります。されなければ何かしら環境が整っていないところがあるか、ソースコードのパス(場所と名前)が間違えている可能性があります[5]。特に「環境変数」辺りは見落としやすいかと推察します。自分の読んだサイト・本を見直し、自分がすべての手順を踏んでいたかを確認しましょう。どうしてもわからなければ、すべてアンインストールしてもう一回やりなおしてみましょう。

まとめ

  • 「環境」とはプログラミングをするための「場」と「道具」のセット

  • 環境はいろんな種類があるので好きなのを使ってよい。ただし、構築が簡単でなければ、環境構築で挫折する。

  • 一つの指南(サイトまたは本)をずっと参照すること。途中で変えない。

  • 最後にhello worldをやってみて、起動できればOK。できなくても、最初からきれいにやり直せばいい。

引用・脚注

  1. コンパイラは予めソースコードを機械語に直してプログラムにして、後でそのプログラムを実行します。このような言語にはC/C++やFortranなどがあります。インタープリタはソースコードを逐次翻訳しながら実行します。このような言語はPythonやPHPがあります。また、その中間の言語としてJavaや、コンパイルの結果インタープリタ言語になるTypeScriptのような言語もあります。

  2. https://prog-8.com/

  3. https://prog-8.com/docs/python-env-win; 2023年3月6日閲覧

  4. https://www.spyder-ide.org/

  5. Pythonであれば、コマンドに以下のように打ち込んでみます。実行できたのであれば、「Pythonは動いているけど、ファイルのパスがうまく入力されていない」という状況となっています。hello_world.pyがあるフォルダでPowershellを起動してください。

python (ここで一度エンターを押す。改行されて左端に>>>が表示される。)
>>> print("Hello world")


いいなと思ったら応援しよう!