結局プログラミング言語、どれが良いの!? 役割や分類を徹底解説!
皆さんこんにちは🌸PLEN Roboticsインターン生の鈴木です!
桜が満開の季節ですね、ここで桜の雑学をひとつ。
川沿いの桜並木をよく目にすると思いますが、なぜこのように桜が多く植えられているか知っていますか?
それは地盤を固めるため。江戸時代、川の氾濫によって地盤が緩みやすかったため先人たちは川沿いに桜を植えました。そうすることで毎年多くの人が花見に訪れ、自然と土手を踏み固めてくれるんじゃないかという作戦だったんですね。実に賢いですね!
それではさっそく本題に参りましょう(笑)
今日はプログラミング言語について。
コンピュータを動かすために必要なプログラム。分類や役割をしっかりと勉強していきましょう!
◯プログラミング言語とは
まずプログラミング言語とは、コンピュータに指示を出すための言葉のこと。
一口にプログラミング言語と言っても、色々分類があります。まず分けられるのは高水準言語と低水準言語。
◯高水準言語と低水準言語
高水準言語は人間の感覚に近く、低水準とは機械に近いこと。
ここで言う人間の感覚とは、英語と数字で書かれたプログラムのことです。
機械に近い言葉というのは、要するに2進数の羅列です。単なる数字の羅列でできたものが機械語ですが、それを記述するのは人間にとっては大変なことですよね?
そこでニーモニックと呼ばれる命令語で記述したものをアセンブリ言語と言います。アセンブリ言語とは機械語に近い=低水準言語の総称のこと。
要するに高水準と低水準の違いは、人間の言葉に近いのか、0と1の数字だけでできているか、なんですね。
◯コンパイル言語とインタプリタ言語
続いても聞き慣れない言葉が続きますが、頑張りましょう..!
先程お話した高水準言語もさらに分類分けすることができます。
つまりこんな感じです。
コンパイル言語とは、人間が書いたプログラムをコンピュータが理解できる形式、つまり機械語に変換し、その機械語になったプログラムを実行する言語のこと。
翻訳することをコンパイルと言います。
イメージで言うと、英語の本を一度日本語に直し、その本を読む感じですね!
デメリットとしてコンパイルする手間がかかりますが、実行速度が速いというメリットがあります。
例えば、C、C++、Javaなどがコンパイル言語として挙げられます。
インタプリタ言語とは、プログラミング言語の命令を一行ずつ機械語に翻訳しながら実行するプログラムのことです。
翻訳しながら実行されるため実行速度が遅いというのが欠点ですが、プログラムをすぐに実行することが可能な上、上手くいかなかった場合にその行だけをすぐに修正することができます。
例えば、JavaScriptやPHPはインタプリタ言語です。
プログラムをする上で以上のことを詳細に覚える必要はないので、こういった分類があるとだけ知っておけばいいでしょう!
◯フロントエンドとサーバーサイド
実際にどのようにプログラミング言語は使われている?
この疑問に答えるためには、フロントエンドとサーバーサイドについて理解しなければなりません。
まずユーザーのPCやスマホ画面の表示や操作に必要な部分のことをフロントエンドと言います。またデータの読み込みや保管を行う部分はサーバーサイドと言われています。
フロントエンド言語は、ほぼ全てのWebサービス開発に共通して使用されます。
代表的なものとしてHTMLが挙げられます。これはタグでマークをつけて文字に意味を与えるもの。こうした言語はマークアップ言語と呼ばれます。
CSSはHTMLもマークを装飾するスタイルシート言語と呼ばれます。
他にはJavaScriptもメジャーなフロントエンド言語と言えます。
次にサーバーサイド。これは機能に応じて様々なものが使われます。
例えば、FacebookはPHP、食べログはRuby、YouTubeはPythonが使われています。
サーバーにHTMLファイルを入れておけば何かを表示することはできます。しかしログインなど、サーバーにあるデータを取り扱う処理をしようとするとSQLというプログラミング言語が必要になります。
(また知らない言葉が出てきました..。)
SQLとは、データベース言語の中で最も普及している言語で、データベースからデータを取り出したり検索したりするのに使われる言語です。
ここで疑問。よく聞くPHPとかPythonはどこで出てくるの?
これらサーバーサイドの言語はSQLによって取り出したデータを加工したり表示するのに使います。例えば、何かにログインするときにはIDとパスワードを入力しますよね。これらが一致していればログインできるという機能はサーバーサイド言語で作ることができます。
つまりWebサービスとは、サーバーの中にあるデータベースの中からデータを取り出して、加工、表示する処理の集合体と言えます!
『Webサービス』の仕組みを知りたい方はこちらから!
ちなみにですが、
顧客管理、請求、給料支払いなどの業務用システムはJavaやC言語、
IoT関連はCやC++が使われることが多いんだそうです!
今回の記事は以上です!いかがだったでしょうか。?
プログラミングについて少しでも詳しくなっていただけたら幸いです!
この記事を気に入っていただけた方はスキとフォローをお願いします✨
YouTubeの最新動画もご覧ください!