You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
288 lines
16 KiB
288 lines
16 KiB
<?xml version="1.0"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<style type="text/css" media="all">
|
|
@import "/QA/2006/01/blogstyle.css";
|
|
</style>
|
|
<meta name="keywords" content='tag' />
|
|
<meta name="description" content="You can look at the development of web technology in many ways, but one way is as a major software project. In software projects, the independence of specs, has always been really important, I have felt. A classic example is..." />
|
|
<meta name="revision" content="$Id: modularity.html,v 1.43 2011/12/16 03:02:39 gerald Exp $" />
|
|
<link rel="alternate" type="application/atom+xml" title="Atom" href="http://www.w3.org/QA/atom.xml" />
|
|
<link rel="alternate" type="application/rss+xml" title="RSS 1.0" href="http://www.w3.org/QA/news.rss" />
|
|
<title>Simple things make firm foundations - W3C Blog</title>
|
|
|
|
<link rel="start" href="http://www.w3.org/QA/" title="Home" />
|
|
<link rel="prev" href="http://www.w3.org/QA/2008/01/are_you_mobileok.html" title="Are You MobileOk?" />
|
|
<link rel="next" href="http://www.w3.org/QA/2008/01/svg_on_acid.html" title="SVG On Acid?" />
|
|
|
|
<!--
|
|
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
<rdf:Description
|
|
rdf:about="http://www.w3.org/QA/2008/01/modularity.html"
|
|
trackback:ping="http://www.w3.org/QA/sununga/mt-tb.cgi/129"
|
|
dc:title="Simple things make firm foundations"
|
|
dc:identifier="http://www.w3.org/QA/2008/01/modularity.html"
|
|
dc:subject="Web Architecture"
|
|
dc:description="You can look at the development of web technology in many ways, but one way is as a major software project. In software projects, the independence of specs, has always been really important, I have felt. A classic example is..."
|
|
dc:creator="Tim Berners-Lee"
|
|
dc:date="2008-01-18T15:39:46+00:00" />
|
|
</rdf:RDF>
|
|
-->
|
|
|
|
<!-- <script type="text/javascript" src="http://www.w3.org/QA/mt.js"></script>-->
|
|
|
|
</head>
|
|
<body class="layout-one-column">
|
|
<div id="banner">
|
|
<h1 id="title">
|
|
<a href="http://www.w3.org/"><img height="48" alt="W3C" id="logo" src="http://www.w3.org/Icons/WWW/w3c_home_nb" /></a>
|
|
W3C Blog
|
|
</h1>
|
|
</div>
|
|
|
|
<ul class="navbar" id="menu">
|
|
<li><strong><a href="/QA/" title="W3C Blog Home">[ W3C Blog ]</a></strong></li>
|
|
<li><a href="/QA/Library/" title="Documents and Publications on Web and Quality">Documents</a></li>
|
|
<li><a href="/QA/Tools/" accesskey="3" title="Validators and other Tools">Tools</a></li>
|
|
<li><a href="/2007/12/qa-blog-help/index#feedback">Feedback</a></li>
|
|
</ul>
|
|
<div id="searchbox">
|
|
<form method="get" action="http://www.google.com/custom" enctype="application/x-www-form-urlencoded">
|
|
<p id="formbox"><input type="text" size="15" class="textfield" name="q" accesskey="E" maxlength="255" /> <input type="submit" class="submitfield" value="Search" id="goButton" name="sa" accesskey="G" /> <input type="hidden" name="cof" value="T:black;LW:72;ALC:#ff3300;L:http://www.w3.org/Icons/w3c_home;LC:#000099;LH:48;BGC:white;AH:left;VLC:#660066;GL:0;AWFID:0b9847e42caf283e;" /><input type="hidden" id="searchW3C" name="sitesearch" checked="checked" value="www.w3.org/QA" /><input type="hidden" name="domains" value="www.w3.org/QA" /></p>
|
|
</form>
|
|
</div>
|
|
|
|
|
|
<div id="main"><!-- This DIV encapsulates everything in this page - necessary for the positioning -->
|
|
|
|
<p class="content-nav">
|
|
<a href="http://www.w3.org/QA/2008/01/are_you_mobileok.html">« Are You MobileOk?</a> |
|
|
<a href="http://www.w3.org/QA/">Main</a>
|
|
| <a href="http://www.w3.org/QA/2008/01/svg_on_acid.html">SVG On Acid? »</a>
|
|
</p>
|
|
|
|
<h2 class="entry-header">Simple things make firm foundations</h2>
|
|
<div class="entry-body">
|
|
<p>You can look at the development of web technology in many ways, but one
|
|
way is as a major software project. In software projects, the <a
|
|
href="/TR/webarch/#orthogonal-specs">independence of specs</a>, has always been really important, <a
|
|
href="/DesignIssues/Principles#Modular">I have felt</a>. A classic example is
|
|
the independence of the HTTP and HTML specifications: you can introduce many
|
|
forms of new markup language to the web through the MIME Content-Type system,
|
|
without changing HTTP at all.</p>
|
|
|
|
<p>The modularity of HTML itself has been discussed recently, for example by
|
|
Ian Hickson, co-Editor of
|
|
<a href="/html/wg/html5/">HTML5</a>:</p>
|
|
|
|
<blockquote>
|
|
<p>Note that it really isn't that easy. For example, the HTML parsing rules
|
|
are deeply integrated with the handling of <script> elements, due to
|
|
document.write(), and also are deeply integrated with the definition of
|
|
innerHTML. Scripting, in turn, is deeply related to the concept of
|
|
scripting contexts, which depends directly on the definition of the Window
|
|
object and browsing contexts, which, in turn, are deeply linked with
|
|
session history and the History object (which depends on the Location
|
|
object) and with arbitrary browsing context navigation (which is related to
|
|
hyperlinks and image maps) and its related algorithms (namely content
|
|
sniffing and encoding detection, which, to complete the circle, is part of
|
|
the HTML parsing algorithm). - <a
|
|
href="http://lists.w3.org/Archives/Public/public-html/2007JanMar/0096.html"><em>Brainstorming
|
|
test cases, issues and goals, etc.</em>,</a> Ian Hickson</p>
|
|
</blockquote>
|
|
|
|
<p>and in reply by Laurens Holst:</p>
|
|
|
|
<blockquote>
|
|
<p>I don't know the spec well enough to answer that question, but I'd
|
|
say modularization (if I may call it so) would make it both easier to grasp
|
|
as individual chunks, for both the reviewing process and the implementing
|
|
process. <a
|
|
href="http://lists.w3.org/Archives/Public/public-html/2007JanMar/0100.html"><em>brainstorming:
|
|
test cases, issues, goals, etc.</em></a>. - Laurens Holst</p>
|
|
</blockquote>
|
|
|
|
<p>The <canvas> element introduces a complex
|
|
<a href="/html/wg/html5/#the-2d">2D drawing API</a>
|
|
different in nature from the other interfaces, which concentrate on
|
|
setting and retrieving values in the markup itself; the <a
|
|
href="/html/wg/html5/#sql">client-side database storage</a> section
|
|
of the specification is another such interface. While the
|
|
|
|
<canvas> element has a place in the specification, the drawing
|
|
API should be defined in a separate document. Hixie <a
|
|
href="/2002/09/wbs/40318/tactics-gapi-canvas/results#xq3">expressed</a>
|
|
a similar sentiment (and see the group's <a
|
|
href="/html/wg/tracker/products/2">issues about scope</a>):</p>
|
|
|
|
<blockquote>
|
|
<p>The actual 2D graphics context APIs probably should be split out
|
|
on the long term, like many other parts of the spec. On the short
|
|
term, if anyone actually is willing to edit this as a separate spec,
|
|
there are much higher priority items that need splitting out and
|
|
editing...</p>
|
|
</blockquote>
|
|
|
|
<p>It would also be nice if the <canvas>
|
|
|
|
element and the SVG elements which embed in HTML did so in just the
|
|
same way, in terms of the context (style, etc.) which is passed (or not passed)
|
|
across the interface, in terms of the things an implementer has to learn
|
|
about, and things which users have to learn about. So that <canvas> and
|
|
SVG can be perhaps extended to include say 3D virtual reality later, and
|
|
so that all of these can be plugged into other languages just as they are
|
|
plugged into HTML.</p>
|
|
|
|
<p>There are lots of reasons for modularity. The basic one is that one module
|
|
can evolve or be replaced without affecting the others. If the interfaces are
|
|
clean, and there are no side effects, then a developer can redesign a module
|
|
without having to deeply understand the neighboring modules. </p>
|
|
|
|
<p>It is the independence of the technology which is important. This doesn't,
|
|
of course, have to directly align with the boundaries of documents, but
|
|
equally obviously it makes sense to have the different technologies in
|
|
different documents so that they can be reviewed, edited, and implemented by
|
|
different people. </p>
|
|
|
|
<p>The web architecture should not be seen as a finished product, not as the
|
|
final application. We must design for new applications to be built on top of
|
|
it. There will be more modules to come, which we cannot imagine now. The
|
|
Internet transport layer folks might regard the Web as an application of the
|
|
Net, as it is, but always the Web design should be to make a continuing
|
|
series of platforms each based on the last. This works well when each layer
|
|
provides a simple interface to the next. The IP is simple, and so TCP can be
|
|
powerfully built on top of it. The TCP layer has a simple byte stream
|
|
interface, and so powerful; protocols like HTTP can be built on top of it.
|
|
The HTTP layer provides, basically, a simple mapping of URIs to
|
|
representations: data and the metadata you need to interpret it. That
|
|
mapping, which is the core of Web architecture, provides a simple interface
|
|
on top of which a variety of systems -- hypertext, data, scripting and so on
|
|
-- can be built.</p>
|
|
|
|
<p>So we should always be looking to make a clean system with an interface
|
|
ready to be used by a system which hasn't yet been invented. We should expect
|
|
there to be many developers to come who will want to use the platform without
|
|
looking under the hood. Clean interfaces give you invariants, which
|
|
developers use as foundations of the next layer. Messy interfaces introduce
|
|
complexity which we may later regret.</p>
|
|
|
|
<p>Let us try, as we make new technology, or plan a path for old technology,
|
|
always to keep things as clean as we can. </p>
|
|
|
|
</div>
|
|
<div id="more" class="entry-more">
|
|
|
|
</div>
|
|
<p class="postinfo">Filed by <a href="http://www.w3.org/People/Berners-Lee/">Tim Berners-Lee</a> on January 18, 2008 3:39 PM in <a href="http://www.w3.org/QA/archive/technology/html/">HTML</a>, <a href="http://www.w3.org/QA/archive/web_architecture/">Web Architecture</a><br />
|
|
<span class="separator">|</span> <a class="permalink" href="http://www.w3.org/QA/2008/01/modularity.html">Permalink</a>
|
|
| <a href="http://www.w3.org/QA/2008/01/modularity.html#comments">Comments (1)</a>
|
|
| <a href="http://www.w3.org/QA/2008/01/modularity.html#trackback">TrackBacks (0)</a>
|
|
</p>
|
|
|
|
|
|
|
|
<h3 class="comments-header" id="comments">Comments</h3>
|
|
<div class="comment" id="comment-106626">
|
|
<p class="comment-meta" id="c106626">
|
|
<span class="comment-meta-author"><strong>Søren Blaabjerg </strong></span>
|
|
<span class="comment-meta-date"><a href="#c106626">#</a> 2008-01-25</span>
|
|
</p>
|
|
<div class="comment-bulk">
|
|
<p>I am not quite sure if this comment is relevant here, but it concerns a general problem I think for many ordinary web-users. The problem is, that there is so much 'information' on the web, which often makes it rather difficult and time consuming to select and find the most relevant information even with the use of search-systemss like Google, Yahoo and others. Sometimes you may get severeal thousands of hits when you seek out of which maybe none prove to be are actually useful at a closer look. </p>
|
|
|
|
<p>In fact I have an idea, that might perhaps solve the problem. The idea is, that a standardized hierarchical public domain database system is developed (probably by W3C), which may then be used in any number of implementations and computer environments, including websites. The meaning is, that these databases, that could be organized as systems of domains and subdomains with differentiated rights to which you get (authoring- and/or reading-)access by using a digital signature of some sort, should contain logically organized catalogues of meaningful links to trustworthy and in the context relevant websites.</p>
|
|
|
|
<p>Imagine that for instance a university had such a system, where researchers, teachers and students could all share their valuable knowledge of where to find the really good stuff on the internet (and or intranet) and off course contribute themselves with comments etc. </p>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="comments-open" id="comments-open">
|
|
<h3 class="comments-open-header">Leave a comment</h3>
|
|
|
|
<div class="comments-open-moderated">
|
|
<p>
|
|
Note: this blog is intended to foster <strong>polite
|
|
on-topic discussions</strong>. Comments failing these
|
|
requirements and spam will not get published. Please,
|
|
enter your real name and email address. Every
|
|
individual comment is reviewed by the W3C staff.
|
|
This may take some time, thank you for your patience.
|
|
</p>
|
|
<p>
|
|
You can use the following HTML markup (a href, b, i,
|
|
br/, p, strong, em, ul, ol, li, blockquote, pre)
|
|
and/or <a href="http://daringfireball.net/projects/markdown/syntax">Markdown syntax</a>.</p>
|
|
</div>
|
|
|
|
<div id="comments-open-data">
|
|
<form method="post" action="http://www.w3.org/QA/sununga/beach.pl" id="comments-form">
|
|
<h4>Your comment</h4>
|
|
<div id="comments-open-text">
|
|
<textarea id="comment-text" name="text" rows="20" cols="100"></textarea><br />
|
|
<label for="comment-text">Write your comment text here. Remember, keep the discussion on topic and courteous.</label>
|
|
</div>
|
|
|
|
<h4>About you</h4>
|
|
<div id="comment-form-name">
|
|
<input type="hidden" name="static" value="1" />
|
|
<input type="hidden" name="entry_id" value="139" />
|
|
<input type="hidden" name="__lang" value="en" />
|
|
<label for="comment-author">Your Name</label>
|
|
<input id="comment-author" name="author" size="30" value="" />
|
|
</div>
|
|
<div id="comment-form-email">
|
|
<label for="comment-email">Your Email Address</label>
|
|
<input id="comment-email" name="email" size="30" value="" />
|
|
</div>
|
|
|
|
<div id="comments-open-footer">
|
|
<input type="submit" accesskey="s" name="post" id="comment-submit" value="Submit" />
|
|
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<p id="gentime">This page was last generated on $Date: 2011/12/16 03:02:39 $</p>
|
|
|
|
</div><!-- End of "main" DIV. -->
|
|
|
|
<address>
|
|
|
|
This blog is written by W3C staff and working group participants,<br />
|
|
and maintained by <a href="/People/CMercier/">Coralie Mercier</a>.<br />
|
|
Authorized parties may <a href="/QA/new">log in</a> to create a new entry.<br/>
|
|
<span id="poweredby">Powered by Movable Type, magpierss and a lot of Web Technology</span>
|
|
</address>
|
|
|
|
|
|
|
|
<p class="copyright">
|
|
<a rel="Copyright" href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 1994-2011
|
|
<a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a>®
|
|
(<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>,
|
|
<a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
|
|
<a href="http://www.keio.ac.jp/">Keio</a>),
|
|
All Rights Reserved.
|
|
W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
|
|
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
|
|
<a rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
|
|
and <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-software">software licensing</a>
|
|
rules apply. Your interactions with this site are in accordance
|
|
with our <a href="http://www.w3.org/Consortium/Legal/privacy-statement#Public">public</a> and
|
|
<a href="http://www.w3.org/Consortium/Legal/privacy-statement#Members">Member</a> privacy
|
|
statements.
|
|
</p>
|
|
|
|
</body>
|
|
</html>
|