Web系の開発をするためのお勧め言語
はじめに
私が最初にプログラマーを目指したのはWEBサービスを作りたくなったのが始まりで、
独学でプログラミングの勉強を始めました。
その時に学んだのがC言語だったのですが、CでWEBサービスを作る事はそもそも困難です。
これに気づいたのは学習を始めて2ヶ月くらい経ってからのことで、完全に無駄ではなかったのですが、やる気が削がれました。
今回はWeb系、アプリ系(iOS,Android)に絞ってどのような言語を使われているのか、どのような特徴があるのかを説明していきます。
WEB系
WEBサイトを作るには大前提として以下の言語が必要です。
主にWEBサイトの見た目の部分を作る言語たちになります。
それぞれの言語はprogateやドットインストールでも学べます。
言語名: HTML(HyperText Markup Language)
用途 : レイアウトの枠組みを組む
言語名: CSS(Cascading Style Sheets)
用途 : レイアウトの枠組みに色や形などのスタイルを組み込む
言語名: JavaScript
用途 : 作ったページに対して、アニメーションなどの動的な変化を組み込む
これらの言語はクライアント側(見る側)で時刻する言語になっており、実際にWEBサーバから、
htmlファイルやjavascriptファイルを各ブラウザに渡して、ブラウザの機能でこれらの言語を動かすことになります。
サーバサイド側から実行するWEBサーバ側の言語というものもあります。
サーバサイド側の言語の役割としては、色々ありますが、主にDBへのアクセスやユーザに動的にデータを返すことが挙げられます。
動的とはどういうことかというと、https://example.com/mypageというURLがあった時に、マイページの内容はログインしたユーザによって変わります。
これはサーバ側でユーザに合わせてデータを取得してきているからです。
次に紹介する言語は動的な部分を担う言語になります。
PHPで手軽にWeb開発
まずはPHP(ピーエイチピー)をご紹介します。
PHPはサーバサイド言語でDB(データベース)へのアクセスやHTMLを動的に作成するのに優れています。
例えば以下のように時間によってHTMLの内容を変えることができます。
ユーザは時間によって、異なる表示が見られるようになります。
<?php $time = intval(date('H')); if (4 <= $time && $time <= 12) { ?> <p>おはよう。</p> <?php } elseif (12 <= $time && $time <= 20) { ?> <p>こんにちわ。</p> <?php } else { ?> <p>こんばんわ。</p> <?php } ?>
PHPのメリット
1 導入の手軽さ
PHPはxamppやmamppというツールを使えば簡単に実行環境を作ることができます。
2 言語の難易度
また言語的にも型などの制約が少なく記述の自由度が高いです
また学習難易度も他の言語と比べて圧倒的に簡単です。
PHP 入門などと調べれば、情報量も多くわかりやすいサイトもたくさん見つかります。
3 フレームワークが豊富
codeigniterやlaravelなど1から全ての機能を作らなくてもDBからのデータ取得、保存、更新、ページングの実装など全ての機能が一つになったフレームワークが豊富です。
言語的に柔軟でもフレームワークを使うことで書き方を統一することができるので案件や作るものによって柔軟に対応できます
xampp 参考サイト https://xn--web-oi9du9bc8tgu2a.com/windows-xampp-install/
PHPのデメリット
1 型がないのでバグに気づきにくい
PHPには型がありません。文字列の変数にも数字は入れられるし、配列の中に、オブジェクトや数字、文字を混在させることが出来ます。
これによって数字が入ってると思って行った計算処理が文字に適用されてしまってバグになったなどの問題が起こる可能性があります。
プログラムを一人で書いていたら用途を覚えているのかもしれないですが、複数人のプロジェクトになると、そういった問題は起こる可能性があります。
2 実行速度が遅い
PHPは書いたその瞬間から実行できます。
しかしコンパイル型といわれる言語は書いたプログラムをコンピューターの読める形に変換しなければなりません。
PHPでは実行時にその解読がされているので
速度的に少し遅くなっています。
リアルタイムで複数処理を行わなければならないプログラムには不向きな言語になるかと思います。
一般的なWEBサイト(SNSなど)ではさほど問題になりません。
スタートアップ系の企業で働く Ruby(Ruby on Rails) でWeb開発
次はRubyという言語をご紹介します。
この言語はそれだけでWEBサイトを作ることは難しくRuby on Railsというフレームワークを使ってWEBサイトを作ることになります。
スタートアップ系の企業で使われる事が多く、rails wayとよばれる統一した書き方で、意志疎通が取りずらい環境でもフレームワークの固い規約により同じようなコードを書くことが可能です。
Ruby(Ruby on Rails)のメリット
1 自由な働き方に繋がりやすい
Railsを使っている企業はスタートアップ系企業が多いです。
業種にもよりますが、自宅勤務や時短勤務などが可能な会社も多く、自由な働き方を求めるならRailsを学ぶことはオススメです。
2 早く作れる
Railsはコマンドやライブラリ一つで、WEBでよく使用する機能(ログインやページング)などが導入できてしまいます。
作りたいサービスなどがあって、時間もない場合Railsがサービスリリースまで一番早く実現できてしまう可能性が高いです。
3 Rails wayで実装方針を統一
Railsを使用したプロジェクトは開発コードを統一的に書きやすいです。
自由すぎるコードでルールのない状態で複数人で開発すると、個々人が好きなように作るのでスパゲティコードと呼ばれるぐちゃぐちゃで読みにくいコードになってしまいがちです。
読みにくいコードはサービスを成長させる妨げになります。
Railsを使って成長しているサービスはたくさんあります。
このことからもRailsはWEBサービスを作るフレームワークとして優秀なことがわかります。
参考サイト
Ruby(Ruby on Rails)のデメリット
1 実力がつきにくい
ログイン・認証の実装・ページングの実装・GETやPOSTの概念など
本質的な部分で理解しないとセキュリティ事故を起こしたり、新しい概念(新しいログイン方法の実装など)の理解ができなかったりなどという問題が起こります。
Railsはこれらの処理があまりにも簡単に実装できてしまいます。
他の言語の案件になると、途端にそれらができなくなってしまったりなどの危険性があります。
2 実行速度が遅い
PHP同様、実行速度が遅いです。
色々な処理が自動化されている分、PHPよりも遅くなっています。
しかし一般的なWEBサイトなら、速度的には問題なく大型のサービスでも導入されているのでそこまで心配することはありません。
3 型がないのでバグに気づきにくい
PHPと同様です。
手堅く JavaでWeb開発
Javaは基幹システム・Androidアプリ,WEBサイトなど幅広い分野で使われているコンパイル型の言語です。
Javaのメリット
1 型があるので堅く作れる
バグ発生率はこれだけで大きく下がります。
大型案件で大人数で開発を行う場合、型があることのメリットは大きいです。
2 動作が速い
一度、コンピュータに理解できる形にプログラムを変換するので実行速度が早くなります。
フレームワークによりますがjavaとphpの実行速度は2倍以上差があると考えてよいと思われます。
3 その他のアプリ開発にも使える
JavaはAndroid SDKを使ってAndroidアプリの開発やWindowsやMacで動くGUIアプリの開発など幅広く使用できます。
Javaを学ぶだけであらゆるものが作れるようになるので、学習した後のコストパフォーマンスは高い言語だと思います。
Javaのデメリット
開発の時間がかかる
Javaはコンパイル時間がかかるので、書いたらすぐに動くRubyやPHPと比べて
書いたコードを実行するまでの時間がかかります。
上記の理由で開発時間がかかります。