コンピューター科学
2016年10月02日
オブジェクト指向の本質は「ブラックボックスの利点の応用」というところにある。
「オブジェクト」という単位を作り、それを「カプセル化」することによって、オブジェクトの中身を見えなくする=意識できなくすることで、オブジェクト内で完結するようにプログラムを作る。
これによってプログラマーは、プログラム全体で矛盾がないように常に全体に気を配る必要が無くなり、プログラムをシンプルにすることができるようになる。
つまり、オブジェクト内を完結させることと、オブジェクト間のやりとり、という二点についてだけを考えればよくなる、ということだ。
言い換えれば、オブジェクト指向以前のプログラミングでは、「全知全能」の視点が必要だったことに対し、オブジェクト指向では、ひとつひとつのオブジェクトを完結させることとそれらをつなげることに集中できる、ということである。
続きを読む
「オブジェクト」という単位を作り、それを「カプセル化」することによって、オブジェクトの中身を見えなくする=意識できなくすることで、オブジェクト内で完結するようにプログラムを作る。
これによってプログラマーは、プログラム全体で矛盾がないように常に全体に気を配る必要が無くなり、プログラムをシンプルにすることができるようになる。
つまり、オブジェクト内を完結させることと、オブジェクト間のやりとり、という二点についてだけを考えればよくなる、ということだ。
言い換えれば、オブジェクト指向以前のプログラミングでは、「全知全能」の視点が必要だったことに対し、オブジェクト指向では、ひとつひとつのオブジェクトを完結させることとそれらをつなげることに集中できる、ということである。
続きを読む
myinnerasia at 11:25|Permalink│Comments(0)
2016年09月30日
2016年09月22日
「スクリプトとアドリブ」について書いた後で、「スクリプト言語」と続いた流れから、今度は「アドリブ言語」について書く、ということになる。(はぁ?)
「アドリブ言語」というものはない。
プログラム言語というものは、プログラマーが意図したことをプログラムに書き、そのプログラムに忠実に処理をするものである。たとえばそれがゲームで、「サイコロを振る」という要素があったとしても、そこで「1から6のデタラメな数字を出力」というプログラマーの指示に忠実に従って処理がされる。
ここで、存在しない「アドリブ言語」というものを妄想してみよう。
続きを読む
「アドリブ言語」というものはない。
プログラム言語というものは、プログラマーが意図したことをプログラムに書き、そのプログラムに忠実に処理をするものである。たとえばそれがゲームで、「サイコロを振る」という要素があったとしても、そこで「1から6のデタラメな数字を出力」というプログラマーの指示に忠実に従って処理がされる。
ここで、存在しない「アドリブ言語」というものを妄想してみよう。
続きを読む
myinnerasia at 10:06|Permalink│Comments(0)
2016年09月21日
「アドリブ」について書くために、「スクリプト」という言葉を使ったが、プログラマーにとって「スクリプト」という言葉からは、「スクリプト言語」という言葉が最も連想しやすいものである。
自意識の高いプログラマーは、「スクリプト言語」というものをどこかで軽視しているふしがある。僕もそうだ。
つい先日、僕が仕事で作ったプログラムを、プログラマーではない人から、「あのスクリプト、ここでも応用できませんかね?」というようなことを言われ、内心ムッとした。
本人はまったく悪気がないのは分かっているのだが、しっかりとオブジェクト指向設計をして、排他処理(*1) もしっかりやって、メモリをできるだけ節約する設計にし、高速に処理するアルゴリズムをじっくり考えて作ったものを「スクリプト」と呼ばれると、なんだかゲンナリしてしまう。
自意識高い系のプログラマーが皆持っているであろうこの、「スクリプト言語」への変な感覚は何なんだろう?
*1 排他処理: 複数のプログラムが同じものを同時に変更しようとしておかしなことになるのを避ける処理。 続きを読む
自意識の高いプログラマーは、「スクリプト言語」というものをどこかで軽視しているふしがある。僕もそうだ。
つい先日、僕が仕事で作ったプログラムを、プログラマーではない人から、「あのスクリプト、ここでも応用できませんかね?」というようなことを言われ、内心ムッとした。
本人はまったく悪気がないのは分かっているのだが、しっかりとオブジェクト指向設計をして、排他処理(*1) もしっかりやって、メモリをできるだけ節約する設計にし、高速に処理するアルゴリズムをじっくり考えて作ったものを「スクリプト」と呼ばれると、なんだかゲンナリしてしまう。
自意識高い系のプログラマーが皆持っているであろうこの、「スクリプト言語」への変な感覚は何なんだろう?
*1 排他処理: 複数のプログラムが同じものを同時に変更しようとしておかしなことになるのを避ける処理。 続きを読む
myinnerasia at 08:09|Permalink│Comments(0)
2016年09月02日
引き続き教育について思うところを好きなように書いてみる。
最近よく「プログラミングを義務教育で教えるようになった」と聞くが、それは本当かね?
僕は子供がいないので、最近の教育事情についてまったく知らない。
小学校の授業でプログラミングを教えているのだろうか?
僕はRaspberry Piを持っている。これはクレジットカードサイズのコンピューターで、OSにはLinuxが載っている。
もともとRaspberry Piは教育用ということなのだが、もしかしたら義務教育ではLinuxとプログラミングを教えるということか?
続きを読む
最近よく「プログラミングを義務教育で教えるようになった」と聞くが、それは本当かね?
僕は子供がいないので、最近の教育事情についてまったく知らない。
小学校の授業でプログラミングを教えているのだろうか?
僕はRaspberry Piを持っている。これはクレジットカードサイズのコンピューターで、OSにはLinuxが載っている。
もともとRaspberry Piは教育用ということなのだが、もしかしたら義務教育ではLinuxとプログラミングを教えるということか?
myinnerasia at 08:04|Permalink│Comments(0)