It is said that in the beginning it took God seven days to create the heavens and the earth. That’s incorrect. It actually took one day and six days to get it to look right in Internet Explorer.
For the last ten years I’ve spent all day, every day writing tools for web development. I work in HTML every day converting advanced desktop markup language into HTML markup. I work on conversion tools every day. They say to use the best tool for the job. I’ve come to the conclusion that HTML markup is not the tool for the job. It is vastly under powered. It’s time for a new markup language.
All powerful markup languages have certain goals and expectations.
- easy to read
- easy to understand
- component set that declares the component
- declarative properties
- container set that helps layout components
- components that size to content, explicit or percentage
- containers that size to content, explicit or percentage
- advanced positioning like top, left, right, bottom, verticalcenter, horizontal center
- advanced alignment such as top, middle, bottom and baseline
- supports states, transitions, component styling and skinning model
HTML markup has not met those expectations. As I’ve said, I convert from a series of advanced markup languages down to HTML markup. It is possible for HTML to achieve some or all of these through the use of specific tags, style sheets, display modes, box sizing models, transform matrices and so on but after using advanced layout markup there’s no going back to caveman level HTML markup. We all know it. I’ve worked with many markup languages and MXML satisfies all these goals (the open source Apache Flex SDK is one tool that compiles MXML). Continue reading.
MXML was created to handle and render layouts from multiple design tools. It was designed to support layouts from InDesign, Illustrator, Photoshop, Flash and PDF and more. It was created to support vector graphics, raster graphics, advanced multi-language typography, states, transitions, cascading style sheets, bindings, filters and more. It is a document that holds a vast description of design elements and presents them gracefully.
That description is in XML format and can be parsed by any application. It is extensible and allows for additional namespaces without breaking or causing collisions. It is designed and meant for the web and applications.
I cringe when I hear someone ask how to get started making websites with HTML. I get asked repeatedly, “Why do I have to do back flips to do a simple task or layout?” “Well, it’s because HTML was originally created to format a text document.” “I never expected creating a website was this challenging”.
After years of using various markup languages from HTML, Macromedia MXML, Android XML, Microsoft XAML, Illustrator XML, InDesign IDML, Flash XFL, PDF XFA, SVG, FXG, TLF and more I can say this with confidence, HTML IS NOT A SUFFICIENT MARKUP LANGUAGE FOR APPLICATIONS! It is for documents! As a web community we need an updated markup language! MXML is the most advanced I have encountered in all my years. Anyone implementing MXML can verify it their renderer works by comparing there MXML rendering using Mustella testing framework or by simply compiling it with the open source mxmlc MXML compiler in Apache Flex or parsing it live with the open source Live MXML Editor.
As a web community using many different frameworks and technologies we desperately need an updated markup language now. Would it be a good idea to adopt MXML as a starting point and continue to develop it as an open source community?
You can download the Live MXML editor / renderer here. You can download the open source Apache Flex SDK here and compile MXML into applications that run in the browser, on the desktop or on mobile devices. MXML is used in all of them.
You can read my previous post about MXML here.
Note: Would it take a long time to develop it and gain adoption? Yes. It may take ten or twenty years for it to be adopted but we and our descendants will have something that makes much more sense than what we did. And the sooner we start the sooner we will arrive. But we have a head start with MXML in that we have software that already renders it and it can be used as comparison. It can even be used immediately with MXML parsers. We also have a head start in that the browser manufacturers can apply their existing layout rules to a new set of elements. Finally, the MXML compiler and MXML Flex SDK is open source so the parsing and rendering code could be compiled into the browser software and that is with or without plugins.
In another form MXML can be compiled down to bytecode. One network request is much much faster than multiple requests over the network. Instead of ten to twenty seconds for your page to load it would take one to two seconds.
Disclaimer: I’ve been working on a design and development tools that read and write MXML documents. It generates MXML for you as you use the design tools or allows you to see MXML rendered live. This software has been available for around 4 years. There’s no pay wall. You can download it for free or purchase a copy. But I’m not promoting my software. I’m promoting MXML. The reason why I’m promoting it now though is because I’m tired of dealing with HTML. Everything in the web and software world is advancing. It’s time for HTML markup to be part of that progress.