開発言語を学ぶ

こんにちは、プログラマの三浦です。
今日は「これまでの人生の中で通り過ぎていった開発言語の遍歴」を公開したいと思います。

プログラミング言語に最初に触れたのは、小学校3年の時でした。家にあった、NEC PC-8801のBasicのリファレンスマニュアルを片手に、見よう見まねで打ち込んだのが最初でした。
そのあとすぐに言語の限界(インタープリタを動かすためのマシンスペックの限界ですね)を感じ、マシン語に移行しました。もちろん、論理的な理解をせず、こう書いたらこうなったという因果関係でのみ覚えていた記憶があります。

*小学生、中学生の頃はまだプログラミングに没頭するという感じではなく、ゲームで遊んだり、書籍に記載されているプログラムを打ち込んで、ゲームを改造して楽しむといったレベルでした。

*高校に入学した際に、担任からBorlandのTurbo Cを紹介され、そこで初めてC言語に触れたわけです。家のパソコンもPC-9801シリーズに移行していたのですが、Turbo CよりもMASMに没頭していて、アセンブリ言語に一番触れていた時期でもありました。

*大学に入ってもMASMがメインの開発環境でしたが、研究室に配属されてからは、Unix/X Window環境が主な環境になり、X Libを用いたC言語での開発に没頭していました。

KANEMOCHI...かねもち...金持ち...食べたら金持ちになれるのか?と、ショッピングモールの中で気になって立ち止まってしまいました。

KANEMOCHI…かねもち…金持ち…食べたら金持ちになれるのか?と、ショッピングモールの中で気になって立ち止まってしまいました。

*卒業後は地元の開発会社に就職しました。

最初に渡された環境がなんとOpen Stepで、いわゆるNeXTSTEPのインテル版と言われるものです。そこで初めて、OOP(オブジェクト指向プログラミング)に触れました。今ではメジャーなObjective-Cとインターフェースビルダーを一足早く触れていたわけです。

会社の環境としてOOPに理解のある部署でしたので、個人的にC++も並行して学ぶようになりました。それと同時に、BorlandのJ BuilderによるJava言語での請負仕事も沢山こなし、また別の業務ではBorlandのDelphiによるObject Pascal言語もかなりの経験を積みました。DelphiのVCL(Visual Component Library)を沢山作成し、コミュニティにもだいぶ貢献したと思っています。Java言語では、RMI(Remote Method Invocation)を使った、OpenGLの遠隔制御なども経験しました。

またその当時、ソケットプログラミング、データベースプログラミングも学べました。グラフィックス周りに目を向けても、大学のSunマシンにはOpenGLが搭載されていたのですが、あまりにも遅く(ハードウェアアクセラレーションが非力なマシンだった)、ソフトウェアレンダラーを実装していたものですが、その頃にはPCでもだいぶ動作するようになっていたと記憶しています。また、あまり多く携わることはありませんでしたが、VisualBasicにも触れることがありました。

*独立した後は、Visual Studioがメインの開発環境で、主にC++言語を使用していました。

また、DirectX, DirectShowなどにフォーカスし、その頃HLSL(High Level Shading Language)を学んだ記憶があります。それまでは、Direct3D 7辺りまで使われていたシェーダ用のアセンブラ言語を使用していました。また、COM+やC#言語も学び始めました。ベルギーにいた頃は、ほぼVisualStudioでのC++,C#,HLSLがメインでした。また外部からの制御用にLuaというスクリプト言語も学びました。

*日本に戻ってきてからも激変でした。まずMacromediaのDirectorで使われているLingoという言語を学びました。そして、Flashで使用されているActionScriptも学びました。クロスプラットフォーム開発を念頭に置いたプロジェクトが多かったので、RealBasic(今はXojoという名前に変わっています)を学びました。その頃既にアラフォー間近でした(汗)

*最近はスマホ開発が増えてきたため、Objective-C++、Java言語を使うことが増えてきました。またグラフィックス周りもOpenGLに移行し、GLSL(OpenGL Shading Language)を始め、JavaScriptによるWebGL,HTML5などのWeb系の案件も増えました。その結果、バックエンド開発として、PHPやPython、node.jsも学びました。
そして今現在主にC++を柱に、スマホ対策としてObjective-C++/Javaを使いつつ、Swiftをつまみ食いしている、そんな状況です。

週末に行われたF1シンガポールグランプリを観に行ってきました!こちらは応援しているフェラーリのベッテル選手です。

週末に行われたF1シンガポールグランプリを観に行ってきました!こちらは応援しているフェラーリのベッテル選手です。

今後も新たな開発言語はどんどん出てくるでしょう。古い言語であるC++もC++11などモダンになってきています。

C++エキスパートであるのでそれを柱に、潮流に乗った新しい言語もバンバン学び続けたいと思っています。シンドイですけど。が、時代は繰り返すので、またWeb系からIoT, Drone, VR/AR, AIなどの分野で、低レイヤー言語にも注目される時期が来ると思っています。その時が来るまで、生き残り続けたいと思います!

最後に一つ。使う人にとってはどの言語で作られていても気にはしません。もちろん、使用言語がユーザービリティにおいて軽快さ、リッチな体験などといった形で現れる場合もあります。闇雲に学ぶのも考えものですし、一つの言語だけに頼るのも引き出しの数を制限してしまいます。自分はプロフェッショナルなアプリ屋として、どの言語で作るのがユーザーにとって良いか、そして開発期間、その品質がどの言語であれば担保できるか?それだけを気にしています。あまり流行に対しては気にしないスタンスですね。

そしてこの秋、中国語の取得にも挑戦しようと思います!

Best Regards,

Nozomu Miura

miura

秋田県生まれ。ベルギー、東京を経て現在シンガポール在住。 様々な業務アプリケーションの開発に関わり、主に低レイヤーの開発を得意とする。 ベルギーへ渡り、照明最大手のR&Dのリードエンジニアとして、メディアサーバや照明制御の開発に6年間従事。 2006年のユーロビジョンソングコンテストやアーティストのステージを支えるエンジニアとしてベルギーを拠点に欧州で活躍。 日本ではライブストリーミングサイトdommuneや、坂本龍一の映像配信などをサポート。 その一方で、vjとしてクラブシーンとも関わり、積極的にvjソフトウェアを開発。 小さくてもニーズのあるツールを提供するのが生き甲斐。次のプロダクト作成のため、メンバーを探している半ばの人生。 エンジニアとしてのメンタルを保つために、アジア大陸最南端でギラギラ葛藤中。 動物とあんことレッドブルが好き。最近お酒に弱くなりました。

0 comments