Slashdot Mirror


dSVG - A New Kind of Programming?

Gord Bowman writes "For anyone familiar with XML and, specifically, with SVG (Scalable Vector Graphics), you may be aware that SVG is increasingly being used for the creation of data-driven Web applications. But everyone has been doing so by handcoding script and/or XSLT, without the benefit of an IDE to help. Seeing such a need for a tool, my company (Corel) set about creating one." and 'lo, dSVG was born. Gord Bowman is the lead developer of dSVG and would like you to take a look at the dSVG specs (you can find the link, in the full article) and offer your comments.

"It quickly became apparent that while getting a grasp of XSLT is difficult and time-consuming, even more time-consuming was all the scripting it took to create the level of interactivity required on the client via script. Thus we set about creating a library of generic script functions that would assist developers in creating their Web apps. But it didn't take long to realize that this was no good--you can't data-map and transform (via XSLT) functions like you can markup. And, unlike markup, it's much more difficult to auto-generate and customize script via an authoring tool. So I set about designing an XML markup language, implemented with script (so as to work in any SVG viewer), which would describe UI controls and behaviours, so as to facilitate the creation of SVG-based Web applications.

It was a programmer's dream. I was essentially being paid to develop a new kind of programming language. One that, like XSLT, is XML-based but is more procedural in nature and thus easier for the average developer to grasp. It's also easier for non-developers to grasp it, thus bringing SVG and application development to a whole new class of user. A year later, dSVG (Dynamic SVG) was unveiled to the public as part of the Corel Smart Graphics Studio. And as of yesterday, the full dSVG 1.1 Specification and Test Suite became available for download.

The UI controls were designed to allow complete customization of appearance, and to allow for use with forms without being tied to a forms-specific model. The behaviors were designed to be generic and higher level than DOM methods, so as to be more intuitive to non-developers. The resulting markup language allows data-driven Web applications to be created with little or no need for scripting.

While script is very useful and powerful, markup has many advantages:

- markup is more easily understood by non-developers
- markup can be easily data-mapped and transformed using XSLT
- markup can be easily generated via an authoring tool and customized by the author
- markup is semantically meaningful, promoting interoperability on the authoring side
- markup can be standardized, thus helping the adoption of SVG

dSVG was implemented with script so as to work in different SVG Viewers. However, Corel has proposed dSVG to the SVG Working Group in the hopes that through a collaborative effort, dSVG will lead to the eventual creation of standard markup for UI controls and behaviors. These could then be natively implemented, bringing about even more advantages:

- faster
- less data to transfer
- less need for a script engine on small devices (which can take up a significant part of the footprint)

The dSVG 1.1 spec and test suite was posted for download with the goal of allowing the developers and non-developers to experiment with the markup and to provide feedback. This feedback will help me to improve upon dSVG and will also help the SVG Working Group to better assess how the developer community feels about such standard markup being added to the spec for the purpose of developing SVG-based Web applications.

I hope you will take the time to read through the dSVG spec, try out the test suite, and perhaps even create some of your own content. As the creator, I am obviously passionate and excited about dSVG. And having seen how quickly even non-developers can create Web apps, I feel certain that XML-based programming makes sense and is the way of the future. But being a long-time reader of Slashdot, I would love to hear what the Slashdot community thinks. dSVG may not lead to world peace, but I think it has the potential to change the fundamental way in which Web applications are created.

I look forward to hearing your comments.

Sincerely,

Gord Bowman
Lead Developer, Corel Corporation"

