デジタル鉄道模型フォーラムDCC・メルクリン等のデジタル鉄道模型の話題でコミュニケーションできる場です。登録・利用は無料です。
デスクトップステーション(DesktopStation)のページはこちら
・無料の日本型超高品質DCCサウンドデータをWebで配布中!
・鉄道模型をスマホで簡単制御!国産で革新的なコマンドステーション DSair2はこちらから。

2017年08月14日

鉄道模型とプログラミング言語

「2017年プログラミング言語別平均年収ランキング、1位は「Scala」 平均626万円」 @ITを見て、いろいろ思ったので、書いてみます。

昼の仕事の私の業務では、ほぼほぼ100%、C言語です。かなりマニアックな部分なのと、C++のオーバーヘッドすら大問題、という用途に使うので、C言語から抜け出すのはあと10年でも無理そうですね。数百円の組み込みマイコンにおける中間言語技術や最適化技術が大幅に進化したら変わるかもしれませんが、ARM KEILやIARの開発環境の値段が上がるのは勘弁ですが。

さて、鉄道模型の実装によく使われるプログラミング言語とはいったい何でしょうか!

もう答えは分かってます。C言語です。次に多いのは、アセンブリ言語でしょう。Nucky社はアセンブリ言語を愛用しています。弊社は基本はC言語(C++も一部)とC#です。最後に多いのはC++だと思います。C++を使うのは、ArduinoベースのスマイルデコーダシリーズやDSシリーズになります。

Windows向けの鉄道模型用フロントエンドソフトだと、JAVAとかC#とかいろいろあります。Windowsでは比較的言語は自由なので、HSPでも、Active Basic、はたまたゲームエンジンの吉里吉里NScripterでもいいわけです(超マイナー、模型の分野の人には無縁のプログラミング言語たち)。私もゲームエンジンを20年近く前に作っていたので懐かしいところです。一歩間違えていたら、ギャルゲーの会社に入っていたかもしれません。

何が言いたいかと言うと、プログラミング言語など何も関係は無いという事です。Scalaとかいう言語(私はよく知らない)が1位とか言ってますが、何も意味はありません。

重要なことは、何かを実現するために、将来のメンテナンスも考慮したうえで何がベストかを考えて、実装方針を決めて、実装していくことです。そのために、プログラミング言語は自ずと自動的に決まるものです。このプログラミング言語を勉強すれば儲かる!」とか考えると、ドツボにはまります。「寿司の道を究める!」と将太の寿司ばりにがんばる人が、世界共通言語として確たる地位である英語しかしゃべれなかったらどうなりますでしょうか。英語はどこにでも通用しますが、例外があります。その例外に引っかかったら、究められないですよね?寿司以外にも、ドイツのお菓子マイスターとか、たくさんあるはずです。

鉄道模型については、C言語をキッチリ勉強してもらえれば、デコーダとコマンドステーションの実装で困ることは無いです。アセンブリ言語は、今はコンパイラ君が超優秀なので、あえて覚えなくても大丈夫です。自分の頭で最適化するよりもイイ機械語(アセンブリ言語)を生成してくれます。

ただ、鉄道模型も今はスマートフォンで動かすのが最近の流行なこともありますので、モバイルアプリ実装ということで、JavaScriptも一緒に勉強することを推奨します。JAVAはやめた方が良いです。Sunがオラクルに買収されたり、重たい中間言語インタプリタの制約などなどで、10年後は主流になるとは到底思えません。10年前はそんなことは無かったのですが・・・。

と言う事で、将来、プログラマーを目指す人は、とりあえずC言語はマスターしましょう。その次は、C++やC#あたりを攻めていき、そのついでにJavaScriptをやっておけば、飯は食っていけると思います。
posted by yaasan at 19:32 | Comment(3) | 鉄道模型