Tuesday 7 October 2014

How to Design Software

This is a follow-up from my How to Write Programs which was apparently  utterly incomprehensible to 90% of "Free Software hackers," which, to anyone that does understand it, demonstrates its fundamental premiss.

What prompted me to start writing this was the blogger.com "system." It only seems to accept comments of 160 characters or something. Maybe there's a way to change that limit, but it should tell the "owner" of the blog what that is when it gives her the error. It didn't.

I consider a limit of 160 characters on comments anti-intellectual.

So I posted the long comments as an article (a new post, in the tech. blog jargon) and I wanted to refer to a particular paragraph of a previous post. I thought there might be an anchor for paragraphs, because this is the sort of thing that a lot of people would want to do. No there isn't.

I consider the inability to refer to particular paragraphs stupid.

So having insulted any and everyone who contributed so much as a line of css "code" to this "system," I will no go on to explain to everyone else how this sort of thing should be done.

Rather than writing shed-loads of perl/php/whatever-stupid-concrete-lock-in-hell-is-this-week's-fashion script and javascript, Define an abstract language for describing web content. And distribute a machine-readable abstract syntax for it in the form of a context-free grammar.And then define a general-purpose bottom-up term-rewriting system language, and define abstract syntax for it, in some sort of abstract assembler, or another special-purpose language of you like.

By the way, I am also bored that I keep saying the same thing over and over again ...

So you let people define their own translations of the content using this language. And you can even let them define database record layouts and stuff like that. And it can all be done securely because everything is defined by machine-readable formal syntax and semantics. And you can let people share these semantic definitions of abstract content, and so on and so forth.

Think of it like customized styles gone extreme.

Ian

No comments:

Post a Comment