7 of 184 comments (clear)

  1. Sounds great... by Tet · · Score: 4, Insightful

    ...now all we need are some browsers with native SVG support. With the Mozilla SVG project still seemingly no closer to delivering a shippable release, and no hope whatsoever of MS releasing an SVG enabled IE, looks like we're stuck with the Adobe plugin for now. Until we get past that, I doubt SVG will enter the mainstream (more's the pity).

    --
    "The invisible and the non-existent look very much alike." -- Delos B. McKown
    1. Re:Sounds great... by Anonymous Coward · · Score: 4, Insightful
      People should vote for Mozilla bug 122092: "Enable SVG support"

      Voting doesn't write code. Writing code writes code. You can vote for it all you want, but if nobody writes it it won't make a difference.

      On the other side, if you write the code for it, and give it to Mozilla, then nobody will need to vote for it.

  2. Holy legaleze Batman! by PDHoss · · Score: 5, Insightful

    Can someone summarize if I am going to get 20-to-life and a cellblock husband if I download the spec?

    Jeez, how many paragraphs into the legal requirements do you have to be before you realize that ain't reeeeeal conducive to getting people to beta/bug track/improve your product for free?

    PDHoss

    --
    ======================================
    Writers get in shape by pumping irony.
  3. Can you please post the spec by itself? by tmoertel · · Score: 3, Insightful
    I am interested in reviewing the spec, but it's presently tied to the test-suite software, which is locked away behind a long, complicated, and scary-looking license agreement that I'm not comfortable agreeing to. Could you please provide a link to just the spec?

    Since you have already submitted the spec to the W3C SVG WG, it's already public knowledge, and there's no reason to hide it behind legalese, right? Can't you just provide a link straight to it?

    I'm sure a lot of other people are more interested in the spec than anything else. If you want them (and me) to take a look at dSVG, please make the spec available by itself.

    Thanks!

  4. Any patents involved? by Homology · · Score: 3, Insightful
    dSVG is NOT a spec being proposed by the W3C. It's something we came up with ourselves for our product, and then proposed to the SVG Working Group.

    Since this appear to be a product by a comercial company, it sort of begs the questions : Is any patents filed relating to this, or is any existing patent involved? This includes any technology necessary to implement dSVG.

    I apologize if I appear impolite, but I'm getting cynical as I age.

  5. Re:Windows only? by Tumbleweed · · Score: 3, Insightful

    Personally, I would not buy the product no matter what platform it runs on because of the (sad) state of SVG support in the browser market, and the foreseen SVG support in the coming years. With IE not being updated for the next 2 years, only Mozilla, Opera, & KHTML variants will be likely to have any decent SVG support anytime soon, and even that is just a possibility, and hardly a foregone conclusion. Your product may be the greatest thing for SVG that has come along (not that that would be saying much, considering), but SVG support, for all _practical_ considerations, is nearly non-existent in browsers, and as a percentage of the surfing public goes, will remain so for years to come. Your product seems like a solution waiting for a market to develop. I don't think that market is GOING to develop for another 2 years, at the soonest. We'll have to wait and see if Microsoft deigns to include usable SVG support in the Longhorn-generation of IE, or whether they cripple & abandon it like they did PNG support. If the latter is the case, then your product may never be useful enough for Corel to continue to support unless Mozilla/Opera/KHTML-based browsers actually start taking significant browser marketshare away from IE.

    Good luck on what seems like a fun project, though. Some people will certainly find this product useful, but whether it's enough of a customer base to continue development on is a big guess. Risk big, win big, though!

  6. Re:Flash vs. SVG by russcoon · · Score: 3, Insightful

    Gord,

    I think you're going to find out that developers at large aren't going to enjoy "programming" in XML. It is overly-verbose for anything but data and meta-data transfer (and many will argue that it's highly inefficient at even that). Programmers and you and I know them want their if statments to look as close to pseudo-code as they can get (hence we have Python and Perl). All of that said, your toolkit still hinges ona a glue language (JS) to make SVG (a declarative style language) even become a programming language in the first place. Therefor the dependency on JS doesn't go away at all. In fact, you've only made your programming environment even more brittle (what are the odds you'll get good debugging info from a dsvg environment?) while continuing to mix data and program in a way that has some deeply negative security ramifications.

    So anway, even if Flash and SVG don't compete, dSVG turns SVG into a Flash competitor, except that it's a "complete xml solution from end to end". Frankly, I'm not sure what that buys you.

    The point of CSS is to seperate style from structure, and the point of XML is to encode meta-data that would otherwise be lost. Unless you can make a compelling argument that scripting constructs are meta-data that should be encoded, I'm going to continue to have a very hard time buying that programming as such belongs in your markup as anything other than CDATA sections. Yes, it has semantic meaning, but not semantic meaning for data! XSLT treads this line pretty narrowly, and I think it winds up on the right side of the fence in most places, but it again suffers from all of the problems anyone else that tries to make imperative constructs out of markup winds up with, and that's not a good thing.

    We doen't use column-based programming languages any more for a lot of very good reasons. Why would we ever want to return to their equivalent if it's only more verbose?

    So we can put an XML stamp on it? What does that buy us?

    Anyway, Flash and SVG+JS are competitors, Flash and SVG without scripting are not. End of story.