Posted at

これから学ぶ言語についてのまとめ

More than 1 year has passed since last update.


はじめに

これからプログラミングの勉強を始めるにあたり、まず学ぶ言語の大枠を知るために調べたことを下記にまとめました。

(間違いがありましたらご指摘頂けますと幸いです。)


HTML

エイチ・ティー・エム・エル、Hyper Text Markup Language


  • WEBページを作成するために開発されたマークアップ言語のひとつ(プログラミング言語ではない)

  • 現在インターネット上で公開されているWEBページのほとんどがこの言語で作成されている

  • Hyper Text=ハイパーリンク(他の文書への参照情報)や画像などのマルチメディアを埋め込むことができる高機能なテキスト

  • Markup =見出しや段落など、文書の各部分がどのような役割を持っているのかを示すということ

  • この言語によって書かれた文章をブラウザが解釈し、WEBページを表示させている

  • 「HTML」「XHTML」「HTML5」などいくつかバージョンが存在し、各バージョンによって使用できるタグが異なる


CSS

カスケーディング・スタイル・シート、Cascading Style Sheets


  • WEBページのスタイルを指定するためのスタイルシート言語(プログラミング言語ではない)

  • 基本的には前述のHTMLのようなマークアップ言語と組み合わせて使用する

  • HTMLが文書の役割や構造を定義(=マークアップ)するのに対して、CSSはそれらをどのように装飾するのか(=スタイル)を指定する

  • スタイルはデザインやレイアウトなどの見た目に関するものから、音声による読み上げや印刷時の設定など様々である

  • バージョンは「CSS1~3」まで存在するが、各バージョンの後ろの番号がレベルを表しており、レベルが上がるごとに表現できるスタイルが増える


javascript(JS)

ジャバスクリプト


  • WEBサイトやWEBアプリ・サービスなどを開発するために広く使用されているプログラミング言語

  • スクリプト言語なため、ソースコードをコンピュータの理解出来る言葉に変換する作業であるコンパイルが必要なく、そのまま実行できる簡便な性質をもっている

  • 主に動的なWEBサイトの構築やリッチインターネットアプリケーションの開発に用いられる

  • WEBブラウザ上(=クライアントサイド)で動作するのでサーバーに負担をかけることなくスクリプトが実行できる

  • なお、名前は似ているがプログラミング言語のJAVAとは異なるものである


Ruby

ルビー


  • 1993年にまつもとゆきひろ氏(通称 Matz)によって開発されたプログラミング言語

  • すべてのデータがオブジェクトとして表現されているオブジェクト指向のスクリプト言語である

  • 主にWEBアプリ開発、スマホアプリ(API)開発などに使われている

  • 他の言語と比べてコードを短く簡潔に書くことが出来るので、読みやすく開発スピードも速い

  • 柔軟な言語であり、ユーザーが自由に言語の一部分を変更することが出来る

  • 高い可搬性で多くのOSで動作する

  • フリーソフトウェアであり無料で使え、かつコピー・変更・再配布が自由である


Ruby on Rails

ルビーオンレイルズ


  • Ruby言語を使ったWebアプリケーション開発のためのフレームワーク(※)


    • ※開発において、雛形を予め備え効率化するための仕組みのこと



  • 「同じことを繰り返さない」、「設定より規約」といった思想のもとに開発されたフレームワーク

  • MVCアーキテクチャという設計法に基づいて、Model・View・Controllerに分けて開発を行うことで、効率良く生産性の高い開発が出来る

  • フレームワーク=枠組み、なのでRuby on Rails単体でアプリケーションの開発は出来ない。HTML、CSS、Rubyなどの言語と組み合わせて使用する


おまけ

言語について調べている時に気になった違いがあったのでついでにまとめました


1.スクリプト言語とコンパイラ言語


  • 前提として


    • プログラムは人間が書いた命令文をコンピュータが解釈して実行することで動いている

    • 解釈させるには命令文を機械語に翻訳する必要がある

    • 翻訳の方法は2種類あり、その方法によって「スクリプト言語」と「コンパイラ言語」に分かれる




スクリプト言語

ソースコードを逐一翻訳しながら実行する(JavaScript、Ruby、PHP、Python、Perlなど)


  • 実行速度はコンパイラ言語に劣るが、ソースコードを書き換えればすぐに結果が反映されるので手軽に扱える


コンパイラ言語

ソースコードを事前にコンパイルして翻訳しておく(Java、C、C++、C#など)


  • 事前に効率よく処理できる機械語に翻訳することによって、高速で動く

  • コンパイルの際にエラーチェックも出来る


2.フレームワークとライブラリ


  • 全体を制御するコード(プログラムの流れの主動)がどちらなのかで分かれる


    • フレームワーク=フレームワーク側が全体をを制御するコードで、そこから個別に機能を呼び出して使う(仕組みを提供)

    • ライブラリ=開発者側が全体を制御するコードを記述し、ライブラリの提供する個別の機能を呼び出して使う(機能を提供)




フレームワーク

(Ruby on Rails、CakePHP、Bootstrap、Angular.jsなど)


  • Ruby on Railsの項目で前述したが、開発において、雛形を予め備え効率化するための仕組みのことを指す

  • 良く必要とされる汎用的な機能をまとめてルール化し、そのルール(枠組み)に沿って機能を追加したり拡張したりすることが出来る

コードの書き方がルールによって統一されているので、複数人で作業する場合でもコードに個人差が出にくい

カスタマイズに限界があり、枠組みから外れたことをしようとするとかえって不便となる場合がある


ライブラリ

(jQuery、React、標準Cライブラリなど)


  • 様々な機能を他のプログラムから呼び出して利用できるようにパッケージ化した部品のようなもの

  • ライブラリ単体では起動せず、他の実行ファイルに連結し必要な部品を組み合わせて利用する

自分で作ってまとめたものもライブラリであるし、他人(個人)や企業などが作成して配布しているものもある