こんにちは。さんたくです。
今日は前回の記事内でも書きましたが、それぞれのプログラミング言語にフォーカスを当てて説明していきたいと思います。
※前回の記事はこちら
プログラミング言語の種類
プログラミング言語の種類というよりはそのコンパイル(機械語への翻訳)や実行方式の種類を上げていきます。
前回も記述してましたが、昨今は技術の進歩とともに境が曖昧になっているような気もしますが、わかりやすくするために分けていきます。
インタープリター方式(若干違うがスクリプト言語ともいう)
相変わらずのWiki引用ですが、説明としては1文のみです。
プログラミング言語で書かれたソースコードないし中間表現を逐次解釈しながら実行するプログラムのこと。
要するに...実行環境さえ用意すれば特にコンパイル処理を挟まずに実行できるプログラミング言語のことです。
環境を用意したらぱっとプログラムを書いて実行すれば、プログラムした処理が実行できる手早さがあります。
説明から予測できる方もいらっしゃるかと思いますが、後にあげるコンパイラ方式の言語とは実行速度に差が出ることが往々にしてあります。
そのインタープリター方式の中でも代表的な言語とその特徴をあげていきます。
PHP
WEBアプリケーション開発では必ずといってもいいほど選択肢に上がる言語になりましたね。
前回の記事に載せてますが、検索プログラミング言語第7位に入っているぐらいメジャーな言語です。
広く使われているオープンソースの汎用スクリプト言語で、WEBアプリケーション開発に特化した言語です。
開発環境の用意のしやすさ、動作させるまでの時間の短さもあって初心者が勉強するのには挫折しにくい言語になってると思います。
※プログラムを知らない方でもhello, world!表示までなら2時間かからないと思います。
また大体のレンタルサーバサービスはPHP導入が簡単にでき、インターネットへ公開するハードルが低いのも人気の1つですね。
逆に苦手なことはデザインやWEBサイトのページに動きを付けたりすること。
高速処理が必要な機能を作ったりするのも苦手(工夫が必要)ですね。
仕事でPHPをやっていこうと思ったときにはPHPだけじゃなく、HTML、Javascript、CSS、フレームワーク(CakePHP、Laravel等)、データベース(MySQL、PostgreSQL等)なども一緒に勉強したほうが即戦力になりやすいですね。
やることは多くなるけど、できることが格段に増えるので、LAMP(Linux、Apache、Mysql、PHP(Python、Perl)環境で勉強するのがいいと思います。
Python
PHP同様に前回の記事で検索プログラミング言語第3位に入っているぐらいメジャーな言語です。
こちらもPHP同様にWEBアプリケーション等を構築できる言語になります。
ただ、PHPと違うのは、WEBアプリケーション特化ではなくほかにも機械学習のプログラムに使われたり、IoTのプログラムに使われたりと利用用途は様々です。
今話題の機械学習やIoTといったものに関わっていきたいという人はPythonを勉強していくとよいと思います。
コードが非常にシンプルで文量も少なく、書き方の選択肢が多くないという特徴があります。
また、オフサイトルールなるものがあり、これによって誰が書いても同じようなコードになるため、他人が書いたプログラムでも読みやすいのが特徴です。
ライブラリやフレームワークも充実しており、youtubeやEvernote、InstagramはPythonで作られていることからもわかるように何かに特化している言語というよりはこれ1つでいろいろ作れる言語なの
で、これから勉強する人にはかなりおすすめな言語です。
Python + Django でWEBアプリなどは簡単に作れるかと思います。
Ruby
検索プログラミング言語のランキングには入っていませんが、こちらも有名な言語です。
まつもとゆきひろ氏より開発された他オブジェクト指向言語です。
※ちなみになぜRubyかというと開発者のまつもろゆきひろ氏の会社の同僚が7月生まれで誕生石がルビーだったからそうです。
Rubyを利用する上で欠かせないのがRuby on RailsというWEBアプリケーションフレームワークですね。
これを使うとWEBサイトやWEBベースのシステムを効率よく開発できるといわれています。
Rubyはテーマとして「Enjoy for Programing!」を掲げており、プログラマーにとって直感的に実装したい機能をコーディングできるため実装しやすいプログラミング言語になっています。
また前述した「Ruby on Rails」はコマンド数回でWEBサイトを自動生成することが出来るため、開発コストの大幅削減を実現しているため、企業で多く採用されている言語です。
Rubyを語る上で欠かせないのは開発者が日本人であることですね。
あまり関係ないと思われがちですが、結構重要なことですよ。
開発者が日本人のため開発公式が日本語(誤訳がない)で書かれていますし、有益な情報はいち早く手に入り活用できるということが往々にしてあると思います。
javascript
ウェブブラウザ上で動作するため、上記3つとは利用用途が異なる言語です。
※上記3つはサーバで動作する。
特にWEBサイトをリッチな見た目で動作させたいという場合は必ずと言っていいほど利用される。
また非同期処理や画面のデータを判断して処理を変えたりできるので他の言語ではできないようなことが出来る言語になります。
昨今はWEB開発で絶対的に用いられる言語であり、WEB開発をしたいけど、何を勉強したらいいかわからないという方は、まずHTML、CSS、Javascriptを勉強してみてください。
一通り覚えて実践できるとかなり楽しくなってくるとおもいます。
上記ではウェブブラウザ上で動作するという記述があったと思いますが、Node.jsを利用することでブラウザ以外でも動作させることが出来、
サーバの処理もJavascriptで動作しているという状態を作ることが可能になる。
サーバとクライアント(ブラウザ側)で言語を分ける必要がないため、それぞれの言語エンジニアである必要がなく、サーバとブラウザの利用言語が同じなためプログラム相性が良くなるという利点があるため、現在注目されている言語になります。
また、現在はAndroidとiOSが多くを占めており、OSが違うのでそれぞれ動作するアプリケーションを別で作成することがあるのがネックでした。
Hybrid Appsという形でHTML5+CSS+Javascriptの組み合わせでOSに依存する形ではない両方で動作するアプリケーションの作成が可能になりました。
これによって1つのアプリを2つの環境用に作成することがなくなり、単純に対応する時間が半分になるため、今後企業などでも導入が進んでいくことになると思います。
補足
HTML(Hyper Text Markup Language)
WEBサイトの構築経験がある方はHTMLが真っ先に上がる人もいるかもしれませんが、
HTMLはLanguageとあるようにそれ自体が言語になり、厳密にはプログラミング言語ではありません。
※マークアップ言語に分類される言語になります。
ただ、HTMLはWEBに欠かせない言語であることは間違いないので、
どんなプログラミング言語を勉強するにしても覚えておいた方がよい言語になります。
まとめ
今回はインタープリター方式の言語をまとめてきましたが、
上記以外にも言語はたくさんあり、これからプログラミングを始めたいと思っている方への一助になればと思います。
管理人的にはHTML5、Javascriptから勉強することをお勧めします。
いきなりPHPもよいですが、WEBページ、サイトがどのようにして動いているかなどの基本(基盤)がわかるようになりますので、習得してから他の言語を勉強するほうが理解が速くていいと思います。
※Javascript自体はPHP、Pythonに比べるととっつきにくい印象があるので、今期は必要になると思いますが…
ただ、WEBに限らずプログラムの世界は日々進化しており、新しい言語、手法などは日々生まれている状態です。
その中で1つの言語に特化することがいいかはわかりませんが、まずは1つの言語を習得する(調べれば組み方がわかるレベル)のが良いと思います。
次回はコンパイル方式の言語を紹介していこうと思います。
ではでは~(*´ω`*)
コメント