Learning new programming languages (by )

I program computers for a living, mainly. This involves writing programs - instructions for the computer on how to do things, written in a "programming language".

There's a lot of programming languages out there; mainly because it's easy to create new ones, and an interesting exercise to do so. But if you browse a programming jobs site, you will see a lot of people who say "I am a Java programmer". Or PHP or Perl or C# or C++ or Python or Visual Basic. This means two things: that a few programming languages hold the majority of the "market share" and that people consider "their language" an important part of their identity.

Read more »

Structured Streams (by )

I read this today:

Structured Streams

It looks like somebody's implemented a stream protocol that lets you create substreams at will, sharing congestion control information with the parent stream but having their own redelivery queues, so missing messages will only stall the one (ordered) stream they pertain to.

Good to see that great minds think alike. When I get some time, I'll read their results in more detail, and see if there's anything useful to be learnt for MERCURY 🙂

A syntax for IRON (by )

Back in 2004 I jotted some notes on requirements for IRON types.

Since then I've been drifting somewhat towards looser typing, in the Lisp model; having that as the underlying system provides for more expressive programming power, while optional type declarations as assertions, where required, can bring back the statically checkable safety and runtime efficiency of a strict type system.

But that's not what I'm posting about in the current insomniac haze - I've been thinking about written syntax.

IRON is a data model for values. Although I'm still deciding how the mutable data structures like queues fit into things (specifications of them are definitely needed for TUNGSTEN, but whether they count as part of IRON or not is something I'm still debating), I think I may have settled on a basic syntax for written values.

Now, the key requirement here is that IRON is, in the manner of S-expressions, usable to express just about anything - from source code to boring data. Creating a written data syntax that's pleasant enough to use day in and day out is quite a challenge. s-expressions come pretty close, but are deficient in a few areas. YAML is pretty good, but I wouldn't want to write source code in it.

The main thing I'm adding over s-expressions is Smalltalk-like syntax, which I will explain in detail below.

So, without further ado, here's a basic IRON syntax.

Read more »

CRB trial and identity cards (by )

Last night, I had a funny feeling there was something special about today... sure, it's our third wedding anniversary, but something else...

Oh yes. I'd agreed to go to Bristol about three months ago.

Quickly I checked the time I needed to be there - 1:20pm to 3:20pm - phew; I'd neither need to be up specially early, or be back too late to take Sarah to her writer's circle or stop off at the district scouting supplies shop to pick up some badges my Cubs had earned.

So what was I in Bristol for? The Criminal Records Bureau trial of their planned new identity checking procedures...

Read more »

A new arrival (by )

The lightbulb in the bathroom died.

So we placed an order with Lightbulbs Direct, and a few days later, a parcel arrived:

A new arrival!

We took the new bulb - still safe inside its egg - and set it up in a little hatchery until it was ready to emerge:

The hatching-box is set up

Before long, the egg came open, and our new bulb peeked out:

Starting to hatch!

After all that effort, it was hungry, so quickly tucked into the pile of batteries we'd left out for it:

Mmmm, food...

After a while it had built up its strength and started trying to find a nest:

Trying to find a nest

So we took it to the bathroom and set it free:

Be free!

It quickly settled in the nest in the ceiling:

Lightbulb in nest

And began to roost:

It's started roosting!

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales