[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Feasibility of "do all application coding in the XMLlanguages"?
- From: Oliver Hallam <oliver@xqsharp.com>
- To: xml-dev@lists.xml.org
- Date: Mon, 01 Dec 2008 18:27:49 +0000
> Game programming and GUI programming are a different question because your
> choice of language is heavily dictated by the data you are working with. XML
> languages are good at manipulating XML, they are not so good at manipulating
> images.
>
It is not impossible to do some heavy image processing in XQuery/XSLT as
is evidenced by our XQuery raytracer at
http://www.xqsharp.com/xqsharp/samples/raytracer/index.htm . Admittedly
XQuery is not the best choice of language for this task, but the
implementation is suprisingly readable.
A lot of the pain comes from the attempting to interface with non-XML
endpoints. If the endpoints of your application are XML then this pain
is removed. XQuery/XSLT is a very good option for producing graphs in
SVG format for example.
In order to make the ray-tracer more efficient (and less of a toy), it
would be required to use data structures like octrees. Currently can
only be done (in pure XQuery) by generating XML on the fly which (with
today's processors) is not going to be anywhere near as efficient as
data structures written in other (functional or imperative) languages.
Since this sort of processing is not the target domain of XQuery it is
not going to be a high priority for implementors. The declarative
nature of XQuery / XSLT means that an XQuery describes what information
is required, not how to calculate it, but it leaves performance very
much in the hands of the optimizer.
XQuery/XSLT are easily capable of performing most of the tasks required
by today's data-driven web applications, and the declarative nature of
the language means that you mostly only need to spend time describing
what data you want, not how it should be computed.
Oliver Hallam
http://www.xqsharp.com
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]