<!DOCTYPE html>
<html>
<head>
    <title>Apache Wicket - The Wicket Vision</title>

	<link rel="stylesheet" href="/css/screen.css" type="text/css" media="screen" />

    <!--[if lt ie 7]>
	<link rel="stylesheet" href="/css/ie.css" type="text/css" media="screen" />
    <![endif]-->
    <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon" />
	<link rel="alternate" type="application/atom+xml" href="/atom.xml" />
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<div id="container">
    <div id="content">
        <div id="header"><a href="/"><h1 id="logo"><span>Apache Wicket</span></h1></a></div>
		<div id="navigation">
	<h5><a name="Navigation-Wicket"></a>Meet Wicket</h5>
	<ul>
		<li>
			<a href="/" title="Index">Home</a>
		</li>
		<li>
			<a href="/meet/introduction.html" title="Introduction">Introduction</a>
		</li>
		<li>
			<a href="/meet/features.html" title="Features">Features</a>
		</li>
		<li>
			<a href="/meet/buzz.html" title="Buzz">Buzz</a>
		</li>
		<li>
			<a href="/meet/vision.html" title="Vision">Vision</a>
		</li>
		<li>
			<a href="/meet/blogs.html" title="Blogs">Blogs</a>
		</li>
	</ul>
	<h5>
		<a name="Navigation-GettingStarted" id="Navigation-GettingStarted"></a>Get Started
	</h5>
	<ul>
		<li>
			<a href="/start/download.html" title="Download Wicket">Download Wicket</a>
		</li>
		<li>
			<a href="/start/quickstart.html" title="Getting started via a Maven Archetype">Quickstart</a>
		</li>
		<li>
			<a href="http://www.jweekend.com/dev/LegUp" rel="nofollow">More archetypes</a>
		</li>
		<li>
			<a href="/help" title="Get help">Get help</a>
		</li>
		<li>
			<a href="/help/email.html" title="Wicket Mailing Lists">Mailing Lists</a>
		</li>
	</ul>
	<h5>
		<a name="Navigation-Documentation" id="Navigation-Documentation"></a>Learn
	</h5>
	<ul>
		<li>
			<a href="/start/userguide.html" title="User Guide">User Guide</a>
		</li>
		<li>
			<a href="/learn/examples" title="Examples">Examples</a>
		</li>
		<li>
			<a href="http://www.wicket-library.com/wicket-examples/compref/">Components</a>
		</li>
		<li>
			<a href="/learn/projects/" title="Projects extending basic Wicket">Projects</a>
		</li>
		<li>
			<a href="https://cwiki.apache.org/confluence/display/WICKET">Wiki</a>
		</li>
		<li>
			<a href="https://cwiki.apache.org/confluence/display/WICKET/Reference+library">Reference guide</a>
		</li>
		<li>
			<a href="/learn/books" title="Books">Books</a>
		</li>
		<li>
			<a href="/learn/ides.html" title="IDEs">IDEs</a>
		</li>
	</ul>
	<h5>
		<a name="Navigation-Releases" id="Navigation-Releases"></a>Releases
	</h5>
	<ul>
		<li>
			<a href="http://www.apache.org/dyn/closer.cgi/wicket/6.20.0">Wicket 6.20</a>
		</li>
		<li>
			<a href="http://www.apache.org/dyn/closer.cgi/wicket/1.5.13">Wicket 1.5</a>
		</li>
		<li>
			<a href="http://www.apache.org/dyn/closer.cgi/wicket/1.4.23">Wicket 1.4</a>
		</li>
		<li>
			<a href="http://www.apache.org/dyn/closer.cgi/wicket/1.3.7">Wicket 1.3</a>
		</li>
		<li>
			<a href="http://wicket.sf.net/wicket-1.2" class="external-link" rel="nofollow">Wicket 1.2</a>
		</li>
		<li>
			<a href="http://wicket.sf.net/wicket-1.1" class="external-link" rel="nofollow">Wicket 1.1</a>
		</li>
		<li>
			<a href="http://wicket.sf.net/wicket-1.0" class="external-link" rel="nofollow">Wicket 1.0</a>
		</li>
	</ul>
	<h5>
		<a name="Navigation-Docs" id="Navigation-Docs"></a>API Docs
	</h5>
	<ul>
		<li>
			<a href="http://ci.apache.org/projects/wicket/apidocs/6.x/" title="JavaDocs of Apache Wicket 6.x">Wicket 6.x</a>
		</li>
		<li>
			<a href="http://ci.apache.org/projects/wicket/apidocs/1.5.x/" title="JavaDocs of Apache Wicket 1.5.x">Wicket 1.5</a>
		</li>
		<li>
			<a href="http://ci.apache.org/projects/wicket/apidocs/1.4.x" title="JavaDocs of Apache Wicket 1.4.x">Wicket 1.4</a>
		</li>
		<li>
			<a href="http://ci.apache.org/projects/wicket/apidocs/1.3.x" title="JavaDocs of Apache Wicket 1.3.x">Wicket 1.3</a>
		</li>
	</ul>
	<h5>Wicket 7.x</h5>
	<ul>
		<li>
			<a href="http://www.apache.org/dyn/closer.cgi/wicket/7.0.0-M6">Download M6</a>
		</li>
		<li>
			<a href="https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+7.0">Migration guide</a>
		</li>
		<li>
			<a href="http://ci.apache.org/projects/wicket/apidocs/7.x/" title="JavaDocs of Apache Wicket 7.x">API Docs 7.x</a>
		</li>
	</ul>
	<h5>
		<a name="Navigation-Developers" id="Navigation-Developers"></a>Contribute
	</h5>
	<ul>
		<li>
			<a href="/contribute/write.html" title="Writing documentation">Writing docs</a>
		</li>
		<li>
			<a href="/contribute/build.html" title="Building from SVN">Build Wicket</a>
		</li>
		<li>
			<a href="/contribute/patch.html" title="Provide a patch">Provide a patch</a>
		</li>
		<li>
			<a href="/contribute/release.html" title="Release Wicket">Release Wicket</a>
		</li>
		<li>
			<a href="https://fisheye6.atlassian.com/browse/wicket-git" title="Git Overview" class="external-link" rel="nofollow">Fisheye</a>
		</li>
	</ul>
	<h5>
		<a name="Navigation-Apache" id="Navigation-Apache"></a>Apache
	</h5>
	<ul>
		<li>
			<a href="http://www.apache.org/" class="external-link" rel="nofollow">Apache</a>
		</li>
		<li>
			<a href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">License</a>
		</li>
		<li>
			<a href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">Sponsorship</a>
		</li>
		<li>
			<a href="http://apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</a>
		</li>
		<li>
			<a href="/apache/friends.html" title="Apache projects using Wicket">Friends</a>
		</li>
	</ul>
