C# が JIS に認定

について、コメントを求められた。

大学の授業などにも採用されるということで、オブジェクト指向などを学ぶのに C++ よりも優れていると思います。開発の現場としては、(その時々で必要な)プログラム言語を教えるのは(コストはかかるかもしれないけど)可能だから、その基盤となるところがしっかりしていて欲しいので、C# がその助けとなるとよいですね。
他所でも言われますが、らくだ形式とか添字子とかはどうにかならなかったんですかね(苦笑

みたいなことを言ったけど、C++ を使って教育する場合の問題点の1つは、C言語を最初に教えてるところが多くて、「手続き型言語による関数レスで構成されるアプリケーション」を libc ベースで作り上げられる状態を基盤として叩き込んでしまうことかな?
英語圏の人に「THE は母音の前につくときは ジ で、それ以外は ザ だって授業で習ったんだけど、使い分けが難しいのでコツを教えてくれないか」とたずねると「そんなことは聞いた事も教えてもらった事もない、(自分は)どうやって使い分けているんだろうか?」と自問されてしまうらしいが、似たようなことは自然言語に限ったことじゃなくてプログラム言語にも言えることだろう。
大学で科学技術計算にFORTRANを学び7年以上FORTRANを使い続けた人に C++C# を教えても、(その人次第だが)「 C++C# の構文を使った FORTRAN プログラム」が記述されてしまう、というよく見られる光景も、似たようなもんではないかな?


教える側次第ではあるが、授業が C++ から C# に変わることで、C++ を教える前にC言語を教えるようなことがなくなり、このような出来事を防ぐことができるといいんですどね。*1
プログラミングを教えるということは、プログラム言語を教える語学ではなく、コンピュータ*2の動作原理を科学的に理解するコンピュータ・サイエンスと、それを思い通りに操るための手順を考えるロジックを創出できる思考の方向性を確立する、といったかんじなので、『教えてもらう』より『(自ら/他人から)学び取っていく』が主体なんじゃないか、と。*3

*1:OOP/OOPL が、いつまで/どこまで、主流でありえるかは難しいところですが、そのときは C# も授業からは降板するべきでしょう

*2:ここで言うコンピュータはハードウェアも含むが、OS や標準ライブラリ層のようなレイヤーも指す

*3:そういえば、誰かに教えてもらいました?とかも聞かれてました