【コラム】

実はこんなに素晴らしい! エンジニア文化の当たり前

2 <br>と<br />の違いとは? 単純な疑問から予想以上の反響を産んだ名回答

  [2016/03/16]

2/3

みなさん、こんにちは。前回はITエンジニアの世界の「シェアする文化」がどれだけ素晴らしいものなのか、勉強会を例に書かせてもらった。

筆者は、エンジニア特化型Q&Aサイト「teratail(テラテイル)」の運営に関わっているのだが、まさにteratailもそうした「シェア文化」の上で成り立っているWebサイトの1つである。今回は、そのteratailに投稿された実際のQ&Aのうち、Webサイト内をおおいに沸かせた「名回答」がついたものをいくつかピックアップし、シェア文化の実例として紹介していきたい。

質問自体はいずれもシンプルな疑問ではあるが、回答欄を見ると「え!? こんなに丁寧に答えてくれるの……??」「ふ、深い……!!」と思わずうなってしまうほどの名回答が生まれており、非常に多くのプラス評価がついている。

<br>と<br />の違いとは?素朴な疑問がきっかけで語られたHTMLの歴史

まずご紹介したい質問はこれだ。

htmlを書く時、改行タグが<br>ではなくて<br />と書かれてある場面によく出くわします。なぜ、<br />と記述するのでしょう?<br>と書くのと、一体何が違うのでしょう?

なんともない、シンプルなHTMLタグの違いに関する質問かとおもいきや、回答欄を見ると、なんとも細やかな解説が!

「htmlの改行タグを<br>ではなくて<br />と書くのはどうしてでしょう?」

[回答内容]

HTMLは当初、SGMLで作られました。しかし、SGMLは自由度が高すぎたため逆に実装が難しく(特に当時の非力なコンピュータでは)、HTMLを唯一の例外として、あまり普及しませんでした。

(ブラウザなどのHTMLの実装は、SGMLとしての解釈はせず、HTMLの仕様決め打ちの解釈で実装することにより、SGMLの難しさを回避していました。ただし、このことがブラウザ間の非互換性の元にもなりました)

そこで、SGMLの仕様を見直して、自由度を下げる代わりに、仕様を簡便にして実装しやすくしたものがXMLです(したがって、XMLはSGMLと別のものではなく、SGMLの「サブセット」として規定されています。SGMLを処理できるプログラムでは XMLも扱えます<逆はできません>)。

「自由度を下げる」ことの代表的なものが、「開始タグと終了タグがペアになっていなければならない」というルールです。このルールを導入することで、これを扱うプログラムでは、閉じるのか閉じないのかがわからないタグを扱うために次々と予備の変数を用意して待たせておくといったような処理をしなくてよくなりました。SGMLではHTMLに見られるように単独のタグを定義することもできました。

その後、「XMLとして扱えるHTMLを作ろう」という試みが行われるようになり、その中で既に定着している <br> などの単独タグをどうするかが問題になりました。単独タグを許すと、XMLのメリットである実装のしやすさが失われてしまいます。しかし、使い慣れた <br> が使えなくなるのも問題です。そこで1つの妥協として <br /> という記法が考案されたのです。上記の記法を使えば、単独タグであっても終了タグの登場に備えなくてもよいため、従来のXMLの処理をそれほど大きく変えなくても扱うことができます。

(以下略)

<br>と<br />について、単にHTMLとXHTMLの文法上の違いだけでなく、その裏にある歴史的背景まで説明がなされている。このように、求めていた回答をはるかにしのぐ「学び」を得られるのは、Q&Aサイトならではかもしれない。

Rubyistが2500字超えで語る"Pythonの良さ"

他にも次のような質問がある。

*「Python の良さを知りたい

Pythonを始めたばかりで、その魅力がまだいまいち分からないという質問である。これまたとてもシンプルでストレートな質問ではあったのだが、35票ものプラス評価(2016年3月11日時点)が集まる「名回答」が生まれるQ&Aとなった。その回答がこちら。

「Python の良さを知りたい」

これまた見事な名回答がそこにあった。

Rubyistがここまで熱くPythonを語っている点や「…うわなにをするやめr」のところなど、ツッコミどころ満載なのも気になるが、いくつか回答の中身をピックアップすると、単に質問に答えるだけでなく、質問の背景に隠れているであろう投稿者の悩みにまで寄り添ったアドバイスが随所に散りばめられているのが分かる。

例えば、以下のようなところだ。エンジニア初心者がよくぶつかるであろう英語に対する客観的なアドバイスが述べられている。

残念なことですが、ライブラリの多くは英語でしか説明がありません。しかしながら、これは他の言語も同様です。これからプログラミングを学び、その技術力を高めるには、技術英語が読めることは必須の技能です。英語だからと言って敬遠せずに慣れてください。しかし、多くの人が使っている有名なライブラリであれば日本語で使い方が書かれたサイトがあります。Pythonは日本でも多くのユーザーが使用していますので、情報はすぐに見つかると思います。

他にも、今後のスキルアップのために常識となってくることなど、非常に丁寧なアドバイスを示してくれている。

一般的なWindowsユーザーにはコマンドプロンプトがなじみがないものに思えますが、それは一般ユーザーで終わる人だけの話です。プログラマーだけでなく、IT関係の技術者にとってコマンドプロンプトなどテキストベースであるCUIの操作は当たり前のものであり、その操作は一般的です。今のうちにこれも慣れてください。

