プログラミング言語の『使い分け方』を考えてみた
プログラミング言語って基本的には汎用言語なので、一つの言語を覚えればいろいろなものが作れますが、言語によって得意不得意があります。目的に応じて使い分けるのが理想的です。
使い分ける観点として、
- 何を作れるか、何を作りやすいか?
- 仕事で使えるか?
があります。
趣味でプログラミングする分には好きな言語を使えばいいですが、仕事の場合は、そのプロジェクトで採用されているものを使わなければなりません。
ですから、仕事でよく使われているものとそうでないものを考えていくと使い分けがしやすくなります。
そんな観点で考えた『プログラミング言語の使い分け方』を紹介します。
仕事用言語の使い分け
Webアプリケーションやスマホアプリのサーバーサイド開発の仕事でよく使われてるのはPHP、Javaです。
Ruby, C#, Python, Perl, Go, Node.jsなどでもWebアプリケーションは作れますが、案件数でいうとPHP、Javaが圧倒的に多いです。最近はRubyも増えてきてて嬉しいですけどね。
仕事ではPHPを、趣味で何か作る時はGoを使うみたいな使い分けをすると、後になってGoを仕事で使う時に役立ったりします。
趣味用言語の使い分け
私の場合、
- 仕事では業務システム開発(Java)
- 趣味のWebサービス開発(PHP & レンタルサーバ)
と使い分けていました。
VPS上で動くサービスを作る時には、RubyやNode.jsも使っています。
技術的好みだけで選ぶとも限らない
最近は、VPSで新たにサービスを作る際もPHPを使っています。
技術的にはRubyの方がコードを簡潔に書けて好きなんですが、Rubyで作ってしまうと専用サーバかVPSかクラウド環境を用意しなければなりません。
国内の安い共用のレンタルサーバでもRubyのCGIモードはサポートされていますが、CGIモードではRailsなどのフレームワークは動作がかなり重くなります。
ですから、Rubyで開発したサービスを公開するには環境構築も自分でしなければなりません。
その点、レンタルサーバで動かせるPHPならば、ファイルを置けば動きます。ちょっとしたアイデアが浮かんでサクッとサービスを作って動かしたいという時にはPHPで実装するのが一番です。
意志力の消耗を防ぐ
大きな行動を起こすには強い意志力が必要です。PC上でサービスが完成した後に、サーバにデプロイするのってけっこう意志力が入ります。
「このサービスうけるかなぁ…」
「苦労して作ったのに誰も使ってくれないかも…」
などと様々な気持ちが湧いてきます。その上
「環境構築がめんどくさいなぁ…」
となると、さらに意志力を消耗します。PHPならレンタルサーバに置けばいいだけなので、意志力の節約になります。
クラウドソーシングの仕事の多さ
PHPを使う理由は、もう一つあって、クラウドソーシングで小さな仕事を受注する場合、その多くがレンタルサーバで動く小規模なWebサービス開発で、使用言語はPHPになります。
となると、使用言語をPHPに統一して、知識を集中させたほうが学習効率がいいのかなと今は思っています。
とはいえ、このような経済効率よりも気分良くコードを書けることも重要なのでやっぱRuby使いたいなぁと気持ちが揺れています。
ですから、ポリシーを一つに固めるのではなく、その時々に自分が感じたインスピレーションに従っていけばいいんじゃないかと思います。
目的によって使い分けるのが良い
- 言語の技術的優位性を優先して生産性を上げたい → Ruby, Go, Scala, node.jsなど
- サービスの公開がかんたんな方がいい → PHPなど
- 仕事で幅広く使えるものがいい → Java, PHPなど
それぞれの目的によって、使い分けられたらいいですね!