https://zenn.dev/ko1/articles/35c142cc7034e7

はじめに

物事を上達するためには反復を、というのはよく聞きますが、もちろんプログラミングでも大事なのかと思います。とくに自分は「一を聞いて十を知る」ような器用なことはできないので、何度も何度もプログラムを書いて、試していました。

このような反復を支援するためには、できるかぎり「書き始めるコスト」と「実行して確認するコスト」は低い方がいいと思っています。書き始めるのがだるいと、そもそも「ちょっと書いてみようかな」となかなか思わないですし、実行するための手数が多いと、「書いて→結果を確認」の回数が減ります。

本稿では、この「書き始めるコスト」と「実行して確認するコスト」を下げる私が20年くらい行っている工夫についてご紹介します。

筆者が Ruby が好きなので、Ruby の例が多いですが、別に Ruby に限った話ではありません。

プログラミング言語による違い

たとえば、C 言語ですと、プログラムを実行するために

#include <stdio.h>
int main(int argc, char *argv){
  printf("hello");
}

のように書かないといけなくて、ちょっとだけ距離があります。もちろん、テンプレートを用意したり、エディタのスニペット入力機能を有効活用する、といった工夫があり得ます。

Ruby などの言語では、

とだけ書いておけば、同じようなプログラムが書けるので、精神的に楽です。

この特性は、

という点から来ています。この点は利点になることもあれば、ある種の制約になるなど、欠点になることもあります。ただ、「プログラムを書き始める」というコストを下げる効果はあると思います。

一般的な実行方法

書いたプログラムを実行するには、たとえば Ruby ですと、ruby t.rb のようにコマンドを端末で入力し実行するのが一般的です。

IDE、例えば VSCode なら F5 キーを押せば IDE 中にある端末で(デバッガつきで)実行する、というのができます。結果もその場で見ることができます。ただ、デバッガ付きなのでちょっともたつきます。