シティーボーイSEのオナ日記

誰かの心の支えになれるような記事とか、自分が思ったこととかを素直に吐き出すブログを目指しています。

大人は見るんじゃないよ!!

メタってなんぞ

先日、ボクの所属するエンジニアチームで定例会を行いました。

Twitterやってるので是非フォローを宜しくお願いいたします。(唐突な宣伝)

twitter.com

話を戻して、定例会のLTで発表した内容をブラッシュアップしてちょっとここに上げたいと思います。

書こうと思った動機

きっかけは唐突だった…

それは、平日、ボクが仕事をしているときに始まった一つの疑問から始まる。

こんなコードを見つけた。

f:id:banana5388:20190127163759p:plain

ん…?

f:id:banana5388:20190127164259p:plain

こんなんなりました。

そこからちょっと「メタ」って概念が気になったので、調べた内容をドバーッと放出しちゃいます。

メタについて

メタ(meta-)とは、「高次な-」「超-」「-間の」「-を含んだ」「ーを入れた」「-の後ろの」等の意味の接頭語。ギリシア語から。

メタ - Wikipedia

??

例えば、WWW上の文章は主にHTMLによって記述されているが、この場合、元の文章に対してHTMLがメタな言語であるといえる。また、HTMLそのものは英語によって仕様が規定されている。この場合、HTMLにとって英語がメタな言語であるといえる。

???

Wiki先生…よくわからんっす…

ただWikipediaの言い方よりかは分かりやすく解説してくれてそうなサイトを発見!

理解できるか!?

storymaker.click

うーんむ、なるほどわからん

とりあえず上記サイトを読んでみてわかったのが、「メタ」と「メタファー」は似ているようでちょこっと違うということ。

んで更にメタファーについて調べていくと、メタは「meta: -を超えて」、メタファーのファーの部分は「-phorein: (運ぶ)」に由来している、ということが発覚。

メタとメタファーは違いますぜ | yaginuma-no-bbc | 10827

まぁ要は「メタファー」は、元の概念を「超えて」対象に「運ぶ」ので、言い換えれば「暗喩」のことを言っています。

以下に例を示します。

f:id:banana5388:20190127165118p:plain

月がきれいですね」という言葉が、暗に相手への好意を表している、という夏目漱石の有名な逸話がありますよね。

つまりこの表現は「相手の好意へのメタファー」といえます。

f:id:banana5388:20190127165213j:plain

shiomilp.hateblo.jp

ちなみに調べてたらこんな画像もあった。クソワロタ


...では次に、エンジニア的な例を取ってみましょう。

「HTML」や「XML」はエンジニアであれば扱ったことがあると思いますが、これは言語のための言語、つまりは「メタ言語」という扱いになります。

ちなみにこの「メタ言語」という概念自体は以下の2種類に分けられます。

メタ言語 - Wikipedia

後者はHTMLなどに代表されるマークアップ言語がそれに含まれます。

前者の論理学における「メタ言語」とは、こちらもある意味言語のための言語。

簡単に言うと、ある言語に対する説明に使用する言語のことを「メタ言語」といいます。

例えば、英語の授業を日本語で受けるケース。

この場合のメタ言語が日本語になります。

対象言語とは何ですか? Yahoo!辞書によれば「ある言語について語るとき、そ... - Yahoo!知恵袋

では、ここからはメタへの更なる深堀と、一応SEなのでギークっぽい話もしたいっていうのがあるんで、マークアップ言語が生まれた理由とかをざっくりと追っていきます。

マークアップ言語について

マークアップ言語 - Wikipedia

マークアップ言語のアイデアは、ウィリアム・W・タニクリフというアメリカ出版界の大物によって提示されました。

https://d1k5w7mbrh6vq5.cloudfront.net/images/cache/65/02/41/650241a784e53959e93ba44fa9322730.jpg

そう、つまりマークアップ言語の源流は出版業界にあるのです。

そもそもマークアップ言語の「マークアップ」とは、出版の作業過程である「マーキング・アップ」から来ています。

どのような作業かというと、原稿用紙の余白に印刷に関する指示の記号を加える作業です。

これがないとどうなるか?

こんな感じですね。

f:id:banana5388:20190127165850p:plain

f:id:banana5388:20190127165909p:plain

まぁさすがにこれじゃ印刷会社の人困りますよね。

そのため、印刷に関する指示を余白に記載しておくことで、ここの文字はこう!とかここの行間はこのくらい空けて!とかを印刷会社の人に細かく指示することができたわけです。

f:id:banana5388:20190127165920p:plain

ではこの作業をコンピュータに置き換えてみましょう。

マーキング・アップで行っていた作業を、コンピュータに理解させるにはどうすればいいのか?



…そう、そこでマークアップ言語の登場です。

最初期のマークアップ言語はGML(Generalized Markup Language)といって、チャールズ・ゴールドファーブなどのIBM研究者によって開発されました。

http://history-computer.com/Internet/images/goldfarb.jpg

Generalized Markup Language - Wikipedia

どんな感じなん?

っていうと、こんな感じです。

   :h1.Chapter 1:  Introduction
   :p.GML supported hierarchical containers, such as
   :ol
   :li.Ordered lists (like this one),
   :li.Unordered lists, and
   :li.Definition lists
   :eol.
   as well as simple structures.
   :p.Markup minimization (later generalized and formalized in SGML),
   allowed the end-tags to be omitted for the "h1" and "p" elements.

HTMLがわかる人なら大体内容は分かりますよね。

こうしてこの「言語のための言語」、マークアップ言語が誕生しました。



…ちょっと話がメタからそれてしまいました。

では次に、メタを知ることのメリットを追っていきましょう。

「メタ」を知ることのメリット

メタを知ることで、規定概念に対しての俯瞰ができるようになると思います。

これはかっけー言い方をすると、「メタ的な視点」を手に入れることができるということです。

ちょっと言い方が難しいので、解説していきます。

まず、具体的にはどのような場面で役に立つのかを解説していきます。


ここで例に出したいのが、学校教育に対する有名なこの風刺画。

f:id:banana5388:20190127170730j:plain

matome.naver.jp

この画から読み取れるものとはなんでしょう。

私個人は以下のようなことが読み取れました。

  • 教師による画一的な教育の実施
  • 生徒の個性の排除
  • 自由思想の否定

こんなところでしょうか。

何が言いたいかというと、メタファーを捉えることによって、具体的な問題点がどこにあるのか考察するのが容易くなるのです。

つまりは、自分がぶつかっている問題に対して、どう対処しようか…と悩んでいる際。

一度その問題をメタ的な視点から見ることで、問題解決の糸口がつかむことができること、それがメタを知ることのメリットではないでしょうか。

まとめ

マークアップ言語とか調べてたら言語学やりたくなった。

言語学入門 https://www.amazon.co.jp/%E8%A8%80%E8%AA%9E%E5%AD%A6%E5%85%A5%E9%96%80-%E6%96%8E%E8%97%A4-%E7%B4%94%E7%94%B7/dp/4385364214/

この本ほしいなぁ…(チラチラ)