プログラミングはブロックづくりと同じです。ブロックをいくつも組み合わせることでプログラムを作っていきます。
例をあげると、「車」を作るために、ハンドルとかタイヤとかエンジンとかのパーツをブロックとして組み合わせて作っていくイメージです。そして、出来上がった「車」も、また一つの大きなブロックなのです。
ここで、この「車」というブロックをAさんが作ったとします。
次に、Bさんが「トラック」を作るとします。ここでBさんは「トラック」を一から作ることも出来ますが、さきほどAさんが作った「車」というブロックをベースに作っていくと、一から作るよりも安全かつ効率的に作ることができます。
なぜなら、「トラック」も「車」の一種であり、車としての機能(走る・曲がる・止まる)は備えているからです。ですから、「車」という既にあるブロックをベースにして、あとはトラックとして足りない機能を付け加えれば、一から作るよりもよっぽど安全かつ効率的に作ることができるのです。
しかし、BさんはAさんと知り合いでも何でもありません。そんなBさんは、Aさんが作ったブロックを勝手に使ってもいいのでしょうか。
実は、Androidアプリを作るためのプログラミング言語であるJavaの世界では、これが許されるのです。つまり、他人が作った「ブロック」を勝手に使って、新しい「ブロック」を作っていいのです。これを専門用語で「継承」と言ったりします。
これはよく考えたらすごいことです。最近は著作権やらなにやらうるさい時代になっていますが、JavaやKotlinの世界ではそんなことはありません。むしろ他人のアイデアを積極的に使うことによって、新たな知を生み出すことを重視しているのです。
つまり、大げさな言い方をすれば、現代社会とは真逆の「無償の助け合いの精神」でプログラミングというのは成り立っているのです。
さらに、そもそも、0と1しか読めないコンピューターに対して、英語とは言え、人間のわかる言葉で命令を出来るようにした「プログラミング言語」と作った人たちというのは、プログラミングができることよりもよっぽどすごいわけなのです。
このプログラミングの世界観がリアルな世界にも浸透すれば、世の中はもっと住みやすくなるかもしれないなと考えさせられます。