Saturday, March 07, 2009

Are we there yet?

Found an interesting project over there, but their wiki set me off a-ranting, and reminded me of some other blogs which got me a-thinking about languages, and if I can't rant here then WTF?

The interesting project is "enough", and their goal is to "design and implement the computing platform of the future"

Let's set up some points of agreement first (as in: if you don't agree with me on these, there's no point to you reading this, I'd recommend that instead)
  • No programming language is less ambiguous than natural language, because the former are all defined and standardised using the latter. People may often use natural language more sloppily, but they do that in the programming languages too!
  • The "most natural way to express" any idea is multi-paradigmatically. Outside of programming no-one ever expresses themselves using only objects, or only functions, or only ...
  • If "the best way to describe a system is the easiest for a programmer to use", then there can not be one best way to describe a system - apart from homework assignments.

Readability is the only problem. Enough code has already been written - the problem now is to understand enough of it in order to re-use the most relevant parts.


Maybe I've just been reading different books - but it seems to me the problems described on this page have more in common with the ideas of Chomsky, Jackendorf, Pinker, ... than Knuth, Wall, Fowler, ... Because the former group are much more aware of the fact that the real problem is *how people think*, not how they express themselves, nor how machines compute.

Unskilled users don't mind a bit of syntax. People have a natural ability to ignore the things they don't understand, that's how children learn to speak.
Surely also a programming platform can be inducted into ignorance of some superfluous ambiguity?

Labels: , , , , , , , ,

Where's the fish ?

Where was I ?

Oh yeah, I was reading.

I liked Joel back when he knew a question or two, before he turned into one of those crazy bosses that approves things.

If you have a couple of beers and a thirst for arcana, Stevey's another first on his first name (I'd love one of those) who rants a good question . 'Twasn't he who twittered
Whereas it is possible to read without writing, the converse is perverse
but he reminded me of it tonight with by claiming that
Being a career programmer gives you an interesting perspective on issues not directly related to programming. You start to see parallels.
To Joel!

Bye Steve, thanks for the fish, I find a figment of fleeting interest in the wider perspectives of a career programmer at Google. (Especially Google now that you mention it). Nothing personal, perchance I prefer programmers' particular perspectives. Especially those who don't remember what a "career" is.

  • I write code
  • I read code
  • I dream code
  • I read about code
  • I only take drugs is to improve the clarity of the code.
  • I have never worked a day in my life since I coded "Hello" into a VAX 11-750 (this was back before we discovered the "World")


I write in a more logical, structured, and agreed language than I read, but the concepts are the same in both, albeit I only write a subset of the readings' flights of fancy.

Recently I reliably remembered a relevant post, documented a few tests, tried it out, and it worked. Been doing that a lot lately.

Today I even caught myself doing some design !

Nobody got hurt, it all worked out smoothly, code was cleaner at the end, but ... I don't do design. I do broken code, fix it up as you go along. The reason I love up-front testing is that I know Murphy roolz, whereas up-front design is entirely wasted effort: why bother speculating before we know what the real bugs are ? (IMNSHO, YMMV)

So, to find myself intelligently applying a design principle , ..., kinda surprising all right. But then again not,

If you were to be off reading programmers' blogs you'd soon get the idea that we are a different breed altogether, that the thinking we do is
  1. logical
  2. structured
  3. agreed
whereas we're really pattern matching, same as the lusers.

All the "Engineering" airs are post-hoc justifications, and eternally risible. (Except insofar as the "real" Engineers are pattern-matching too, but let's not go there. I gotta work with those guys).

No, no - we are more like scientists we have
  • a theoretical dreaming role
  • an experimental smashing role
I prefer smashing stuff.

Labels: , , , ,

Tuesday, November 25, 2008

Is the internet back yet ?

The internet came back half an hour after I left for the office but the water was gone by the time I got home again. Got a few hours kip, woke up this "morning" and my wife was gone. Got a slice of toast, the peanut butter was gone. Tried asking you but I don't think you were reddi yet.

But I keep coming back to the same old questions:

When you get right down to it, what've you got, right, down, up a bit, more, There, aaaah, ... ?
Why do my socks have big holes when I always compost them at the first tear ?
Why has my retirement-fund halved the fees today, if banks are in such shit ?
Why does the screen always go black at the start of writing a new program ?
Why am I so much better at sorting this list than most algorithms I know ?
Wow ! That line was typed in at the best guess place, before I knew ...
How many visitors do you need to see what's going on outside the prison ?
Which of these questions will you take as the subject line of an email ?
Who is converging on The Palace of Culture, panting and slobbering ?
How do you design a brain when all you've got control of is genes ?
How many Ministers for Energy does it take to change a light bulb ?
Why is Natural Language mischaracterized as inherently ambiguous ?
How can you expect to be taken seriously (Extended Danse Mix) ?
Why do men need nipples, is it some kind of memento matris ?
When you get down to the wood today, what will you saw ?
Why is petrol back down to less than 1 euro per litre ?
How many Big Macs does it take to sink an empire ?
How does it work when you program in English ?
How can one live well in a badly-run world ?
When do the floor-cleaning robots arrive ?
Whatever will become of the likely lads ?
How many angels can be fit into a PIN ?
Where have all the children gone ?
Which are the magical languages ?
What were we wanting without W ?
Who would you like to beat (up) ?
Does my thumb look big in text ?
Who are you talking to, inside ?
How much do you miss the goal ?
Sorry, what were you saying ?
What do you do, in the bath ?
But I'm mumbling again't I ?
How much do I stink by now ?
Why do crocodiles crawl ?
How to get rich, slowly ?
What was I looking for ?
Have a dream on me !
Onde está o Oisín ?
Where's the craic ?
You want it when ?
Why am I here ?
Why coo ?
WTF ?

Labels: , , , , , , , , , , , ,

Tuesday, October 04, 2005

Why AI ?

AI is agitatingly interesting.

I just can't get it out of my head, it has such arresting implications, and actual implementations. But still has room for mailing lists full of tomes that start with "I believe ...".

Of course there is no such thing as "Artificial Intelligence", because there is no agreed definition of intelligence. Hence poor ol' Deep Blue takes on the champeen o de worl', beats him, and ... is not "intelligent" after all. And many algorithms will suffer the same applied ignominy as it turns out their solutions aren't "intelligent" after all. Like Jane in Michael Jackson's story.

All of which shall continue in the great world out there, but in here I am going to apply insights derived from the field to the more awkwardly immediate problem of PI - programming intelligence.

Why should PI be a more immediate problem than AI ? Because I need it daily, and the tools I have to work with are so fucking primitive. With one or two honourable exceptions, the tools I use for programming, are nothing to do with programming !

Ok, ok, caveats galore again - I do use compilers, and build systems, and debuggers, but for two out of these three I don't use them directly, they happen behind the curtain. And, now that I think of it - I haven't used a debugger in months. Not since I switched to Python.

So I can reasonably repeat - the tools I use for programming know nothing about programming.

Enhanced by Zemanta

Labels: , , , , , , , ,