Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Open Source

Introduction to ThinWire


Joshua Gertzen and Ted C. Howard are the authors of ThinWire Handbook: A Guide to Creating Effective Ajax Applications, from which this article is adapted. Copyright (c) 2008 Pearson Education. All rights reserved.

As you might be aware of by now, the term Ajax sprung onto the Web development scene in 2005. One could even make the case that the concepts behind Ajax have taken hold faster than any other paradigm shift in Web development since the inception of the Internet. The reasons for this explosion continue to be discussed; but whatever the outcome turns out to be, the fact is that Ajax has and continues to transform Web development in ways unimaginable previously.

Suddenly, it has become trendy and acceptable to hack the browser and make it do things that it was never intended to do. Interestingly enough, the vast majority of the concepts behind what we now call Ajax go back to as early as 1997, when Microsoft released a version of Internet Explorer with Dynamic HTML (DHTML) support. Because then, crafty developers had been pulling off some pretty interesting things in the browser; but ultimately it took a large-scale use of those techniques by Google in 2005 to demonstrate that such techniques were now ready for the mainstream.

Although the story behind the rise of Ajax involves a lot of interesting facets, for our purposes it's suffice to say that if you are not using Ajax in your applications yet, you most likely will be in the next year or two. The first wave of adoption has mainly been within public-facing portal applications or small-scale Web sites that have limited requirements. In particular, Ajax in the enterprise has been adopted more gradually. This gradual adoption has a lot to do with the extra burden Ajax can place on the development process and the fact that expertise in the subject is still in its growth stages. This is where ThinWire can save you a significant amount of time and effort. ThinWire was designed from the beginning to be as pragmatic as possible. We very much believe in the idea that a framework should stay out of your way and let you get your work done. Unfortunately, the state of Web development has been somewhat cumbersome for awhile now. For years, I've been amazed that with every subsequent Web development advancement we are essentially adding another layer stacked onto the prior layer. Although I understand the practicality of that patchwork approach, at some point you have to tear things down and refactor!

In many ways, we're drowning in layers of abstraction, many of which are just there to account for the 1 percent use case. This is especially true in the Java world. Have you tried to build a JavaServer Faces (JSF) application recently? Granted, frameworks such as Spring and Struts have simplified things greatly when compared to the monstrosity that is Java EE (J2EE), but even with those, I've often felt like there is simply too much work required to get a simple Web application done. And clearly I'm not the only developer who feels this way. Just look at the success of Ruby on Rails and scripting languages in general. It's like we're rediscovering the Keep It Simple (KIS) principle all over again. So, what does this all have to do with ThinWire. Well, when we started playing with Ajax concepts, we decided to build a framework that embodied Ajax at its very core. We didn't just create a layer that could be stacked onto existing Web development models. We had a pragmatic need to make it possible for developers of varying skill level to build incredibly interactive and dynamic Web user interfaces. Therefore, it was impractical to make it a prerequisite to understand HTML, CSS, JavaScript, DOM, DHTML, servlets, JSP, the JSF component model, and this little thing called EL (expression language), all before they could get started building high-quality Ajax applications. Obviously that's a slight exaggeration, but I think it gets the point across.

With ThinWire, we take away all that complexity. You focus on a single development environment that conceptually only exists on the server. The end result is still a full-blown Ajax application, but the framework does all the heavy lifting, letting you focus on creating great solutions for your users and not wasting your time fussing around with all the layers of complexity. Although it's not the Holy Grail by any means, we think the framework takes a giant leap in the right direction.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.