19.7.06

Revealing the X/O impedance mismatch

Ralf Lämmel and Erik Meijer explain why its hard to mix angle brackets with curly brackets.

Abstract
When engaging in X/O mapping, i.e., when viewing XML data as objects or vice versa, one faces various conceptual and technical challenges~---~they may be collectively referred to as the `X/O impedance mismatch'. There are these groups of challenges. (i) The XML data model and the object data model differ considerably. (ii) The native XML programming model differs from the normal OO programming model. (iii) The typical type systems for XML and objects differ considerably, too. (iv) Some of the differences between data models and between type systems are more like idiosyncrasies on the XML site that put additional burden on any X/O mapping effort. (v) In some cases, one could ask for slightly more, not necessarily XML-biased language expressiveness that would improve X/O mapping results or simplify efforts.
The present article systematically investigates the mismatch in depth. It identifies and categorizes the various challenges. Known mitigation techniques are documented and assessed; several original techniques are proposed. The article is somewhat biased in that it focuses on XML Schema as the XML type system of choice and on C\# as the OO programming language of choice. In fact, XSD and C\# are covered quite deeply. Hence, the present article qualifies as a language tutorial of `the other kind'.

10.7.06

The Semicolon Wars

Brian Hayes writes an introduction to programming languages for The American Scientist. Hits both the shallow (syntax) and deep (semantics) differences, notes that everyone is deeply invested, and implies that we have a long way to go before we can scientifically evaluate which approach is best. Links is even mentioned, to my astonishment.

3.7.06

Hilda

A programming language for building data-intensive web applications from the database group at Cornell. More ambitious than Links in that it attempts to automatically partition data between client and server, and may partition differently for different servers (a pc vs a phone, say). Less ambitious than Links in that it is not concerned with highly dynamic, AJAX-like applications. Thanks to James Cheney for the pointer.

29.6.06

Ocsigen

Another web framework for dynamic content: OCaml web SIte GENerator.
From Vincent Balat and others at PPS, Paris VII. Here is their summary. Usual stuff with type systems and continuations. No generation of Javascript to run on the client.

26.6.06

The Evil Grid

I used to think of grid computing as a coming technology for e-Science. But this article from The New Yorker (10 Oct 2005) shows that grids are here and now, used for spam, identity theft, and cyberextortion. Here is a quote:

The process is called “herding,” and a herd of zombies is called a botnet. The herder then issues orders to the zombies, telling them to send unsolicited e-mail, steal personal information, or launch attacks. Herders also trade, rent, and sell their zombies. “The botnet is the little engine that makes the evil of the Internet work,” Chris Morrow, a senior network-security engineer at M.C.I., said. “It makes spam work. It makes identity fraud work. It makes extortion, in this case, work.”

22.6.06

Yahoo! User Interface Library

Yet another Javascript AJAX library. This one is well supported, backed by a major player, and open source. Is this the right library for Links to integrate with? Recommended by Mark Engelberg. Mark notes this library supports animation well, which he thinks will be essential in the future of the web.

19.6.06

Will Continuations Continue?

Gilad Bracha argues that continuations (as used by Paul Graham, PLT Scheme, Seaside, Ruby on Rails, and Links, among others) are not so important that it is worthwhile to add continuations to Java. He begins with a nice recap of the classic Orbitz example, which first came to my attention (and his) through the efforts of Shriram Krishnamurthi and the PLT Scheme folk. Thanks to Rodney Topor for pointing me at this.

I don't buy parts of his argument, although I suspect his conclusion may be right. It's *really* expensive to add a fundamental feature like continuations to Java, so it had better be incredibly valuable. Java doesn't even support plain old tail recursion, which is even more fundamental than continuations.

There are follow ups from Gilad Bracha, Tim Bray, and David Megginson.

The Swine Before Perl

Shiram Krishnamurthi on the advantage of Scheme, with an emphasis on macros and embedding domain-specific languages.

12.6.06

lgrind

A package for typesetting programs in Latex. Spotted by Jeremy.

OpenLaszlo

Yet another AJAX framework. Unlike Links, it doesn't tackle integration of client with server and database. It compiles to Flash and they are working on compiling to DHTML. (I suppose DHTML means Javascript, but its not entirely clear; the demo appears to be broken!) I like the 'Learn Laszlo in Ten Minutes' demo, as it lets you modify and rerun all examples on the fly.