w3future.com

Sjoerd Visscher's weblog

Last Update

10/16/2005; 1:29:17 AM

Try XHTML 2.0
Src XHTML 2.0
RDF Metadata


Site Colors

Syn Atom 1.0
Syn RSS 0.91
Syn Subscribe

CC Licensed
Geo URL
With Radio

Tuesday, November 11, 2003

The impotence of functional programming

Context - XML's gift to the world (and the impotence of numbers). Hierarchies are a great modelling tool. Why? Because (a) they map well onto the way our heads manage complexity and (b) they allow us to model context. We can put things within other things and nuance the semantics of the contained by means of the container and the container's container and so on.

This, for me, is the essence of XML. Throw away the containership model and what have you got? A language that allows you to describe flat structures. Structures in which context does not play an important role. Structures in which semantics are spot-welded to atomic units of data. Structures in which all contextual knowledge is squeezed out in favour of (ugh!) out-of-band storage of semantics and or (double ugh!) ontological particle physics featuring the standard quarks, leptons and guages known as dates, integers and strings. The impotence of numbers is an ITworld article on this topic. [Sean McGrath, CTO, Propylon]

I completely agree. In fact, it's exactly the issue I have with functional programming. Take for example the function zip (or zip3, zip4, exponential ugh-ness), a very popular function in f.e. Haskell. Firstly, if you have two lists, with values that go pairwise together, those values shouldn't have been apart in the first place. Secondly, what you end up with is a list of tuples. Values in a tuple always have more context than just being together. All this information is lost.

That this issue is completely lost on the functional programming world is very apparent from the research. The holy grail seems to be a generic map on any data structure. But in practice any data structure more complex than a list, is bound to have some meta data. A generic map would map a function over the data and the meta data at the same time. That's almost never usefull. Obviously this encourages the use of a separate data structure for meta data, pulling that data out of context.

XML has already a nice solution for this. XPath is a very simple syntax for building generators. Esp. the axes (ancestor::*,following-sibling::* etc.) are a nice way of iterating over XML in a specific way/direction. That way it's easy to map a function over a specific part of the data structure.

Thursday, November 06, 2003

Multiple versions of IE

As if magically solving one of the most vexing problems of just about every web designer, Joe Maddalone has discovered how to run multiple versions of IE side by side. If this works, we can finally say goodbye to rebooting to test web pages on various versions of IE, or if you have multiple windows boxes for this purpose - clear off some desk space. I can’t wait to try this. Thanks for the link branchleft. [web graphics]

I tried, and it works. This certainly saves Martin a lot of trouble, who was the only one at Q42 with IE5.5 on his machine, and had to test everything anybody else made.

Windows Longhorn Glass Look

The new glass look of Windows Longhorn is very pretty. This is of course a challenge to imitate in HTML. It's Internet Explorer for Windows only. CSS does most of the work, and there's a little bit of Javascript. It's slow and useless, but it's pretty!

Now if I only had Mozilla's curved borders, Safari's text-shadow, Opera's speed and SVG's Gaussian blur to finish it off. Now that I mention it, Lon sais I should try this in SVG, which might be interesting too.

Xopus.com website updated

The Xopus website has been updated. There's a lot of new information available, including pricing, 2 online demos and 2 flash tours. A standalone evaluation version can be downloaded.

Monday, November 03, 2003