プログラミングを本当に習得したいのであれば、科学技術計算をやった方が良い。
パソコンがいくら高度で便利になったとは言え、プログラミングの基本は数学的な計算である。数学的な計算が出来れば、プログラミングも出来るようになる。
素因数分解のような数学的計算を、C/C++やJavaでやろう。そうすると、どんなプログラムでも、たとえばOpenGLのようなグラフィックでも通用するような基本が身につく。
プログラムを組みたいのであれば、ちょっと難しいかもしれないが、証明を厳密な記法で記述して、その証明が数学的に正しいことをチェックしてくれるようなプログラムを作れば良い。
今のノイマン型コンピュータは、計算をする順番をひとつひとつ逐次的に実行していく。プログラミングは、計算を実行する順番である。ほとんどが順番だけを考えている。それが今のコンピュータの計算だ。
僕は、数学にとても興味があるし、数学をやらないと論理的思考が身につかないことも分かっている。だが、高校の数学はやめた方が良い。
僕は、「カッツ 数学の歴史」から、数学をやりたいと思う。とても厚い本だが、数学の歴史的なことの全貌が分かっている。これなら、高校の数学がなくても、独自の数学ができる。
数学は本来、とても面白くて、特に古代の数学のようなものは、古代人なのにほとんどのことを分かっていて、とても人類の知性の結晶として賢いものだが、学校の数学はつまらない。学校は数学を、問題を言われた通り解いていくだけのつまらない、退屈な作業が延々と続くだけのものにしてしまった。
僕は数学史を中心に数学をやりたい。この分厚い本をいつか読破することが、今の僕の夢である。
数学は、計算をするよりも、じっくりと意味を考えた方が良い。3分の1よりも6分の2の方が大きくなることはないだろうか?単なるイコールで等しさを表現するだけではなく、「4より16の方が12大きい」ことを、マイナスを使って4=16-12のように汚く記述するのではなく、4<(12)=16とか、4<1216のように書けないだろうか?
僕は、数学は書きながら分かるものであると同時に、深く考えることで分かるものである、と思っている。そのためには、学校で機械的な計算をしても、全く目的に沿わないのである。
昔の自分は、数学的に、判断と証明のような文章を書いて、全ての宇宙のことを書くことから簡単に分かっていた。それは、昔、思弁哲学の経験をして、あらゆることを経験と知性を使って分かっていたからであって、頭の中では「最高の文学者」のように場面とシナリオの全てを分かっていた。だから、ブッシュの王からバッハの王へと変わった、などということが書けた。
また、昔は、蓋然性合理主義のような文章を書いていた。蓋然、とは「たぶんそうであると仮定すること」という意味の日本語である。そのように、蓋然的に考えながら、知性をつけ、実験し、推論し、世界を知ることで、デカルトのように「必然的方法のモデル」から分かっていた。本当に、数学のような体系的な推論の力があった。物理的に実験しながら説明していくことを積み重ねることで、社会のことも、心理のことも全てが分かって、世界全体を支配できるような、そういう最高の知性を持っていた。それによって、宇宙の全てを吸収し、融和していた。
もっと物理のこともやりたいと思っている。物理について言えば、「それは確かにそうなるという確かな方法と因果性」のことを「信じながら疑い続ける」ことで分かる部分がある。だが、物理は応用を基本にし、基本を応用にしていく作業である。実験はただの実験ではなく、目的を伴った正しい実験であり、それはその前の実験の結果から生まれ出てくるものである。そして、説明はもっと実験することで、次元を超えた説明へと飛躍していく。そこから、全てのことがなぜあるのか、何は正しくて何が間違っていると言えるのかが見えてくる。そこから先は仏教のような世界である。全ての世界の様相とハイデガーのような現象の存在論が、そこから見えてくる。そこからが、とても面白い哲学の世界である。この世界を見つめることだけで、全ての哲学者の言うことが分かるようになる。
昔は、数学的に考えることで、この世界の中で自然に生まれ出てくる発想、というものがあった。そういう哲学は、デカルトである。デカルトを勉強しても良いだろう。昔から、そのように考えると、近代哲学の全てが分かる。全てが同一で、知性と経験が一致したところに概念があるのが分かる。昔はそういう人間だった。そういうところから出てきたのが、価値観の確立、アイデンティティ、そして宇宙が確かにあるということの実感や、世界は誰でも変えられ得る、という哲学的観念だった。それが賢かっただけだ。
根底にあったのは、「環境は変えられる可能性がある」という真理であり、それは参加することによる個人の力での変革、というものだった。そこからこの世界の全てを実体験で分かっていた。あらゆる全てを自分の経験だけで分かった。そういう哲学者だった。全てが出来るということを経験から知り、環境が変えられるのだと実感し、意識を自在に操って世界を導く。そういう、メシアのような救世主だった。キリストは誰でもこうなる。本当は、神になっているようで、虫歯の病気になっているだけが、イエスである。だから、イエスはどんな病気も治すことができるのだ。
僕は、for文をオブジェクトにすると面白いと思う。たとえば、
loop = new Loop{ print(loop.count); loop.next(); }; loop.run(100);
などとする。とても面白い言語になると思う。