進化

今日、ちょっと嬉しいことがあった。本来なら、多少は恥ずかしがらないと、いけないんだろうけれども。

Ruby言語では、定数(Constant)とか、(String Literal)は存在しない。数字の65もIntegerのインスタンスだから、
65.chr # => “A”
なんていう書き方ができる。

“ox”は、文字列(String)で、Java言語とか、C言語では String Literalだった。しかも、Cの場合には、文字の配列で、pointer演算を知らないと扱い切れなかった。

「それが、rubyではString Classのinstanceとして扱われるから、
“ox”.pluralize
なんていう書き方ができる。これは、Rubyが本来のObject Oriented programmingを実現したからで、Javaではこんな書き方はできなかった。」(大学院の授業だから、一応、全部英語)
Well, with Ruby language, “ox” is an instance of String Class, therefore, we can write the program like:
“ox”.pluralize
But, old so-called object-oriented language defined the literals and constants, so, “ox” is just a string literal, and, we cannot …
なんて感じで、話していたら、学生がJava language handles “ox”, as an instance of String, and you can write “ox”.pluralize also, in Java.
なんていう感じのツッコミをしてきた。日本人の学生だった。おっと。

え?そうなの?いや、少なくとも僕がJavaでプログラムを書いていた頃は、こんな書き方はできなかった。自信を持って話していたら、突っ込まれたから、”Then, just try. Seeing is believing.”と返したら、すぐにパソコン上でサンプルを書いて実行結果を見せてくれた。絶句。

いや、いつの間に、Javaがここまで賢くなった?以前のバージョンのJavaでは、こんな書き方はできなかったよ、と言い訳するのが必死、っていうか、僕の場合には「少なくとも15年前は」だから、学生もそれ以上は突っ込みようがないだろうし、Javaがバージョンアップで進化したんだ、以前のJavaだったら、僕の説明は間違っていない、というのが、せめてもの、言い訳。

そうなんだ。言語自体が、凄まじい勢いでversion upしてくるから、その知識にcatch upしないとこういうことになる。だけれど、どちらかといえば、PHP、ruby, pythonあたりで精一杯で、javaなんていうfade outしかけている言語についてまでfollowできなかった。

驚いたのは、いつの間に、Javaがこんな表現を受け入れるようになったの?っていうことだろうか。
と同時に、というよりも、それ以上に、日本人の学生が英語でこのツッコミをしてきたことだろうか。
去年の授業でも、英語で普通にprogrammingについてのpresentationをできた学生が一人いた。(一応、院生だけど。)そして、今年も。しかも、僕の言語仕様についての勘違いを指摘してきた。
この姿勢も、嬉しかった。「あんたは間違ってる」と思ったら、どんどんと声を出せ、と思うし、時々学生にもそう言ってる。僕らだって完璧じゃない。(いや、完璧な先生方は少なくないと思うけど、僕は、かなりイビツに不完全。)だから、僕に関しては、いくらだって突っ込んで構わない。と言っていたら、本当に突っ込んできてくれた。いいじゃん。

これ、相手を間違えると、人生を棒に振るから気をつけたほうがいい、とは思うけれども、普通に間違いを受け入れられる相手だったなら、指摘すればするほど、全体がよくなるし向上する。時には、桁違いに全体がscale upする。上の方の人間の器次第、なんだろうけどなぁ。どんな大組織だって、とんでもないところがあるから。
これもなぁ、小学校、中学校なんかでも、大学でも、教師によっては「出る釘」をhammerで叩き潰す(せめて、真っ直ぐに打ち込んでくれたら、まだ見てくれが良いのに、捻じ曲げて叩き潰す)ような教育をしている方が、今でもいるみたいだし、いくら「正しいと思ったら発言しろ」と言ったって、本当に言葉を発してくれた学生なんて、皆無に近かった。日本で生まれて育ったら、当然の防衛行動かもしれない。それが、今日は、英語で返されたもんだから、これは、めちゃくちゃ嬉しかった。
と、書いていて、ふと、気づいた。あれ、まさか海外帰国組で、海外で小中学校の教育を受けた子、だったのかな?それならば、理解できるし、そんなに喜ぶほどのことでもないんだけれど。
何れにせよ、日本人の学生からでは、皆無に近い経験だった。

なんにしても、やっぱり、こういうhappeningは嬉しい。
Programming Languageが進化しつつある。それはそれとして、仕事の上ではcatch upがしんどいから、半分歓迎、半分敬遠。
ただ、学生が、どんどんと正しいと思ったことを授業中にでも発言してくる、しかも英語を使いこなしている。これは、やはり、滅茶苦茶嬉しかった。

こうして日本語で書きながらも、実は半分日本人には期待していない部分もあったりする。大学に来る頃には、萎縮してるか、社会や世界への興味を全く持たずに自分の世界に籠もるか、分極化している気がするから。「何が正しいか」を見極めようともしない、どこかの国と比べても、日本の方が優れているように見えなかったりもする。
いや、僕はもう、終わってるし、もがいてはみても、やはり、若い人たちに頑張ってもらうしかない、ようにも感じる。ただ、自分自身が「正しい」と思ったら、仮に実際には間違っているとしたって、まず一応確かめて、次には、思ったことをどんどんと声を出して欲しいと思う。

書きすぎたな。最後の方の駄文は余計だ。書くべきは事実だけで十分。
とにかく、今日は嬉しかった。