August 8th, 2006

  • evan

ghosd patches

I recently got a couple of patches for ghosd, which always makes me feel like a Real Free Software Developer instead of the pretender I really am.

I released the initial ghosd and then did basically nothing with it. The problem is it's difficult to provide much functionality -- any real user of the idea will want to do their own drawing, which means I just need to give them a window and get out of the way, and that's a insignificant amount of code. I suspect the proper way to distribute this is as just a source file to drop into your application, and not as an external library.

I also vanity-searched on ghosd and discovered a discussion on a KDE site where someone requested an OSD layer for KDE and someone else observed "GTK+ apps already have the option of using ghosd". This is both true and not: I had made a point of not depending on GTK specifically to allow people like KDE to use it. But on the other hand, I do mention using Pango and Cairo, both of which are also intentionally GTK-agnostic but spring from the same GTK/freedesktop.org scene. It's hard to use any part of the stack without becoming part of all of it.

The underlying problem is that this (where "this" is roughly "a pseudo-transparency widget") isn't really application-worthy, but actually making it happen requires a bit of X-specific knowledge and I sorta feel like understanding X was already a lost art back when I first started poking around with it. This makes me think ghosd would be more useful as a tutorial with code snippets, but I lack the motivation (nor use case) to make that happen.
  • evan

present condition of obesity

Here's an amusing quote to attempt to place:
For twenty years programming languages have been steadily progressing toward their present condition of obesity; as a result, the study and invention of programming languages has lost much of its excitement. Instead, it is now the province of those who prefer to work with thick compendia of details rather than wrestle with new ideas.
It almost sounds one of those Java-is-doomed-use-Ruby bloggers, but in fact it's from a Turing award lecture given by Backus (of BNF fame) in 1977. Here's a bit more:
Discussions about programming languages often resemble midieval debates about the number of angels that can dance on the head of a pin instead of exciting contests between fundamentally differing concepts.
[...]
In order to understand the problems of conventional programming languages, we must first examine their intellectual parent, the von Neumann computer. [...] Although the conditions that produced its architecture have changed radically, we nevertheless still identify the notion of computer with this thirty year old concept. [...] Conventional programming languages are basically high level, complex versions of the von Neumann computer.
In the body of the lecture he goes on to propose some wacky functional languages, but that's sorta beside the point, as this lecture is from a time when Fortran was nearly state of the art. Though we laugh about Fortran now, at the time of this award its influence was significant in that "Almost all programming languages are now described with some type of formal syntactic definition."

It's always a bit amazing to me to learn any history of computing, because it all seems so intuitive and natural to me now. But all of the stuff we take for granted is so very recent, and it's only one of the many possible outcomes!

(I could've sworn I posted about this before, but I can't seem to find it: there's a great history of logic and how it relates to type systems, including pictures of a manuscript from 1879, in the paper Proofs are Programs.)