- From: Sean B. Palmer <sean@miscoranda.com>
- Date: Wed, 24 Sep 2008 14:07:29 +0100
- To: "Niklas Lindström" <lindstream@gmail.com>
- Cc: semantic-web@w3.org
On Wed, Sep 24, 2008 at 1:14 PM, Niklas Lindström wrote: > Not the least since I recently toyed with the idea of an imperative, > somewhat functional cross between Python and N3. Note that ideas of such hybrids go back to at least 2001, when Dennis Quan worked on N3Script, which later got incorporated into Adenine: http://web.archive.org/web/20020911190444/http://www.ai.mit.edu/people/dquan/n3script.html > The gist of it is: an imperative language where all datatypes > are RDF-based, and the runtime context is a graph What I like most about this sort of thing is that it considers where programming languages are going in general. They started out as little more than mathematical formulæ, but in a kind of Lakoffian sense they've become embodied as the computer has evolved to interact with the world more. So low-level programming languages deal with registers and so on, and object oriented abstractions provide a kind of ramshackle ontological system which which to manipulate more human things. RDF's own ramshackle ontological system may miss the sweetspot between good design and ample utility, but that hasn't precluded prototype based systems and duck typing and all the other interesting ideas popping up amongst mainstream programming languages. With plan3, I was kinda hoping to be able to bring some of these innovations into the RDF world to see if I could ease the RDF pain. As you probably know, Pluvo was a prototype based language; but after seeing how Perl6 does things, that changed my mind about the direction of programming languages in general. There are probably some nifty things to come, and competing under the burden of an RDF tax makes it doubly untenable. On the other hand, there's an interesting analogy with natural language that one can make. When I cobble together a constructed language, normally I make it isolating and non-inflected, with no grammatical gender or any of the things that I don't particularly like. But one day I got entangled in a project which was developing a language with lots of features that I don't particularly like. Though I still don't particularly like them, I really enjoyed working on that language; and I think the same thing is true of the whole plan3 experience—it's an enjoyable idea, even if it's misguided. There's plenty that can be intellectually salvaged from the rubble. > I don't know yet if I'd like for it to be a general-purpose language > or mainly for RDF extraction Well, I'd certainly recommend concentrating on the general-purpose aspects of your language. There is obviously a place for specialised languages, but in general I think that if you're spending so much effort as to create a whole programming language, then you really ought to be using it every day to justify the effort cost. Also, why not aim to invent the future? There are loads of nifty programming language ideas out there, and getting bogged down in making an RDF extraction language seems a very niche thing to do in light of that. This reminds me of a conversation I had recently with a lisp addict about perl6. Whenever I said "oh, plus I really like $feature in perl6", the lisp addict would go "oh yeah, we've had that in lisp for about a decade now". Every single thing, he had a lisp equivalent to. At the end, I was thinking well, if only lisp's overall design didn't suck so much, perhaps perl6 wouldn't be necessary then. It's a craft to know about programming language features, but weaving them into a coherent and usable whole is an art. -- Sean B. Palmer, http://inamidst.com/sbp/
Received on Wednesday, 24 September 2008 13:08:05 UTC