Slashdot Log In
dSVG - A New Kind of Programming?
from the soliciting-your-thoughts dept.
"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"
Sounds great... (Score:5, Insightful)
Re:Sounds great... (Score:3, Funny)
Sigh (Score:2)
Still, I think SVG is likely to be a sufficiently valuable addition to browsers that it is worth pushing for.
Re:Sounds great... (Score:4, Interesting)
The Konqueror browser seems to have a push to get SVG going too: KSVG [kde.org], but it has a way to go ("Release 0.1 pending").
There are a good set of SVG resources [protocol7.com] for Linux. The Apache Jakarta projects java SVG viewer, Batik is probably the farthest along.
Parent
Re:Sounds great... (Score:4, Insightful)
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.
Parent
Re:Sounds great... (Score:2)
I agree completely that browsers need to support SVG, and until this is more advanced, tools like the one in this article are getting ahead of things
According to this logic, Adobe is getting ahead of themselves making products that generate PDF until the browsers natively support PDF. PDF is handled by a plugin. SVG is handled by a plugin. They plugins come from the same company. So why is native browser support a necessary condition for SVG's success?
That said, there are some advanced features that c
Integration! Integration! (Score:4, Interesting)
(No, I didn't forget PNG [libpng.org]. It has some technical and ideological advantages, but browser support is still, well, incomplete.)
So what's wrong with SVG plugins? They don't exploit the full power of SVG. It's not just a graphics format, it's an XML application. In other words, it's a markup language, just like HTML. A good XML-aware browser (something both IE and Mozilla pretend to be) shouldn't isolate SVG from the rest of the document.
Consider the gif-filled Slashdot page you're looking at right now. They have gotten rid of a lot of bitmaps (though the left hand clickbar looks slightly less cool as a result). But they still use some weird little bitmaps [slashdot.org], plus a lot of weird tables and font kludges that are hard to maintain and tend to be browser dependent.
There's a simple fix: put SVG support in the browser (it is a W3C invention after all) and allow indiscriminate embedding of XHTML and SVG in each other. (Not to mention any other XML applications the browser happens to support.) The Mozilla people know this [mozilla.org], but still consider SVG support experimental and non-standard. This has been the status quo for quite some time, and given AOL's abandonment of Gecko, is not likely to change.
Maybe if Mozilla had concentrated on basic technological improvements like this and less on eye-candy and silly features... well, AOL, would probably still have screwed them over. But I might feel bad about it.
KHTML looks to be the new leader in open-source web browsers. And their does seem to be a lot of interest in using the engine to render SVG [kde.org]. Alas, the KDE people still think of SVG as something you embed in something else.
Parent
Goodbye RFC, hello Slashdot (Score:5, Interesting)
Re:Goodbye RFC, hello Slashdot (Score:2)
Re:Goodbye RFC, hello Slashdot (Score:5, Informative)
Well, from download [corel.com] page we have :
This file contains the proposal submitted to the World Wide Web Consortium (W3C) SVG Working Group to enhance SVG's support of enterprise application development for dynamic interfaces
along with an EULA whose length put even the MS one to shame.
However, I can't download the proposal without first agreeing to the EULA, so good riddance. If I was sufficiently interested I probably could look it up at W3C site.
Parent
Re:Goodbye RFC, hello Slashdot (Score:4, Informative)
Parent
Any patents involved? (Score:4, Insightful)
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.
Parent
Re:Goodbye RFC, hello Slashdot (Score:4, Interesting)
Using XML for procedural programing isn't new. ANT comes to mind. Unfortunantly it turns out it's a really crappy language to program in (overly verbose, etc...). It does, however, make a decent glue language for putting down the declarative portions of a GUI.
As for the usage of XML-ish markup to define widgets, that's also not really very new. XUL, GLADE, netWindows (my project) all come to mind. The problem is tying them to data and programatic constructs. It's nice to see you're taking a similar tack with your wiget set as we are, however I tend to think that the minute you start writing standards around your toolkit, you only decrease your room to improve in the future. The community, i hate to say it, really doesn't know what they want which is why innovation is so powerful. It takes independent thought and originality to come up with someone else's old hat, and it seems you have that in spades. The trick is to not imagine that the community at large is imbued with the same qualities. The world at large doesn't care. You have to reach people with a need for what you want to do. The are the only ones that really matter.
A small dev team of people that grok what you're talking about and are interested in assisting you in making things better is usually going to yeild significantly better results than throwing something to the winding and seeing what takes off. In the worst case, you've satisfied the needs of the people that have needs in the first place, which isn't a bad place to be (although it can surely be obscure).
Anyway, I'd like to talk with you more about your toolkit. Your email addr isn't in your profile, so you can reach me at alex@netWidows.org.
Regards.
Parent
Windows only? (Score:3, Interesting)
Re:Windows only? (Score:2, Informative)
Re:Windows only? (Score:4, Insightful)
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!
Parent
Re:Windows only? (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 mu
Re:Windows only? (Score:4, Interesting)
I represent a growing provider of diverse Internet services. We have determined that the Linux platform is by far the most cost effective platform for new projects. Because we have selected Linux as the standard server platform, we find that Apple's Unix-based OS X platform is ideal for desktop use by designers and engineers who produce our new projects. Although we consider tools that require the Windows platform, we are most seriously interested in products that support OS X or Linux. In our experience, many other growing internet ventures hold a similar opinion.
Parent
Holy legaleze Batman! (Score:5, Insightful)
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
Re:Holy legaleze Batman! (Score:2)
Re:Holy legaleze Batman! (Score:2, Funny)
What can you do.
The GNU revolution is in after mode, how about
Re:Holy legaleze Batman! (Score:2, Insightful)
Gordon Bowman wrote:
Might this sort of thing grow into a real, honest-to-God, full-featured programming language one day? Is the fundamental design sound? That sort of thing.
I'm sorry to break this here on slashdot, but if you are so alone at Corel that you don't even have any (qualified) collegues to discuss design matters with, but post them to slashdot of all places to get well thought answers - maybe especially after such legal mumbo-jumbo, you should have a serious tal
A License To Be Proud Of (Score:2)
Every so often I look at these things closely to see what amusements lie therein. This one has some fun bits. Some of these seem to stem from an attempt to build a license for every possible product and combination of products - thus in this single license you're agreeing to licenses for Clip Art, iGrafx (or IGRAFX - possibly a different product, who knows), Trellix, some SDK and in every country possible. So, here are a couple excerpts from t
Future possibilities for improvements (Score:5, Informative)
One huge area for improvements is in the design of the skins. It seemed like a good idea at the time, but I now see that it has limitations both for performance and for the creation of custom UI controls. More on that in a separate comment...
The fact that dSVG is implemented with script is, for now, a good thing because it allows us to make changes to the spec without the viewer, since the implementation gets passed along with the content. And for previously written content, the Corel Smart Graphics Studio (CGSG) IDE will automatically convert from the old version of dSVG to the new version (via XSLT).
I have a big list of ideas for improvements, but it's back at home and I'm still in Vancouver for a few more days attending meeting (so I apologize in advance if I am not always responding in a prompt manner). I'm really interested to see what other developers think of the spec thus far and how it could be improved.
Can you please post the spec by itself? (Score:4, Insightful)
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!
Parent
Re:Can you please post the spec by itself? (Score:5, Informative)
Parent
Re:Can you please post the spec by itself? (Score:3, Interesting)
Excellent! Thanks for being cool about this.
Can you give us anything right now? Monday, I'll be working, but today I can look at your spec. I'm sure a lot of other Slashdot readers are in the same boat. Also, on Monday, your article will be long gone from the Slashdot front page, and so you might want to make better use of this opportunity to introdu
Re:Can you please post the spec by itself? (Score:2)
As much as this interests me, forget it! (Score:4, Interesting)
So, either release it under a license I can understand (one consisting of ten or less paragraphs) or forget it!
Re:As much as this interests me, forget it! (Score:2)
I might add that I have long been a Corel fan and much prefer it to that 'other' commercial graphics option. Except that the animation facilities for Corel paint suck...
Adopting SVG (Score:3, Interesting)
Code examples (Score:2, Informative)
HTML pasted from the Spec, judge for yourself how it looks:
9.6 Example #1
dSVG sample behavior: focus - with added attributes focusGroup and focus
Content of file: dsvg:focus, dsvg:setTransform, dsvg:setAttribute, dsvg:setStyle, (added attributes dsvg:focus, dsvg:focusGroup)
The dsvg:focusGroup attribute adds
adverts? (Score:4, Funny)
"Hi, my company just came out with a new product and told me that I get a huge stinkin bonus if I managed to get an advertis^H^H^H^H^H^H^H^Harticle on it posted on /., so please click on this link..."
-1 (Score:2)
oh, wait, this isnt K5...
careful what you wish for (Score:2, Funny)
By that criteria, PPOP (Power-point oriented programming) will be the wave of the future.
Waiting for SVG pop-up windows. (Score:3, Insightful)
Now that you've approaching Flash 5, can you please explain what you're hoping to accomplish?
Since their plug-in is commonly installed, their standards and documentation are apparently about as open and propriatory as yours, and since the number of people who can tell the difference between flash and dhtml is minimal, I'm not sure what the actual goal here is.
According to the normal timetable, Flash 7 should be released before the year is out and that seems to be your primary competitor. Unfortunately it also offers video, sound, raster graphics, and a good lead on a decent OO scripting langage. Oh wait, that's Flash 6.
Is there something new you're offering (other than a different set of lawyers) that we should be noticing?
Re:Waiting for SVG pop-up windows. (Score:5, Informative)
Let me see:
- The ability to navigate using the traditional
back/forward buttons (although I believe the lastest
versions of Flash support this to some extent).
- The ability to resize text so it's halfway
readable.
- The ability to cut and paste text.
- The ability to use my standard ctrl-pageup/pagedown keys to switch between tabs
in Mozilla (as well as other browser keyboard
accelerators) without them getting intercepted
by the Flash plugin.
- The ability for search engines to index the
content I'm presenting.
There are many reasons why Flash is fundamentally flawed, and SVG is a much better solution in the long run. Only time will tell if the market is able to see that.Parent
Where does it stop? (Score:3, Insightful)
I'd like to see more open-source tools to create Flash format. Flash is a really good implementation of vector graphics - the engine is small, the files are small, and the system is very powerful. It took Macromedia three rounds to get it right (remember Director?) but finally, they did it.
Flash format is open, and there are a few non-Macromedia tools for it. But not enough. I once looked into doing a Flash tool for stock charts, so you'd get the raw data from the server and could pan, zoom, and do typical stock-chart operations like moving averages locally. It's possible.
Using SVG in real world apps ... (Score:2, Interesting)
I need screen shots (Score:2, Insightful)
Virus Writers Rejoice!! (Score:2)
Let's go for beer.
Example Markup - checkBox and setData (Score:3, Informative)
Gord
<svg xmlns:dsvg="http://www.corel.com/schemas/2002/dSV
<script type="text/ecmascript" xlink:href="dsvg11/dSVG.js"/>
<script type="text/ecmascript" xlink:href="dsvg11/baseUI.js"/>
<script type="text/ecmascript" xlink:href="dsvg11/constraint.js"/>
<script type="text/ecmascript" xlink:href="dsvg11/button.js"/>
<script type="text/ecmascript" xlink:href="dsvg11/setData.js"/>
<dsvg:checkBox toggle="true" xlink:href="dsvg11/skinCheckBox_Default.svg#skinC
<dsvg:setData value="Sample of setting data." elementID="checkBoxLabel" id="dsvgUniqueID_8"/>
</dsvg:checkBox>
<text y="80" x="150" fill="green" id="checkBoxLabel">label</text>
<dsvg:checkBox toggle="true" xlink:href="dsvg11/skinCheckBox_Default.svg#skinC
<dsvg:setData value="Sample of setting data." elementID="checkBoxLabel2" id="dsvgUniqueID_9"/>
</dsvg:checkBox>
<text y="130" x="150" fill="green" id="checkBoxLabel2">label</text>
</svg&g t;
How is this better than regular SVG scripting? (Score:3, Insightful)
In terms of constructs like 'if' and 'elst', I'm not convinced that wrapping the SVG object model in a layer of xml tags will do any more good than wrapping stuff in a layer of xml tags usually does.
However, it's good to see a widget set being produced for SVG. If a powerful, standard widget set evolves that'll be immeasurably useful in promoting SVG and taking advantage of SVGs natural strengths.
Re:Examples, Applications ? (Score:5, Informative)
Parent
Flash vs. SVG (Score:4, Interesting)
Parent
Re:Flash vs. SVG (Score:4, Insightful)
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.
Parent
Re:435098734912 (Score:2, Informative)
Re:435098734912 (Score:3, Interesting)
Re:435098734912 (Score:2)
Cross-browser interactive applications (Score:3, Informative)
Check out TIBET [technicalpursuit.com] from Technical Pursuit. It's a full browser application environment, built using JavaScript. They decided on JavaScript