
hetareDAIOの日記: プログラミング言語使い分け 4
最初にファミコンのファミリーBASICに触れて、私の中の何かが目覚めてからもうすぐ30年。今までの睡眠時間よりも長く携わっているであろうプログラミング。長いなぁ。これしかやってないもんなぁ。
なんでこんなに時間をかけているのかというと、楽しいから。それだけ。今でこそ言われなくなりましたが、「そんなことやって何の役に立つの?」と昔はよく言われたものです。今はコンピュータがないとどうにも不便極まりない、そういう時代になりました。
日常生活・仕事・さまざまな場面にて、常に何がしかの問題が発生するわけですが、その解決手段の一選択肢がプログラミングであると思っております。もちろん、問題解決手段としては他にたくさんの選択肢があるわけでして、例えば、ほかの人に命令してやらせるというのも選択肢でありますし、みんなで協力して事に当たるというの選択肢です。私の場合は、コンピュータを使って、できるだけ自分一人で解決することに楽しさを見出した訳です。
プログラミングという1手段の中にもいろんな手段、言い換えるといろんなプログラミング言語があります。私の場合は今でこそ10を超える言語を扱うことができますが、昔はN88-BASICとアセンブラ(Z80/80x86)だけで10年過ごしてきました。当時と今ではコンピュータに出来ることは本当に変わっていますので、仮に今N88-BASICとアセンブラだけで何とかしろ、と言われたらお手上げでしょうw
んじゃ、今は何を使っているのかというと、目的別に切り替えています。すべてを一つの言語だけで賄うのは苦痛でしかありません。向き不向きありますし。今の使い分けは、
- テキスト処理:pythonもしくはDもしくはC#
- エクセルが絡む処理:pythonかVBAかC#
- GUIが絡むこと:C++とQt
- Android向け:Java+C
- ワンチップマイコン使う場合:CかC++
- ゲーム開発:C++とアセンブラ(x86/ARM)
- ウェブが絡むこと:pythonかPHP+JavaScript/HTML5/CSS3
すべての言語を平等に扱えるわけではありませんが、時と場合と相手に応じて使い分けをしています。
ただ、選択肢が多ければいいってわけでもなく、時間は有限なわけですから、効率を考えるならプログラミング言語は3つか4つ程度知っているくらいがいい塩梅ではないのかなとは思います。個人的には、しまった、こういうことができると言わないほうがよかった、と思えるケースもありました…^^;
ファミコンBASIC時代 (スコア:0)
Family BASICが出た頃にファミコン向けのゲームなんかをゴリゴリ書いてました。
あの頃はPC向けの開発もC言語自体の選択が必須でした(今だとclang gcc,VS,Intelくらいしか選択肢が無いうえにプラットフォームによってはほぼ確定、でも当時はコンパイラメーカの選択でも迷う事いっぱい)
それが今ではAssemblerを使うのは組み込み機でメモリがカツカツのマシンだけ、もう最近は日和りまくりでチープなRaspberry PIでもRegexpをリテラルで扱えるClojureばかり(PythonやRubyが使われるような用途でもClojure,GUIもSwingでいいならClojure、CLI版のClojureがもちょっと使い勝手が良くなったらWindowsの.Netもこれに転びそう)VBA系は昔からVisualStudioのマクロ作る時しかさわらないのであいかわらず使う時はHelpにたよりっぱなし、C++も計算速度が必要な用途の仕事や趣味が減ったのでつかわなくなりました。
そんな感じで最近は言語が自分の領分をCOBOL,FORTRAN時代よりも主張してくれるので昔よりも選択で悩むことが減ってうれしい限りです。(一時期のWeb系が凄かったですよね)
いろんな言語使ってきたけど特徴的な物以外はどれでもあんまり変わらないんだなぁと思う今日この頃です。
#プライベートな所でプログラム書く必要性もだいぶ減った気がする。
#自分の数時間よりもアプリの方が安いという。
Re:ファミコンBASIC時代 (スコア:2)
ええ本当に。最大公約数的なものを押さえておけば、他を使うこと自体は難しくない、というのはありがたいです。面白みに欠けるという話もありますがそこはそれ。
ほえほえ
Re:ファミコンBASIC時代 (スコア:1)
学生部長から学長に選ばれながらも講義の枠(経済原論I)をもち続けたわたしの大学先生は、1980年代半ば頃当時
Cとかpascalは知らないがPL/Iとそう違うものではないと承知している
と、FORTRAN, PL/Iは使えると平気な顔でいっていたので大雑把にいえばそういうものかもしれません。
Smalltalk 80について質問しておけばよかったかもしれない。。。
Re: (スコア:0)
Family BASICが出た頃のPCではC言語による開発は非常に厳しかったと思うのですが