Chienomi

教育と職業スキルと実用から見たプログラミング言語選択

プログラミング

  • TOP
  • Old Archives
  • 教育と職業スキルと実用から見たプログラミング言語選択

前articleの続きだ。 なお、Swiftは使ったことがない。

Perl

オワコン的に言われることも多いが、柔軟で強力な言語だ。 今や仕事にはまずならないが、コンピュータを便利に使ううなら覚えておいたほうがいい。

シェルスクリプトで悩むより、perl -e(perl -neperl -peも)が早いことは多いし、Windowsでは作業スクリプトを書くのがとても楽になる。

性的型付け言語だが、数値・文字列間では動的で全体的にゆるく、学習もしやすい。 ただし、I/Oまわりと文字列処理は独特で、合理的すぎて人間の理解の先を行く感もある。説明はしやすい。

Python

割と有望な言語。ライブラリも豊富で色々やりやすいし、比較的楽ではある。

好き嫌いは割れる。Python的な正しさを求められるので、正解が決まっていたほうがいい人、統一されていてほしい人は好きだし、好きにやりたい人は嫌いだ。

文字列処理が苦手なので、特に日本人で文字列処理をしたい人には向いていない。

構文が独特なので学習には向かない。 仕事のクチはまぁまぁ多い。

PHP

「オワコン」「ダメ言語」。 元々の目的から外れて拡張された結果、ひどい継ぎ接ぎと矛盾になってしまった。 PHPは便利ともてはやされ、なんでもPHPに求めた結果、PHPでないものを要求されたのだ。 だから、プログラミング言語としてはかなり苦痛な部類に入る。

もちろん、本来PHPがするべきことをする(HTMLの一部を動的に生成する)ことには適している。 また、WordPressなどのPHPアプリケーションをいじるのにもスキルは必要になる。

構文自体は普通なので初歩を学ぶにはいいが、普通はもっと柔軟に書ける。 仕事のクチは多いが、一時はPHPだらけだったのでPHPエンジニア(ペチパー)の数が多く、口数は減っているので参入は結構きつい。

Ruby

最も稼げる言語。 柔軟さ、読みやすさ、強力さを兼ね備える。 日本人の作なので、日本語文字列の扱いが楽なのもメリット。 実行が遅いという欠点も、だいぶ埋まってきた。

隙のない言語だが、作者が言語マニアで、あまりメジャーじゃない言語を参考にしていたりするので、構文に普通でないところがあり、初歩学習には向かない。 また、GUI関連ライブラリが弱い。

稼げるのはRuby on Railsの話しで、Ruby全般に詳しくてもクチは少ない。

java

冗長な言語。 親hackerのSunが嫌hackerのOracleに買収され、Oracle次第になっている。

「javaのバージョンによる違い」に振り回されるがコンパイルされたJavaコードが異なるシステム上で動くことは多く、Java用GUIツールキットもあるためアプリケーションを書くのに便利。 しかも速い。 冗長でもめんどくさいことと、バージョンに振り回されるのが欠点だ。

日本では仕事のクチは最も多い気がする。 給料も高い。

C#

Microsoft版Java。 Javaよりもちょっと気が利いているが、だから良いとは言えない。

まず大抵Win32APIを叩くので、Windows用C#コードはWindowsでしか動かないし、Windowsのバージョンにもよる。

だから仕事のクチも少ない。

JavaScript

Javaとは関係ないが、Javaっぽくも書ける。 小さいが、言語設計を知る人なら舌を巻く傑作である。

シンプルで標準的な構文で、簡単なことを簡単に書けるが、かなり本格的な記述もでき、hackしがいもある。 DOMを使ったアクションで視覚化しやすいことを含めて学習には向いているが、オブジェクト指向部分はプロトタイプベースというキワモノで、実際便利だが、独特。

JavaScript自体がウェブブラウザと一体なわけではないが、実際はほぼウェブブラウザ上で使われるため、ウェブクライアントサイドスクリプトという独特な使われ方と共に内容も独特になるし、仕事ではそれが苦労にもなる。 一方で、そのために言語処理系の用意が簡単でハードルは低い。

ウェブをやりたい人は通じ用の言語とは別口で学ぶ必要が生じる。

仕事のクチはとても多い。

C

現用で最も原始的な(つまり大変な)言語。 現在は速度を求められるケース以外では使われなくなってきている。

意外と学びやすい(静的な言語としては)が、ポインタでつまずく人が多い。「値か参照可」はいずれ理解する必要があるにしても、メモリアドレスを直接障るのはPerlと比べてもハードルが高い。

Linux開発者になりたいのであれば避けては通れない。

C++

Cを使いやすくしたものだが、Cより邪悪だという人も多い。 Simula由来のオブジェクト指向は現代的でなくハードルは高い。

OSSでの採用率は高いので、OSSで活躍したい人は学んだほうがいい。

D

CもC++もJavaも嫌な静的派・速度派の人のための言語。 どちらかというとこれらを学んだ人のための言語でDからはじめめようという言語ではないかもしれない。

仕事のクチはほぼない。

Go

CもC++もJavaも嫌な静的派のDでない選択肢。 並列実行が楽で、あまり普通ではないが、ErlangやHaskellよりはマシなので、現代的な多プロセッサコンピュータの性能を活かすプログラムを書くための有力な選択肢となる。

初学には向かず、仕事のクチも稀。

Swift

iOSアプリの正式言語。 iPhoneだけを信じている人なら良いが、iOSアプリはSwiftでなくても書けるので、そこまで人気はない。

前代のObjective-Cに比べればかなりマシな言語で、iOSアプリ開発も楽しく行える。

仕事のクチは少ない。

Lua

PHPに似ている小さな言語。 小さいがよくできてきいて、プラグインなどによく使われる。 Lua JITの実行速度が速いことでも有名。

後発の言語だけあって既存の言語をよく研究しており、構文は現代的で記述も楽。

プラグインが自分で書けることを含め、使えれば実用性はあるが、仕事にはなりにくい。 初学には向いている方だと思う。

COBOL

古代言語。 当時から嫌われ者だった。変に冗長で英語っぽい言語で、今となってはすごく変な言語。滅ぶべき言語の筆頭とされているし、学びにくい。

ところが、金融領域で使わされているため、全然滅びない。 一定の需要があり、しかも若い使い手は稀なので、あなたが若いならマスターしておくと当面食いっぱぐれないかもしれない。