自分で調べるだけでは知り得なかったかもしれない副産物的な知識に加え、アドバイスまでもらえたのは質問者にとって(いい意味での)大きな誤算になったであろう。

ほかにも、さまざまな方々が各視点から回答してくれており、ググっただけでは見つかりづらい「今」の声がリアルに反映されているように思える。

以下、多くのプラス評価がついた回答があるもの、話題になったQ&Aをいくつかピックアップするので、もし気になるものがあればぜひ見ていただきたい。

■「変数とかを英語にするとわかりにくくないですか?

プログラミング歴2カ月ほどのユーザーから出た素朴な疑問に対して、『クラスを作ったり関数を作ったりするのは「プログラムを作る」ことであると同時に「言語を拡張している」と考えています』や『私からの回答は「役割をはっきりさせましょう」です。チームや数カ月後の自分が分かるように書くことです 』といった、ベテランの方のプログラミングに対する「感覚」がリアルな言葉で返ってくるのはおもしろいところ。

また逆に、『どれがプログラム特有の命令で、どれがプログラム記述者が自由につけた変数名なのかがわかりにくいのです』といったプログラミング入門者の感覚だからこそ気づきやすい視点が、ベテランの方にとっては新鮮だったりするようだ。

■「1日に100万レコード増える場合のテーブル設計

現状、最もはてなブックマークがついているQ&Aである。ビッグデータを取り扱う際のテーブル設計についての質問だが、最も高い評価が付いている回答には、ソーシャルゲーム会社で実際にデータ分析基盤を作っているユーザーが現場での経験を基に実用的なアドバイスが書かれている。

■「最近のプログラミング言語にgetter/setterがないのはなぜ?

Javaで使われるgetter/setterメソッドが、なぜSwiftやKotlinなどの比較的新しい言語では使われない設計になっているのか、という質問である。質問文に対して、ひとつひとつ丁寧に解説がなされた回答から、他のユーザーも巻き込んで議論が発展し、プロパティという仕組みの起源の話にまで至っている。

■「【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)

『時々C++を学び始めたばかりの後輩から「なぜヘッダファイルに実装を書いてはならないのか」「なぜC++は2度も同じコードを書くことを強いるのか」と質問を受けます』と話す質問投稿者。いつもはそれらの疑問にお茶を濁して回答つつも、自身でも納得のいく答えがなかったということで今回この質問を投稿したとのこと。このような「そういえばなぜだろう?」という疑問には皆各々の見解を持っていて、読んでいるだけでも非常におもしろい。

さて、ここまでteratail内で話題になった秀逸な回答がついたQ&Aを紹介してきたが、ここでひとつ疑問が残る。現状、回答することに対してとりわけ直接的な見返りがあるわけではないのだが、それにも関わらずなぜここまで回答してくれるのだろうか?

実はこれ、teratailのナカノヒトたちも、長い間疑問に思っていることだったりする。

teratailに限らず、ブログ文化や、勉強会文化もそうだが、他業種と比較してIT業界において「圧倒的にシェアしあう文化」がここまで根付いている根幹に一体何があるのだろうか?

次回は、teratailをよく活用してくれているユーザーへのインタビューを通じてその点を少しでも明らかにしていこうと思う。

執筆者紹介

木下雄策

1988年生まれ、福岡県出身。エンジニア特化型Q&Aサイト「teratail」のDevRel(技術者向け広報)担当。2013年にレバレジーズに新卒で入社し、1年でトップ営業マンとなった後、現在のteratailチームにジョイン。年間30以上のエンジニア向けイベント/勉強会を開催している。好きなものはJavaScript(ただしド素人)とスノーボード。

<お知らせ>
ITソリューション検討Information

マイナビニュースのIT Search+では、ITソリューションの検討に役立つ情報を掲載しています。
ここでは、IT Search+の人気記事ベスト3をご紹介。ぜひ、ビジネスにお役立てください。

2/3

インデックス

連載目次
第3回 teratail回答ユーザーに聞く!自身の知識をシェアしてくれる理由(1)
第2回 <br>と<br />の違いとは? 単純な疑問から予想以上の反響を産んだ名回答
第1回 月10回ほど勉強会に参加し続けて感じた、ITエンジニア文化のここがすごい!


IT製品 "比較/検討" 情報

転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

特別企画 PR

人気記事

一覧

イチオシ記事

新着記事

[甲鉄城のカバネリ]謎のキャラ・美馬のビジュアル公開 宮野真守も「麗しい」とコメント
[01:45 5/27] ホビー
Kingston、TLC NANDとMervell製コントローラ搭載の2.5インチSSD「UV400」
[00:04 5/27] パソコン
「ありすorありす~シスコン兄さんと双子の妹~」ドラマCDの全キャスト発表
[00:00 5/27] ホビー
[斎藤工]“抱かれたい男”に藤山直美がまさかの勘違い 「サイトウ・エって誰?」
[23:48 5/26] エンタメ
山本彩、AKB48最後の劇場公演で決意新たに「チームKの魂をNMB48に」
[23:36 5/26] エンタメ

特別企画 PR

求人情報