※弊社記事はたぶんにPRが含まれますので
話半分で受け取ってください。

とある博物館の売店の営業は無事に終了しました。現在はカプセルトイを中心に設置してます。

icoro♀でもふわっとわかるプログラミング言語の種類

 今期より、新潟を代表するIT企業であるicoroの代表に就任する予定なのにあんまりITに明るくなくて、この間の高専カンファレンスで出会ったプログラマ女子に劣等感抱いちゃった感じのかわいいicoro♀のために、プログラミング言語の種類をふわっとまとめてみました。これを覚えておけば、プログラムとかワカランチンなicoro♀でも僕らの話がふわっと分かるようになるよ。

 ちなみにこの説明はicoro♂の独断と偏見によるものなので、情報が古かったり、実情に即していない場合があるかもしれませんが、その点、ご了承ください。
 でははじまりー。

プログラミング言語

BASIC (ベーシック)

 その名の通り、BASIC(基礎)な言語。でも、実は「Beginner’s All-purpose Symbolic Instruction Code(初心者向けの汎用的な記号命令コード)」の略だったりするのはマメな。初めてのプログラミング言語はポケコンのBASICだったという人は多いのでは(icoro♂もそう)。
 BASICで本格的な開発をするということはほとんどないと思いますが、「Visual Basic」はたまに話の中で出て来るかも。「Visual Basic」は、簡単に言うとWindows用のソフトをBasicを使って開発出来るようにしたものです。似たようなものに「VBA(Visual Basic for Applications)」というものもありますが、これはエクセルなどのアプリケーション上でVisual Basicの機能が使える、という感じのもの。

 ちなみに「Visual Basic」に限らず、「Visual (言語名)」という言葉が出てきた場合、それは「Windows用のソフトの開発言語、もしくは開発環境」を意味します。

C (シー)

 プログラミング言語と言えば、BASICと並んで出てくるのが「C言語」。単純に「C」ということが多いです。この間、この言語の生みの親が亡くなったのは記憶に新しいところ。元は「B言語」(BASICとは別物)という言語があって、その後継言語だから「C言語」というのはマメな。

 ちゃんと調べたわけじゃないですが、C++とかC#とかの亜種も含めれば、C言語はおそらく世界で一番使われている言語じゃないかと思います。UNIXやLinuxもC言語で出来てます(WindowsとMacは知らない)。主にスタンドアロンのソフト(Windowsのソフトみたいなの)開発なんかで使われてることが多いです。

C++ (シー・プラスプラス)

 「C++」はC言語にオブジェクト指向を取り込んだものです。オブジェクト指向については、ずっと前にちょっとだけやったicoro内Android開発勉強会の中で散々説明したのでここでは省略。「++」はインクリメント(1を足す)からきていると言うことはJavaを勉強したicoro♀ならすぐ理解出来るはず。
 話の中で「シープラプラ」とか「シープラ」とか出てきたらそれは「C++」の事。

C# (シー・シャープ)

 「C#」はWindowsのソフトウェア開発で使われることが多い言語です。C++をさらに++して、C++++、転じて「C#」らしい。「C#使えます」ってのは「Windowsのソフト開発できます」という意味とほぼ同義と考えて問題ないと思います。

Objective-C (オブジェクティブ・シー)

 「Objective-C」はC++と同じくC言語にオブジェクト指向を取り入れたもの。取り入れ方がちょっと違ったりするのですが、まー、プログラミングしないならその辺の細かいことは気にしなくておk。
 Objective-CはiPhoneやMacなどのApple製品向けの開発でしか使われてないので、「Objective-C使ってます」って人は「MacやiPhoneのソフト開発してます」というのとほぼ同義。
 「いえ、NeXTですが」という人がいたらその人は1990年代からのタイムトラベラーなので、今が2011年で、ジョブズはもういない、という衝撃の事実を教えてあげましょう。

Java (ジャバ)

 その名は広く知られており、使える人も多いけれども、実務で使われることはあまり多くない印象の「Java」。スタンドアロンのソフト開発にもウェブアプリケーション(インターネット上のサービス)の開発にも使えるので、なんかもっと普及しても良さそうな気がするのですが。その実効速度の遅さとメモリの消費量がネック? あと既存のシステムはCで組まれてることが多そうなので、そもそもJavaの出番がないとか。
 現在、Androidアプリの開発言語として復権の兆しがあったりなかったり。

 オブジェクト指向の言語の代表格なので、プログラミングやオブジェクト指向の理解のために教育の場で使用されることが多く、とりあえずJavaが使えるという学生は多い模様。
 また、JavaはCと似ているので、Javaが使えればCやPHP(後述)などの他の言語の習得もしやすいと思います。

Perl (パール)

 ちょっと前は、ウェブアプリケーション(というかCGI)といえば「Perl」でしたが、PHPの台頭によりやや下火に。でも、最近またコアな使い方をするPerlerが増えていて、その方面では盛り上がっている模様。

 申し訳なさそうに「Perlが使えます」という人は古くからのPerlerと思われるので、「最近またPerlキテるみたいですよね」っていうと喜んでくれるかも。自信満々に「Perl使えます」という人にはとりあえず「変態ですねw」と言えば喜んでくれるかも。パラリラパラリラ。

