(start: http://twitter.com/myun2/status/9460747194)
所詮は彼もC++0xを理解できなかった人間の一人、という訳か…。 RT @isoparametric: この人、凄いかわいそう……ってなりました RT @sscrisk: この人がちょっとかわいそうに思えてきた。 http://tinyurl.com/ykuh3yd
と言うかまぁ、C++0xを本当の意味で理解出来ている人がどれ程いるのか、って言う感じだけど。かく言う自分自身も、多分30%も理解していない。
いや、20も怪しいかな・・・そんな感じ。そもそもC++の全てですら理解し切っていないのに、C++0xの全てを理解できる訳が無い。
これから話す事は、C++0xの20%も理解していないような人間の意見として聞いてもらうなり、聞き流すなりして欲しい訳なんだけれど、確かに、エンタープライズ開発としては向いていないとは思う。
しかし、エンタープライズ向けでなければ「意味が無い」のかと言えば果たしてそうなのだろうか?ウチはそうではないと考えている。
例えば最近では「関数型プログラミング」と言うのが出てきた訳で、Microsoftも「F#」と言うのを出してきた。しかしはっきり言って、エンタープライズ開発にすぐさま使えるのかと言えば、全く持ってそうではないと考える。
だって、「それを使える人間が全然居ない」。まぁ、単純な話。
しかし「その言語を使える人間が居ない」から、と言って、新しい言語を生み出さなかったら……どういう事になるだろうか……?
もうここまで話せばほぼ結論。新しい言語を生み出さなかったら、いつまでも私たちはC/C++を使っているだろうし、人によってはJava、Perl、PHP、Python、Ruby…であろう。確かに、それらの言語も少しずつ日々進歩はしているだろうが、
10年後も、20年後もそのままで良いとは・・・思うだろうか・・・?「良い」と思うかも知れないし、確かにそれくらいじゃ新たなる言語へのパラダイムシフトは起こらないかも知れない。
しかし考えてみて欲しい、もし過去、そのような進歩がなく、今もまだプログラミング言語の王座としてCOBOLなんかが君臨していたとしたら・・・。もっと言えばアセンブリ言語でも良いかも知れない。「そんな機械語で直接書けない言語なんて要らない。」とC言語が生まれなかったとしたら・・・
まぁ、そんな過去の遺物の話より、一番分かりやすくて身近なのは「オブジェクト指向」であろう。「オブジェクト指向なんて意味が分からない!」多くの技術者達がその当時思っただろう。かく言う自分も理解するのには時間が掛かった。
でもだからと言って、そこで目を摘まなかった事は正解だったと思っている。そのお陰で、今私たちの身の回りにある、JavaやC++、Ruby等が生まれるに至ったのである。
C++0xやF#も、つまりはそういう事なんだと思う。…他にもきっと色々と新しい言語の試みはあると思うが、それらは「今」使われるために生まれた言語ではないと思う。
・・・まぁ最近は、C#やらJava、Ruby、Python、etc…、即戦力となる新しい言語が次々と生み出されたため(と言うか単に表に出てきただけとも思うが)、ついつい錯覚しがちになってしまうのだが、「新しい言語を作る」って言うのは、即戦力となる言語を作る事に限らないと思う。
むしろ最近が単なる「怠惰」だったんじゃないか、とすら思う。新しいパラダイムシフトを起こさず、ちまちまとした派生言語の作成、堂々巡り・・・。それが今ようやく、気付いたんじゃないかと。「そろそろ次の時代を作る必要が出てきたんじゃないか」と。
単にまた、新しいプログラミング・パラダイムシフトを作り出すための、ないしそれを模索するための時代に再突入しただけなんだと思う。だからそれらは「まだ研究段階」とでも思ってもらえればいい。
それは言うなれば、胎児であり、種である。既に世に産み落とされたものであれば赤ん坊であり、芽である。今はまだ何も力を持たないし、広い草原の中のたった一つの芽かも知れないが、決してそれを摘んではいけない。
それはいずれ、その草原一面を綺麗な花で満たす存在になるかも知れないし、人の子であれば世界を救うヒーローになるかも知れない。勿論今の姿からでは、多くの人も、かく言う自分も、その20年後、30年後の姿は容易に想像する事は出来ない。
今はそれでいい。生み出した親でなければ、そこに対する期待も持てないかもしれない。でもそれでいい。今はただ、そういう期待の眼差しで産み落とされた命がまた一つ誕生したのだと、そう思ってもらえればいいと思う。
(end: http://twitter.com/myun2/status/9463203658)