A Specification Language for Software

chromatic on 2007-11-10T02:12:16

I see a future where we tell the computer, a kind of super-compiler, what we want to achieve. The input is our specification, and the output is a complete and tested system. All we have to do is specify, verify and then push the deploy button.

— Hans-Eric Grönlund, The Extinction of Programmers

Any sufficiently detailed specification language is indistinguishable from source code.

— me


You were supposed to give the person candy....

matt.fowles on 2007-11-10T22:21:47

When someone says ``I want a programming language in which I need only say what I wish done,'' give him a lollipop. -- Alan Perlis

Re:You were supposed to give the person candy....

chromatic on 2007-11-11T17:51:07

That's funny. I had forgotten that "It should be possible to translate specifications into defect-free programs automatically" was a full-sentence false cognate with "I like candy". Another fun fact is that "Programming is like construction or (manufacturing)" is a full-sentence false cognate with "I know very little about building software and construction (or manufacturing)."

quite

Eric Wilhelm on 2007-11-11T06:50:45

I see the same sort of future, but without the "extinction of software engineers". Engineering is a design process, and design is something that most humans can't get right anyway. (For the case in point, see "traffic engineering" (at least in the US), "almost any random kitchen appliance", or "the i-phone." Also see the past several years of interface/interaction design theory -- which have yet to establish any sort of closed formula for addressing design issues in a generic or product-agnostic way.)

Tellingly, I don't see Perl in the categories of Hans-Eric's blog. If programming is "repetitive and error-prone", you're doing it wrong!

Of course, my idea of the future probably defines "tell the computer" in a slightly different way than his. For "do what I mean" to work, you need concision, which involves an advanced vocabulary, context-sensitivity, and lots of other complicated concepts which will never be accessible to the mentally mundane.

So, how long will it take this amazing future of high-level, advanced interaction to get here? That's really a question of economics. How much are we paying the whiz-bang programmers who are building this future? And, do they have access to each other's source code?

been there, heard that...

jhi on 2007-11-17T15:13:19

The boss of my boss once changed from a CS professor to a hardware designer, and the cranky pronouncements of the kind "why can't we just spec the software and press a button and the software automagically comes out from the other end" soon started.

Re:been there, heard that...

chromatic on 2007-11-17T19:49:28

I remember translating a program from source code into machine code by hand once, in the '80s, just to see if I could. That magic button is a compiler.

Re:been there, heard that...

jhi on 2007-11-17T20:03:09

I think he was more thinking along the lines of "insert a formal spec, out comes an application" (and out of the door go the now unnecessary programmers).