PHP (ピー・エイチ・ピー)

 icoro♂が割と使える言語その1。今、ウェブアプリケーションといえば「PHP」。最近はレンサバ借りれば特にこれといった設定をしなくてもPHPを使えることが多く、言語も比較的分かりやすく、(日本語の)ドキュメントも多く、PHPで開発されたソフトウェアも多く、まさにPHP黄金時代です。「ウェブアプリケーションやるならとりあえずPHPかじれば良いじゃない」という感じ。

 まさに「この世をば我が世とぞ思うPHPの欠けたることもなしと思えば」状態ですが、しかし、盛者必衰は世の理なので、なにか他の言語が台頭してくるんじゃないかと日々戦々恐々としているPHPerも少なくないのでは。

Ruby (ルビー)

 使ったことがないのでイマイチよく分かってないのですが、好きな人は相当好きらしい「Ruby」。ウェブアプリケーションの開発で使われてる事が多いみたいです。
 ちょっと前に「Ruby on Rails(ルビー・オン・レイルズ)」というアプリケーション・フレームワーク(ウェブアプリケーションを作るときにあると便利なひな形みたいなもん。ウェブアプリがちょー高速で作れる、らしい。)が現れて、一気に知名度が増しました。その仕組みはPHPなどの他の言語で使われるフレームワークにも影響を与えています。

 Rubyについての個人的な印象は、ちょっと前のMacです。「デザインすげーかっこいいし、使い勝手も良さそうなんだけど、操作性独特だし、まあとりあえず普及してるWindows(PHP)使っとくかー」みたいなー。

Python (パイソン)

 使ったことないのでイマイチよくわからん言語その2。「Fix HootSuite」の作者としても有名なcivicさんが作った「SeatNext」というサービスは「Python」で出来ています。なので、てっきりPythonってウェブアプリケーション開発での使用がメインなのかと思っていたのですが、スタンドアロンのソフト開発にも使われていたりして、用途としてはどっちかというとJavaに近い?

 「Google App Engine(GAE)」というサービス(ウェブアプリケーションをホスティングするサービスって感じ。いわゆるPaaS)を利用している人はPythonを使っていることが多いかも(SeatNextもgoogle App Engine上で動いている)。GAEではJavaも使えますが、Pythonの方が使いやすいらしいです。

Javascript (ジャバスクリプト)

 icoro♂がわりと使える言語その2。ここであげている他の言語は、サーバ上やPC上で動作する言語でしたが、Javascriptはブラウザ上で動作する言語です。
 かつては、ブラウザ上でボタンをロールオーバーしたり、確認のダイアログ出したりするのに使われていて(今もその用途で使われていますが)「ぶっちゃけこれいらねんじゃね?」と思うことが多かったビミョーな言語でした。しかし、Google Mapsに代表される「Ajax(エイジャックス)」(画面の遷移なしでデータを取得したり出来る技術)の登場でその有用性が急上昇。ウェブアプリケーションを作ろうとする場合、もはや避けては通れない存在となっています。

 一方で、Javascriptはブラウザによって対応がまちまちだったりするので、それらを吸収してくれる「jQuery」などのライブラリと一緒に使うのが定石。「IE滅びろ」がJavascripterの共通の願い。

 また、ブラウザ以外にも、MacのダッシュボードアプリやAndroidアプリの開発でもJavascriptが利用出来るようになったりして、その活躍の幅が広がっているようなそうでもないような。

Fortran (フォートラン)

 アプリケーション開発の世界ではあんまり耳にすることはないかもしれませんが、科学技術計算の分野では未だに使用されているらしい「Fortran」。技大やら高専やらに出入りしていると、もしかしたら、耳にすることがあるかも、ってことで最後に付け加えてみました。
 Fortran使ってるって人は高確率で科学屋さんです。自分も高専時代にFortranの授業を受けました。でも、自分の後の世代はFortranじゃなくてCをやってるみたい……

ってな感じ

 割と耳にすることが多い言語をざっとあげてみました。この他にもCOBOLだのLISPだのsmalltalkだの多くの言語がありますが、それらについては出会ったときに随時ググれば良いと思います。

 プログラマと話をするとき、ある程度、言語の特徴を知っておけば「この人はこの言語が使える。ということはこんなことが出来るはずだ」という発想に繋げることが出来ます。あるいは「こういう事がしたい」と思ったとき、どういう人材を集めれば良いのか、ということが分かるようになります。別に自分がその言語で実際にコードが書ける必要はありません。むしろ、アイディア出しに専念すべきだと思うのでコードは書かない方が良いと思うくらいです。

 まあ、それは別に言語に限った話ではないですね。個人個人が持つスキルを遺憾なく発揮させるにはどうしたら良いのか。それを考えるにはそれぞれが持つスキルの特徴を把握する必要があります。足りない部分があれば、それを補完するスキルを持った人間を入れる必要があります。
 それぞれのスキルの特徴を把握し、場合によってはそれらを切ったり貼ったり合成したりして、新しいもんを生み出す。組織のトップってのはそういうもんじゃないかな、と思ったりしてるのでした。(言うだけならタダさー。)

参考

[改訂新版] これからはじめるプログラミング基礎の基礎

  • メーカー:技術評論社
  • カテゴリ:単行本(ソフトカバー)

関連する記事