</div>

		<div id="contentbody">
			<h1>The Wicket Vision</h1>
			<p>Designing and implementing any framework for use in the real world inevitably
involves compromises and some degree of complexity, and Wicket is no
exception. However, I believe you will find that Wicket is quite compact,
focused and powerful as a framework. If Wicket has these characteristics, it
is because it was designed to solve one very specific problem well:</p>

<blockquote>
  <p>enabling component-oriented, programmatic manipulation of markup</p>
</blockquote>

<p>Wicket does this and very little else, and that is a good thing.</p>

<p>I once heard Josh Bloch talk about the power to weight ratio of an API. The
highest compliment anyone could make of Wicket would be to suggest that
Wicket has a lot of power and not much conceptual surface area.</p>

<p>In art, negative space is the part that’s not the subject. In music, negative
space is the rest. In software, negative space is all the code that you
managed to avoid writing. In all three disciplines, it’s what separates what
is truly excellent from what is merely good.</p>

<p>Following this metaphor, if Wicket is our foreground object, it is defined in
a negative sense by all the things that it is not (by the background).</p>

<p>In other words, ideally, Wicket is a web UI framework that delegates as many
areas of responsibility as possible to other, more focused tools and
techniques. It recognizes that Hibernate is good at persistence; that Spring is
good at DI; that Java properties files are good for
localization; that sub-classing is good for creating component types; that
Dreamweaver is good at doing HTML layout; that Beans are good for structuring
properties; and so on.</p>

<p>The more ways that Wicket can find to offload responsibilities (both now and
in the future), the less it will be. And thus, the more it will be.</p>

<p>The difficulty moving forward with Wicket will be balancing all the
day-to-day needs people are going to be bringing up with this overall vision
of minimalism. There ultimately will be compromises, and the “trick” to
making the right compromises is simply to agonize over all the options for a
long time and then to only make the compromises that everyone agrees are
really essential to what Wicket needs to be and do.</p>

<p>A big part of this process of agonizing is to act like doctors and “first, do
no harm”. If some issue isn’t sitting well with everyone yet, there’s
probably a reason for that. So, maybe the near-term solution is to simply do
nothing and let people use the existing functionality until the limits to
that approach (as well as competing ideas) are better understood.</p>

<p>It’s easy to add features. It’s often impossible to change or remove them.</p>

<p>Given this, the Wicket approach to the overall problem of evolving while
keeping a high power to weight ratio will be partitioning off all
controversial new ideas in a “wicket-stuff” package until they are broadly
accepted. This way people can experiment and code away and check in lots of
stuff without affecting the main codebase with untested ideas. Then, when
ideas pan out to everyone’s satisfaction, the leads of the
project will move them into the core.</p>

		</div>
        <div id="clearer"></div>
		<div id="footer"><span>
Copyright &copy; 2015 &mdash; The Apache Software Foundation. Apache Wicket,
Wicket, Apache, the Apache feather logo, and the Apache Wicket project logo
are trademarks of The Apache Software Foundation. All other marks mentioned
may be trademarks or registered trademarks of their respective owners.
</span></div>

    </div>
</div>
</body>
</html>
