サムネ

Markup Language と hello,world!

プログラミングを勉強したことのない友人に"HTML"とはなんぞ?と聞かれたことがあります。

未知の専門用語を一つ言われるより、知っているであろう単語をたくさん並べた方が分かりやすいと思い、「ホームページを作るためのプログラミングの言語」と答えた。

嘘も方便というやつで多少間違っていても伝わればいいのであるが、正しくは「文字列を取り扱うことに長けたマークアップ言語」のほうがしっくりくる。(語弊はあるかもしれない)

最近、マークアップ言語を集中して学習しているため上記のことを思い出し考えていたわけですが、プログラミンング言語とマークアップ言語にやはり大きな違いがあるなと実感しました。

そもそも用途も書き方も全然違うのであるのですが、大きく分けて3つの違いがあると思いました。

①言語の種類と目的

プログラミング言語は、"python, c, c++, java"などのことで、マークアップ言語は"HTML, CSS"などのことです。

一つの言語の中にプログラミング言語という側面とマークアップ言語という側面があるわけでなく、プログラミング言語に分類される言語とマークアップ言語に分解される言語があるわけです。

プログラミング言語は計算や処理などをする目的をもっていて、マークアップ言語はデザインを調整したりする目的があります。

②コードの書き方

だいたい新しい言語を学ぶ際にhello,world!と表示させたくなるのは仕方ないことだと思いますが、様々な言語で実装してみたいと思います。

まずはpython

print("hello,world")

続いてc言語

#include<stdio.h>
int main(){
    printf("hello,world!");
    return 0;
}

さらにC++

#include<iostream>
int main(){
    std::cout << "hello,world" << std ::endl;
    return 0;
}

最初は呪文にしか見えないが、今見てみると論理的に考えに基づいてできているなと思います。

では、HTMLで書くと

<!DOCTYPE html>
<html lang="ja" dir="ltr">
 <head>
   <meta charset="utf-8">
 </head>
 <body>
   hello,world!
 </body>
</html>

となる。一見文字が多くて一番難しそうではありますが<body>と</body>で囲まれた部分を表示しているだけです。

プログラミング言語もprint("")で挟まれた文章を表示しているのであるが大きな違いは関数という概念があるということであると思います。詳しく書くことはしませんがHTMLはただ単に文字列を表示しているだけのイメージを受けました。

③コードを書く時の考え方

まず、プログラミング言語を使うときに何を考慮して書いているかを言葉にしてみると、「自分の欲しい機能がちゃんと動いているか」「いかに自分が楽できるか」が思いつきました。動かないと書いた意味がないし、動いたとしても効率的に扱えないものを生み出してしまうと意味がないと思います。

一方、マークアップ言語を使うときに考えることは「見栄え」に尽きると思います。人が見てどう思うかという点を考えることができればマークアップ言語を使うことに意味があると思います。


最後に

今回はhello,world!の実装から見たマークアップ言語という観点で書いてみました。HTMLでhello,world!を実行するのは簡単ですがただ表示することにあまり意味がないなと感じました。文字の書体を変えたり色を変えたりすることが本質なのでプログラミング言語とは大きな違いがあるなと思いました。友人がいつ違いの分かる漢になるか楽しみであります。


この記事が気に入ったらサポートをしてみませんか?