Bert Bos はコンピューター科学者であり、CSS の創設者の 1 人です。 CSS の開発中、Bos は Håkon Wium Lie (CSS の父) と協力した最初の 1 人でした。 1996 年に World Wide Web Consortium (W3C) に参加し、CSS 開発を担当しました。彼は CSS ワーキング グループの議長を務め、現在はワーキング グループの W3C 代表を務めています。
これに先立ち、Bert はフローニンゲン大学在学中に独自に Argo ブラウザを開発しました。これは、彼のスタイル シート提案のために開発されたテスト アプリケーションでした。 Argo ブラウザは独自の SSP スタイル シート言語を処理でき、この新しいブラウザ言語を使用して CSS 標準を作成しました。その後、Lie と Bos は協力して CSS を W3C 勧告として開発しました。
インタビュー: Gao Bo | 編集: Li Pan
Q: バートさんは何度も中国に行かれたことがありますね。最近、中国の Web 開発者にどのような変化が起こっていると思いますか?
私は2008年に北京に来て、以前には香港と深センにも行ったことがあります。中国は遅れてスタートしましたが、現在ではブラウザー会社や検索会社など、ますます多くの企業が W3C に参加しています。中国は米国、ヨーロッパ、オーストラリアよりも遅れてスタートしましたが、今では中国の開発者は世界中の開発者と同じように修理し、同じような質問をし、同じレイアウトを持っているようです。
Q: 中国の開発者は遅れてスタートしたものの、今では追いついてきたと思いますか?
はい。さまざまな企業から判断すると、中国の開発者は事業を開始した当初はしばらく遅れをとっていましたが、現在では追いつき、技術的には一致しています。
質問: 今では CSS は Web 開発に不可欠な要素となっていますが、実際には CSS の概念は最初から必ずしも存在していたわけではありません (コンテンツを記述するための HTML や、動作やインタラクションを記述するための JavaScript はすでに存在します)。 CSS はゼロから発明されたと言われていますが、開発の初期段階でスタイル シートのセットが必要というアイデアをどのように思いついたのか教えていただけますか?開発初期のストーリーは何ですか?
Håkon Wium Lie と私は CSS を発明しましたが、スタイルシートの概念は発明しませんでした。この概念はずっと前から存在していました。私たちが発明したのは、Web 開発を容易にする具体的な言語にすぎません。ただし、スタイルシートを使用してコンテンツを文書化し、構造化するという概念は、これよりもはるかに古いものに遡ります。本において、どのようなフォント、どのような絵、どのくらいの端の大きさなどはすべてスタイルシートによって決まります。これらの概念は古くから存在しています。 1980 年代半ばには、コンピュータ言語で表現された電子スタイル シートも登場しました。
こうやって言うと、MLはHTMLよりも先に登場し、HTMLはXMLの上に構築され、XMLにはずっと昔からスタイルシートがありました。私たちは、XML の初期のスタイル シートの概念を研究し、当時発展途上のスタイル シートの概念も研究し、そこから多くの良いアイデアを学びました。さらに、カンファレンスで HTML の発明者に会い、そこでスタイル シートの必要性について多くの話を聞きました。彼らはこれまで交流したことのない人たちでしたが、私たちは彼らから多くの重要なアイデアを得ました。
私たちにとって、これは発明された概念ではないと言えますが、他の多くの人にとって、すべては HTML と CSS から始まりました。しかし、それらは進化の一部にすぎないことはわかっています。
Q: CSS の正式名称はカスケード スタイル シートですが、なぜ結合などの言葉ではなくカスケードなのでしょうか。
Håkon Wium Lieは、ビューは2つの部分から構成されていると主張しており、1つは提供者が人々に見るべきだと考えるものであり、もう1つは受信者が実際に画面上で読む文書である。当初から、私たちの設計哲学は、受信機もビューの結果に影響を与える必要があるということでした。つまり、コンテンツを取得した後、必要に応じて調整できます。コンテンツとスタイルはプロバイダーから提供され、特定の色とサイズを指定できます。ただし、受信者は画面の特性に応じて、異なるフォントや色を使用することができます。これが、複数の影響、複数のスタイル シートを統合するというアイデアであり、これがカスケード スタイル シートの概念の基礎です。カスケードとは、あるものが滝のように重なって、最終的に結果に到達することを意味します。
Q: あなたのバックグラウンドは数学です。このバックグラウンドは CSS を作成する際に何か助けや影響を与えますか?
コンピューターサイエンスでは、文法も学びましたし、人工知能も学びました。言語設計の観点からは、読みやすく解析しやすい構文を作成するよう努めています。したがって、コンピューターサイエンスを学ぶことは数学よりも私にとって役に立ちました。
Q: Argo というブラウザを作成して CSS をテストしたことがありますね。
いいえ、Argoはスタイルシートをテストするためのものではなく、中国大学アフリカ工科大学(美術学部、歴史学部など)の教師や学生がインターネットに自由にアクセスして、オンラインでファイルを交換できるようにするためのものです。 、コレクションカタログの閲覧、メールの送受信など。したがって、私の目標は、HTML をサポートするだけでなく XML もサポートする、非常に使いやすいブラウザを作成することです。大学によっては XML の使用が多いためです。たとえば、聖書を勉強している人が、聖書のさまざまなバージョンを比較する必要があるとします。これらのファイルはすべて XML を通じて表示されます。スタイルシートも必要なので、ブラウザにスタイルシート言語が必要です。スタイルシートには興味深い概念がいくつかありましたが、当時は構文に注意を払っておらず、誰もがコードを書きたがるわけではありませんでした。 Håkon Wium Lie 氏もこの時点で自身のアイデアを表明しましたが、私たちのアイデアは組み合わせることができると思います。
Q: CSS の作成者の 1 人として、あなたはこの質問に答えるのに最適な人物かもしれません。CSS の最も基本的な目的は何ですか?時間を超越できる目的とは何でしょうか?この目的は将来の開発にどのような影響を及ぼしますか?
目標はいくつかあり、時間の経過とともに進化します。 1 つ目の主な理由は、HTML を保護することです。当時、Mozilla を含むいくつかの企業がプレゼンテーション効果を向上させるために HTML に何かを追加し始めているのを目にしました。同じコンテンツを異なるデバイスや画面で異なるスタイルで表示したいため、コンテンツとスタイルは区別されるべきであると考えています。 HTML の安定性を守るために、Håkon Wium Lie と私だけでなく、多くの人が同じことをしようとしています。 HTML を保護するには別の言語が必要であることはわかっていました。それが CSS を作成した直接の理由です。
もう 1 つの理由は、レイアウト用の専門言語を取得すると、より多くのことができるようになるということです。これらのことは HTML のみを使用して実現するのは困難ですが、特殊な言語であれば簡単に実現できます。また、スタイルが完成したら、再度再利用できるので効率的です。同時に、これはスタイルシートを処理するために特別に設計された言語であるため、よりコンパクトでもあります。 HTML+CSS を使用すると、HTML のみを使用する場合よりも必要なコードが少なくなり、簡潔になります。 これらが、私たちが初期に CSS を作成した理由です。しかし、時間が経つにつれて、別の理由が明らかになりました。たとえば、チームでドキュメントを作成する場合、ドキュメントの作成を専門とする人もいれば、スタイルに重点を置く人もいます。これが伝統的な出版の概念であり、本が出版される方法です。この概念は非常に伝統的なものであり、Web にも当てはまります。
実行効率など、その後にいくつかの概念が出てきました。ある時点で、アニメーション化が可能になり、JavaScript やプラグインなどの他の言語でも実行できるようになりましたが、CSS を使用した方が簡単であることに気づきました。 CSS は宣言型であるため、CSS を実装するために特別なプログラムを作成する必要はありません。オブジェクトのアクションがどこで開始され、どこで終了するか、その間にどのようなパスが取られるかを指定できます。 JavaScript を使用していてループを実行する必要がある場合、コンピューターはループの実行方法を予測できない可能性があります。しかし、CSS を使用してブラウザで実行すると、物事がどのように進んでいるのか、どこで終了すべきなのかを確認できます。したがって、最適化を行ってアニメーションを予測することができます。これにより、アニメーションの効率も向上し、画面上の見栄えも良くなります。実行効率は、CSS が HTML でより多く使用される最も重要な理由でもあります。
質問: 現在、PC 上のトラフィックはモバイル端末によって侵食されていますが、CSS はこの Web アプリケーションとローカル アプリケーションの間の争いにどのように役立つと思いますか?
これは戦争ではないと思います、双方が生き残る余地はあります。しかし、私たちは Web プラットフォームがローカル プラットフォームと同じくらい強力になることを望んでいます。一度 Web アプリケーションを作成すると、どこにいてもデバイス上で実行できるため、より効率的かつ低コストになります。したがって、Web プラットフォームがローカル プラットフォームの機能を完了できることを強く望んでいます。 CSS はまた、何が CSS に属し、何が SVG に属するのかという境界を見つけようとしていますが、その中には定義するのが難しいものもあります。しかし、私たちは CSS にはもっと余地があると考えており、CSS でさらに多くのことを実現したいと考えています。人々は、CSS よりも SVG のほうがいくつかの作業を簡単に実行できるとしても、SVG と CSS を並行して実行したい作業がまだたくさんあることに気づいているからです。私は JavaScript API ワーキング グループとも協力しています。JavaScript は、GPS やモーション センシングなどの機能を接続するためのインターフェイスでもあり、さまざまなデバイスの API インターフェイスも接続します。
多くの場合、人々がデバイスとどのように対話するかに基づいてスタイルを変更するので、CSS に表示できるものはもっとあるのではないかと考えました。よく、CSS に含めるべきことを提案する人がいますが、一部のことは別の場所で行う方がよいと考えています。したがって、人々のニーズが何なのか、そして私たちが何を提供できるのかを具体的に分析する必要があります。
Q: CSS が良い答えであることはわかりますが、すべての質問に対する答えではありません。多くの人がプリプロセッサの話題に興味を持っていますが、これらのプリプロセッサの使用についていくつかの懸念を抱いています。これについてどう思いますか?
SassやLESSがもっと早く登場すると思っていたのに、プリプロセッサの登場がこんなに遅くて驚いています。 CSS は単純なテキストベースの言語であるため、プリプロセッサの作成は難しくありません。よりプロフェッショナルな設計を完成させるためにプリプロセッサを使用する人もいますが、誰もがプリプロセッサを必要とするわけではありません。プリプロセッサを使用するには、まずプログラマである必要があります。しかし、あなたがプログラマーであれば、Sass のようなツールは非常に役立つでしょう。 ツールの出現は、私たちの作業グループにとっても、CSS のプレッシャーを軽減する良いことです。私たちは機能、フォント、レイアウトに集中することができ、変数などのプログラマにとって使いやすい機能について考える必要はなくなりました。これはすでにプリプロセッサで行われているためです。また、ユーザーは好みのプリプロセッサを選択できますが、CSS にプリプロセッサがある場合、方法は 1 つだけです。しかし今では誰もが Sass か LESS を選択できるようになり、さらには PHP を使用することも選択できるようになりました。プロのデザイナーにとってプリプロセッサは非常に重要だと思います。
Q: CSS にカスタム属性を追加する理由は何ですか?
プログラマーにとって変数は重要で、たくさんのスタイルシートを書きたい場合は、すべてSassとLESSで行うことができます。 W3C ワーキング グループが物事の実行方法を定義する責任を負うべきではないと思います。私たちはコア言語、プロパティ、値を作成する責任があり、CSS の記述方法は他のメンバーが決定できます。しかし、変数を追加した理由は、カスタム プロパティと値を使用して CSS をより従来のものにできることがわかったからです。カスタム属性に関しては、CSS 独自のカスケード メカニズムを利用しています。つまり、要素に変数を付加できるため、スタイル属性だけでなく、任意の属性をファイルに付加することもできます。これはアプリケーションにとって便利です。たとえば、ファイルと構造があり、何かを高レベルの要素に開発する必要がある場合、CSS を使用してこれらの値を付加できます。これは HTML で行うこともできますが、CSS を使用する方が簡単です。そのため、カスタムのプロパティと値が用意されています。
変数を使いたいならSassを使えばいい。しかし、カスタム属性を使用する人は今後ますます増え、将来的には多くの興味深い機能が登場する可能性があります。
Q: モジュール性は CSS の考え方に反するように思えますが、このようなデザインを導入した理由についてお話しいただけますか。
モジュール性には2種類あります。作業グループでは、より詳細な仕様を開発するために分割されますが、これはモジュール性の一種です。このようにする理由は、仕様プロセスがより単純であり、より小規模な規模でテストできるためです。しかし、これは CSS のモジュール構造とはほとんど関係がありません。CSS をモジュール化しているのではなく、内部プロセスをモジュール化しているという意味です。すべてを同時に行うことはできないため、1 つの属性に焦点を当ててから、次の属性に進む必要があります。
もう 1 つの種類のモジュール性は、スタイル シートを作成し、複数の入力を使用して独自のスタイル シートを作成する方法です。
3番目の意味もあり、それはまだ始まっていませんが、ワーキンググループで議論されています。私たちは他の開発者が CSS に機能を追加できるようにすることについて話し始めましたが、CSS をモジュール化する別の方法が必要でした。そのため、ユーザーが CSS に機能を追加でき、また次の規則に準拠できるようにする、ある種の構文、つまり JavaScript またはその他の言語のインターフェイスが必要でした。 CSS 構文。独自のスタイルシートを使用することも、拡張機能を挿入することもできます。この件はまだ存在しませんが、すでに議論されています。現在モジュールには 2 つの形式がありますが、将来的にはモジュール性が 3 番目の意味を持つようになる可能性があります。
Q: CSS は XSL に追いつこうとしていますが、その日までに XSL は不要になるでしょうか。
未来を予測するのは難しい。 XSL は今でも出版業界で広く使用されており、書籍の出版には今でも XSL が使用されています。しかし、先ほども言いましたが、作業グループを形成するのに十分な人材が見つからないため、私たちはもう XSL の開発を行っていません。 XSL の新しいバージョン (現時点ではまだバージョン 1) がリリースされることを期待していますが、現時点では次のバージョンを開発する計画はありません。もしかしたらすぐにワーキンググループを結成できるかもしれないし、決して結成できないかもしれないし、それは分からない。
現在、私たちのエネルギーは CSS に集中しており、人々は XSL で完了できる作業を CSS を使用して完了することを望んでいます。 XSL の機能は、インデックス、ディレクトリなどの発行、生成を目的として設計されています。これらの機能は将来的に実装される予定ですが、明確な日付はありません。
それに、やるべきことはまだたくさんあります。 XSL ワーキング グループを停止する前に、すでに XSL バージョン 2 に対して多数のリクエストが提出されていました。これらは、ユーザーが XSL に実装してほしいとワーキング グループに提案した機能でした。要件はまだ存在しており、これらの機能を CSS で実装することもできますが、それは次のステップで行います。
Q: CSS は 20 年近く前から開発作業に携わっていますが、何年も経って振り返ってみて、お気に入りの機能は何ですか?一番嫌いなものはどれですか?
私が CSS で一番気に入っているのは、ほぼ誰でも CSS を書けることです。誰でもいくつかの例を検索し、オンラインで他の人が何をしているかを確認し、独自のスタイルシートを作成できます。言語が大型化し、スタイルシートがより複雑になるにつれて、これは現在では当てはまりません。しかし、CSSを書くのはそれほど難しくないと思います。 Web ファイル、HTML、および少しの CSS を作成するのに専門家である必要はありません。しかし、より高度で完璧な表示を完成させるためには、もちろん専門家も必要です。比較的言えば、XSL はプロフェッショナル向けに設計されたものではありません。
一番不満だったのは…ポジショニングなどの機能がうまくできていなかったことかもしれません。この機能を使用すると、水平座標と垂直座標を使用して、画面上の特定の位置に CSS の要素を配置できます。 CSS が 1996 年に初めて開始されたとき、私たちはこれを実現したいと考えていました。当時のドキュメントには、どのようにレイアウトし、画面を変更し、どこにでも書き込む方法が説明されていました。これをフレームと呼び、HTML フレームよりも先に表示されます。現在、この概念をリージョンと呼んでいますが、この概念はブラウザーとワークグループでも同じですが、1996 年はこの概念には早すぎました。当時のブラウザでは、現在できることはできませんでした。当時 HTML はまだ 2 年前で、記録されたのは最初の文字から最後の文字で終わる単なるシーケンスでした。つまり「画面上でイベントを起こす」というコンセプトが先進的すぎるのです。しかし、エクストラ フレームという別のコンセプトが生まれました。それは非常に小さなコンセプトから始まり、徐々に非常に柔軟なコンセプトに発展しました。これが、フレックス ボックスが登場した理由です。これが今私たちにできる最善のことです。
Q: W3C ワーキング グループに加えて、他のプロジェクトにも取り組んでいますか?自分でフレームワークを書こうと思ったことはありますか?
フレームワークを書こうと思ったんですが、時間がなくて。 W3C ワーキング グループに加えて、MathML ワーキング グループも運営していますが、MathML バージョン 3 の作業は基本的に終了しており、次のバージョンを作成する予定はまだありません。
残りの時間はいくつかのプロジェクトにも取り組んでいますが、それらは CSS とは何の関係もなく、ネットワーク セキュリティに関するものです。欧州では、欧州連合が関連研究に助成金を出しますが、研究プロジェクトは誰でも申請できますが、個人や独立した機関が申請することはできません。 W3C は、ベルギーのルーヴェン大学、ダブリン大学、SAP ドイツと協力してネットワーク セキュリティの研究を申請しています。私たちの研究では、多くのよく知られているネットワーク問題だけでなく、あまり知られていない問題もいくつか取り上げており、非常に興味深いプロジェクトとなっています。多くの研究作業は大学で行われ、実行作業は企業で行われ、標準化作業は W3C やその他の機関で相互に調整される必要があります。このプロジェクトには多くの時間を費やしましたが、そこから多くのことを学びました。
Q: インタビューにお時間を割いていただき、ありがとうございます。次回中国に来るときは、もっと刺激的な内容を持ってきてほしいと思います。