What is Divergence?

08.18.10

I’m sorry for the very rough writing here but I need to get this out of my system (will refine soon). In the early day of the web, development was a mess. Everything was intertwined and jumbled. HTML, Styles, and JavaScript lived together.

Part OneWhy we need divergence.

Because of this mess a few creative practitioners taught us to separate our content, presentation and behaviors. But, this ideal paradigm is incapable of fulfilling the needs of the web today.

So along came what I will call divergence; or convergence if you look at it from another perspective. Divergence in web development is the braking apart semantics, presentation, and behavior. However, it is not complete separation of the layers.

In divergence you can use presentation with semantics, as long as it’s semantic (not likely to happen because presentation is rarely semantic).  And, you can use behavior within semantics as long as it’s semantic. And, you can use behavior within presentation as long as it’s presentational.

This is basically a conditional AND, not OR, statement versus the boolean ideals behind separation.

For example, in HTML5 we have type=”email”. Attached to this semantic value is form validation, or a behavior; it’s ok to use under divergence.

This is true because the value email is semantic when in use and the behavior supports its semantics. However, if we were to use the font tag we would not be diverging because the font tag is not semantic and presentational, it is only presentational. And, so, we diverge font styling into our CSS only.

If we want to apply JavaScript to our HTML we can’t add it into the HTML body because it is not semantic and behavioral. The JavaScript would need to diverge. And, if we wanted to use behavior within CSS, our presentation, it needs to be both presentational and behavioral.

Under this methodology we keep our semantics, presentation, and behaviors intact while working with new technologies.

More to come later…

4 Responses

  1. Sam Edwards says:

    I like your venn diagram a lot. It helps communicate the ideas you mention as well as the current state of web development. I don’t think we’re headed in the wrong direction though. I think it’s always been the responsibility of a developer to draw lines of separation for logic/presentation/content. It does stink that we have to constantly re-define the lines but it’s absolutely essential to separate these layers in order to create maintainable/flexible/understandable sites.

  2. Kevin says:

    Thanks,

    It has been our roll to draw the line for a long time and I feel like we have simply been blurring lines instead of redefining what works best.

  3. Hoping you’re planning to write more on this subject/idea. It feels like you’ve got more (possibly a lot more) to say…

  4. Kevin says:

    Man, I’m really pumped about it. I’m going to try and submit an article to alistapart.com on the topic. This, if I’m right, will change how we design websites.

    More coming soon :D

Comment Guidelines

Although I always welcome words of thanks on Twitter please use comments to share your thoughts, questions, feelings and opinions. Thank you for your support in making this blog more engaging.

Join the conversation