2016年のWebスタートアップあたりを視野に入れた初めての開発言語選び

僕、もともと新卒で入社会社した会社が機械制御だったんで、開発言語と言われても、絶対みんな知らない言語とか使ってるんですよね。

スマホでGUIプログラミング?〜ラダー言語の思い出

それに対して、いわゆる金融のシステム作ったり、Webサイト作ったり、機械学習の研究したりする開発言語って、割と技術が似ているが故に話が混同しがちなんだけど、以下のランキングを見て、開発言語の用途という前提条件があってないと、カジュアルに比較しちゃダメなんだなって思い知らされた。

ITエンジニアがこれから重要になると思うプログラミング言語TOP10

■初めて習得する人に一番おすすめのプログラミング言語ランキング
最初の質問として、「初めて習得する人に1番おすすめのプログラミング言語」を聞いたところ、Javaが17.4%で1位となり、Cが14.4%の2位、Visual Basic.NETが7.1%の3位と続いた(事前調査において6名以上が「習得または勉強したことがある」と回答したプログラミング言語26個から選択)。上位の開発言語についておすすめしたい理由を聞いたところ、「書籍が豊富」「ネットでの情報が多い」など、学習のしやすさ、使用頻度の高さを挙げる声が多数見られた。また、「他の言語に応用できる」など、言語としての汎用性に言及する声も見られた。

カジュアルにITエンジニアと言っても世界が違うんだなーと思った次第。Web系で、いきなりJavaはないもんなぁ。

でも、成功したサービスが行き着く先がJVMかなって思ってるところはあるので、Javaが重要だという部分は同意です。

あと、これ見て思ったけど、

PHP初心者は最低限これはやっとけ – 開発に入る前編

PHPってカジュアルでいいよね。インターネットの複雑性において、カジュアルに動けるって結構重要。

昔、Twitter apiがバギーだった時、突如日付のフォーマットが変わったことがあったんだけど、Javaとかでパースしてるアプリは、ぬるぽとかで落ちてたのに対して、strtotimeとかでアバウトに変換してたモバツイは落ちなかった。文字列ベース最高w

型のある言語だと、そういうのに弱い。アプリケーションとしての完全性を求めるなら落ちたほうがプログラマ的には嬉しいんだけど、サービスを継続して、ビジネスをしたい、というニーズにおいては、少々バグっても、動いてくれるという裁量があったほうがうれしい。

そういう不確実性に対してのあいまいさをどう許容するかできないか、ではないかねぇ。

という前提で、はじめて書くけど何の言語が良い?って聞かれたら、

apacheとかPHPって歴史が長いだけあって、エラーメッセージのユーザビリティとかも結構高いし、始めてWeb作るなら、とりあえずPHPをオススメするかなぁ。エラーとかドキュメントのユーザビリティが低いという理由で、言語習得に苦労する言語はあんまりオススメしにくいかも。

G’s Academyのメンタリングの場合は、成果物が見えてきた段階で、コードレビュー1回やってあげて、XSSとかSQLインジェクションとかの教育をしてたかな。最近は何も聞かれないのであれだけど一期生の人とかはそうしてた。

今どき、SQLインジェクションは大体問題ないので、あるとするならXSSの方かな。

開発言語は「○○向けに向いてる」ってのは、大体、プログラマが完璧な人間であることの前提において、どの技術が適切か?という話になってることが多くて、読み物としては面白いけど、まあそんなこと気にせずにやりたいようにしてよってのが本心。

そもそも初めて書いたコードなんて、すぐに書き直すから、別にどうでもいいっす。何か前に進んで、もっとああしたくなった時に会話した方が、よっぽど良い会話ができるので、まずは書ける言語で書け。(とはいえ、言語選択間違ってると思ったら、成功する前にビジョンを持って変えようね。時間が経てば立つほど直せなくなるから)

なお一応、今はブーム的にRailsが主流だと思っているので、Railsどう?って聞かれたら以下の2点は答えてます。

1.RubyがわからないとRailsでロジックがかけないから、Rails本をそこそこ理解したら、Rubyをすぐに勉強する。全部じゃなくていいけど、何かを書きたいものを書く場合は、Rubyの方が重要になります。Railsだけだと本に書いてあるもの以上のものは作れない。

2.Railsは最新についていく覚悟が必要だから、あんまりオススメしないよ。ちゃんとRailsに向きわないと割と面倒くさい。でも、そういうものだとコミットする気があるならいいけど、もしサービスが放置状態になると、修正コストが上がって面倒くさくなるよ。

という感じで、一応、選択肢としての覚悟を聞いておきます。G’s Academyのカリキュラムとかだと、ちとRubyまで勉強してると時間がなくなるので、経験がないのであれば、言語習得に追われて、大切なサービスの方を作れない可能性があるので、その人のレベル感は問うかな。

でも、一番大切なのは、やりたい気持ちで!

ぶっちゃけASPであろうが、PHPであろうが、Rubyであろうが、お金持ちになるや否やだけにはあんまり関係ないようなので。WEARのサーバサイドがWindowsのclassic ASPだと聞いた時は耳を疑ったわ。と考えると、WEBってあんまり進化してないよね。所詮Webはデータベースのフロントエンドと言ってた人がいたけど。それ故にUX designに喜びを持てる方が圧倒的に大事ってことなのよね。

今後、AIのようなデータ解析連携とか、チャットやbotのようなsocketプロセス管理とかしだすとまた話変わってくるんだろうけどね。あと非同期のイベント駆動とかさ。そういう意味では2016年後半はまた違ってるかもしれないけど、とりあえずWebの入り口としてはこんな感じ。

とっとと駆け抜けていってください。

【PR】ご意見、感想などは是非、mstdn.fmのローカルタイムラインでお聞かせください