プログラミング言語の選び方は美しさ or 実用性の2通りある

2015年2月18日に投稿 → に更新

a0055_000496

プログラミング言語を選ぶのはプログラミングの「考え方」を選ぶのと同義です。

人は言葉を使って思考をします。プログラムロジックを考える際に使う言葉がプログラミング言語です。

  • 手続き型言語ならば、手続きの積み重ねとしてロジックを考えます。
  • オブジェクト指向言語ならば、オブジェクト間でメッセージをやりとりするイメージでロジックを考えます。

簡潔で美しい構文を持つ言語を使ってる人は、ロジックを考える時も簡潔で美しいロジックが浮かびます。
冗長で煩雑な構文を持つ言語を使ってる人は、冗長で煩雑な思考をしてしまいがちです。

だからといって、必ずしも構文が美しい言語を選べばいいわけではありません。
構文がいくら美しくても、実用性の低い言語が存在します。
構文が煩雑で言語として美しくなくても実用性が高い言語もまた存在します。

そこで今回は、プログラミング言語の2通りの選び方(美しさ or 実用性)を紹介します。

美しい言語を選ぶべき理由

美しいプログラミング言語というと何を思い浮かべますか?

私の場合Rubyが浮かびました。

Rubyは構文に無駄がなくソースコードが美しいですし、さくさく書けて書いていて楽しいですが、Windowsだとうまく動かないケースが多いという欠点があります。Rubyが標準で持ってるFTPの機能がWindowsではうまく動かなかったことがあります。それとShift_JISのファイルを読んでString#subで比較したら文字コードエラーが起こりました。ソースコードの文字コードとファイルを読む時に指定する文字コードも合わせて読み込んだファイルも確かにShift_JISであることを確認したのですが解決しませんでした。

同じ処理をPHPで書き直したら何の問題もなく動きました。

じゃあPHPを使った方が良いかというとそうとも言い切れません。

使う言語によって学べる考え方が異なる

Rubyで配列の中から3の倍数の要素を収集する場合以下のように書けます。

同様の処理をPHPで書くと

となります。Rubyは高階関数を使った簡潔な書き方が出来ますが、PHPだとべたにfor文で繰り返し処理を書きます。といってもPHPもバージョン5.3からは高階関数をサポートするようになったので現在はRubyと同じような書き方が出来ます。

とはいえRubyはとうの昔から高階関数をサポートしていたので、Rubyプログラマーの方がPHPプログラマーよりも洗練された表現でロジックを書くことが出来ました。

これはC#とJavaの関係も同じです。C#もまたRubyのように早い段階で高階関数をサポートしていました。Javaが高階関数をサポートしたのはJava8(2014年)なので、それまでの間Javaプログラマーは高階関数を使ったロジックの組み方が出来なかったんです。これを揶揄してJavaプログラマーをforおじさんと蔑む呼び名がネットで流行っています。

前述したとおり、使っている言語によって思考は影響を受けます。RubyやC#を使っていた方がPHPやJavaを使っているよりもスマートな思考をしやすくなるんです。

これが美しい言語を選ぶべき理由です。

実用性の高い言語を選ぶべき理由

動作しなければ意味がない

前述したとおりRubyで書いてうまく動かなかったプログラムをPHPで書き直したら動いたということがありました。

RubyはもともとUnix/Linux上で動くことを設計されたものなので、Windowsでの動作は不安定なようです。

どんなに美しい構文を持つ言語でもプログラムが動作しなければ使えません。

実用性と求人数

Rubyプログラマーの求人よりもPHPプログラマーの求人の方が圧倒的にたくさんあります。

実用性の高い言語の方が求人数は多くなります。

もちろんRubyプログラマーの求人も少なくない、かつ、Rubyプログラマー数がPHPプログラマー数に比べてずっと少ないので需給バランスで考えると就職は十分可能ですけどね。

美しい言語と実用性の高い言語をバランスよく使おう!

仕事ではPHPを使うけど、趣味ではRubyを使うといったように、どちらか一方にならず両方使うことで、両方の良い所を学ぶことが出来ます。

もし今自分が使っている言語がどちらか一方の言語に偏っている場合は、利用言語のポートフォリオを見直してみると良いかもしれません。

プログラミング初心者におすすめのサービス
1. 講師から対面で学びたい派なら

プログラマカレッジをおすすめします。ProEngineerという転職エージェントが運営しているプログラミングスクールです。20代限定なんですが、無料で受講できて、修了後、就職支援もしてくれるんです。最高過ぎですよ、これ!!企業からの協賛金で運営しているのでスクールを無料にできるんだそうです。すばらしいシステムだと思います!

30代以上の方には

プログラマカレッジは20代限定なので30代以上の方にはWebCampをおすすめします。受講料の返金保証がついているし、毎日11時〜23時まで通い放題なのでとてもいいと思います!

2. 自宅で学びたい派なら

「就職保証付き」オンライン就職予備校をおすすめします。Javaエンジニアコースでは就職保証がついているのでプログラマーとして就職したい方にはぴったりです。Javaエンジニアの求人ってめっちゃ多いし、求められる技術レベルもそこまで高くないのでちゃんとした教育プログラムなら就職保証できるだろうなとJavaエンジニア経験者の私も思います。

3. つまづいた時に質問したくなったら

プログラマー専用の質問サイトteratailをおすすめします。 つまづいた時にteratrailで質問すれば教えてもらえます。

4. 未経験の人でも登録できる転職エージェント

ワークポートは未経験の人の転職活動も支援してくれますし、全国の求人を扱っているので地方在住の方にもご利用いただけます。

これらのサービスを活用すれば、全くの初心者からでもプログラミングをばっちり出来るようになると思います!レッツトライです!

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

ホームページを見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはワークポートというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『ワークポート』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、ワークポートは未経験者を支援し転職を成功させています。

未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

『派遣社員』なら正社員とフリーランスの『良いとこ取り』!

  • 「フリーランスになりたいけど、確定申告とかめんどくさいな」
  • 「定時帰りできる職場や、時短勤務がしたい」

という方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員なら

  • 時給が高く、給料も悪くない
  • やりたい仕事を選べる
  • 確定申告不要(派遣会社がやってくれる)
  • 厚生年金、健康保険も派遣会社が入ってくれる

ので、正社員とフリーランスのいいとこ取りな、とてもいい選択なんです。

 - 技術