[FoRK] Programming languages, operating systems, despair and anger
jbone at place.org
Thu Nov 12 15:16:48 PST 2009
> This is a key point. Many of the problems we face in writing
> software are integration, not simply automation.
Actually, that is THE point, the whole point, and nothing but the point.
Eric Meijer realized this, cf. the paper I referenced earlier. MOST
programming these days is pipe-fitting between different data models,
communication models, and data types. (And without any real standards
about those pipe fittings, but that's a different part of the
picture.) MOST OF IT. ALMOST ALL OF IT. And most of *this* happens
at the lowest, gorpiest, ugliest level possible.
Markup doesn't help, it hurts. YAML, semi-structured text like
various Wiki markups, etc. are an improvement for some things. JSON
is an improvement for what it does, but it's still world-of-strings
wrapped in maps.
One *major* impediment to all integration tasks is this: when you're
passing your data between components, you generally either (a) are
trapped in a very type-specific and strict implementation regime (RPC
stubs, CORBA IDL, and now e.g. Thrift and Google's protocol buffers
are attempts to resolve the problem, not very successfully IMHO as
they imply a kind of development cycle involving a lot of static, non-
interactive crap) or (b) you're marshalling and unmarshalling strings,
parsing files that are strings that encode data structures that embed
strings ad infinitum --- probably with lossy semantics.
Let the programmer express the common type values they want to express
directly, literally, in a way that makes it unambiguous; do so in a
generic way that doesn't entail the kind of massive machinery and
process that inhibits on-the-fly interactive programming of the style
we used to enjoy. THEN and only then will we begin to move in the
other direction -wrt- this impedance mismatch / integration issue that
will otherwise increasingly KILL forward progress ENTIRELY.
It starts with a data language. Lua started life as a configuration
file / data language, but is too impoverished to serve the real
purpose --- and it's still not a particularly good language for
Rebol's got the data literals, but... baggage. And not good on the
interactivity front either.
More information about the FoRK