「Webサービスを個人開発したいけど何のプログラミング言語にしようか悩んでいる」
「長い間仕事で使ってきたプログラミング言語はPHPだけどRubyを勉強してみたい」
「Javaは得意だけど個人開発にJavaは大がかりでは…」
こんな疑問に答えます。
本記事の内容
- Webサービスを個人開発する時のプログラミング言語の選び方
- まだ使ったことがない、もしくは少しさわったことがある程度の言語で開発しても大丈夫か
書いている人の実績
- Webサービスを個人開発してリリースした2009年から10年間運用
- 個人開発したサービスの総PV6億突破
- 一番得意なプログラミング言語はJava
まずは一番得意なプログラミング言語で作ろう
この記事のタイトルにもあるとおり、これがほぼ結論ですが、一番得意なプログラミング言語で作るで決定です。
「新しい言語を学びながら作りたい」という方もいると思います。断言します。それはやめましょう。
なぜそう言い切れるのか、個人開発サービスをリリースして10年間運用している自分の経験から解説していきます。
個人開発=”モノ作り”と勉強は分けて考えるべき
Webサービスを個人開発する、それは何を目的にした行為でしょうか?
それは自分が思いついたアイデアを形にすることです。
「個人開発をしながら新しい言語やあまり詳しくない言語を勉強したい」
このような気持ちはすごく分かります。
ただ、少し考えてみてください。まだ慣れない言語で開発を進めたときに、不安はないですか?
自分が仕事で使っているような一番得意な言語だと簡単に思いつく実装が、不慣れな言語だとなかなか実装ができません。
複数の言語を学んだことがある方なら容易に想像がつくと思います。
今からすることは新しい言語の勉強ではありません。
新しいサービスを作り出すことです。
例えば仕事で新しいサービスを作るときに、4人のチームが組まれたとします。
その時、誰も詳しい人がいない言語で実装しようとは思わないでしょう。
「2人得意な人がいて残りの2人はまだそんなに慣れていない」
これだとまだ上手く進みそうですね。
しかし、今からやることは全てあなた1人で行うことです。
あなたのパフォーマンスが100%反映されるのが個人開発です。
これが個人開発=”モノ作り”と勉強は分けて考えるべき理由です。
得意な言語の方が結果が見えるまでが圧倒的に早い
得意な言語だと実装してから動くまでのスピードが圧倒的に早いです。
外部のAPIを叩くためにURLコネクションを張ったり、DBにアクセスするためにO/Rマッパーを使って実装する方法を、あなたは既に得意な言語では知っているはずです。
Webサービスだとアウトプット(成果物)は基本的にブラウザに映し出される何かになると思います。(バッチなど画面に映らないものももちろん沢山ありますが)
そこまでの課程を圧倒的に早めてくれるのがあなたが一番得意とする言語です。得意な分野で攻めましょう。
得意な言語だと詰まっても解決までが早い
仮に実装時に詰まったりハマったりしても、得意な言語だと解決方法が分かりやすいです。
どんな風にググればよいか、どこのサイトにいけば情報がありそうかがある程度直感的に分かります。
僕の作ったサービスはJavaで開発
ちなみに僕が作っているWebサービスはJavaで開発しています。
「個人開発でJavaは大がかりでは…?」
そのように思う方もいるかも知れませんがまったくそんなことはありません。
確かにRuby on RailsやPHPでLaravelを使った開発に比べて、全体的に重量感があることは否めません。
しかし、自分が一番得意な言語はJavaだと分かっているのでJavaで書きます。
僕はこの個人開発スタイルでサービスを生み出して10年で6億PVを達成しました。
慣れていない言語で開発した結果…
これは僕の経験談です。
僕の一番得意とする言語はJavaです。PHPとRubyはそんなに得意ではありません。
しかし、「これからはRubyの時代!Javaはオワコン!PHPは甘え!」
などとほざいていた時代がありました。
(JavaはオワコンではないしPHPは甘えでもなんでもありません、あしからず)
意気揚々とRubyとRuby on Railsの技術書を買い、さあサービスを作ろうとした時に気付きました。
「なんやこれ…全然進まへんやんけ…」
実装する時に何をするにしても、常に技術書片手、常にググりながら進めなければいけないのです。
もちろん新しい言語を学ぶことが目的であれば、これが常ですのでまったく問題はありません。
しかし今、自分がやりたことは新しいサービスを作り出すことです。
結局そのサービスは開発を終えることはなく、単なるBitbucketの肥やしとなっただけでした…
まとめ
- 一番得意なプログラミング言語で作ろう
- 個人開発=”モノ作り”と”勉強”は分けて考えよう
個人開発で一番悲しいのはリリースできずに終わってしまうことです。
サービス開発への情熱や思いが消えても、書いたコードはそこに残り続けます。GitHubやBitbucketの肥やしとならないよう、最後まではぐくめるように一番得意な言語で攻めまくりましょう。
それではよい個人開発ライフを!