Write Once, Read Never? Forget it, give me Dreamcode

Alastair Aitken 6 August 2013 0

“Forget all the constraints of today’s browsers. Then write down the code of your dreams for all the tasks you need to build your app. This is dreamcode.”

Depending upon how you look at it, it was either one of the low points or the high points of my IT experience. We had been tasked to create a compiler by our computer science master – a tweed waistcoat-cladded man who would spend most of his spare time puffing away on Old Holborn that he regularly stuffed into his briar pipe. Such imagery should bring to mind pedagogical staff from an academy such as Hogwarts rather than the asbestos-lined, jerry-built 1950s monstrosity of school years’ reality.

Away with the fairies

Where to start building a compiler? I took a calculated risk that our teacher was so away with the fairies that one only needed to offer the pretence of compilation. “Compiling, please wait…”, the “compiler” announced whilst being put through its paces. Adding a full stop to the “please wait…” message after every elapsed second was both the maximum extent of the coding skill utilised and the coup de grâce to the inspector’s critical interest. The prognosis for the forthcoming exam was excellent, unlike the actual result.

Write Once, Read Never

C and C++ in their rawest forms used to be immense fun until the Write Once, Read Never horror show that was Microsoft Foundation Classes (MFC). When hundreds of lines of code are required to create a simple window containing a handful of buttons then perhaps the entire point of the library was solely to encourage developers to run into the arms of Visual Basic. How I pitied our team of C++ developers who, by the time they had got up to speed with MFC and wrestled with the reams of gobbledygook that Microsoft Visual Studio wizards churned out, saw that the product they had started working on had been surpassed by the company’s rivals who had put out similar products in double-quick time using Visual Basic.

Dreamcode

So how does one go about producing a language that developers would be happy to use? Asking developers what they would like to be see is always as good a place as any to start and Gregor Martynus appears to be re-framing the question with the nascent Dreamcode.

The concept is rooted in the premise that frontend developers act as the drivers for language design. Given that frontend developers tend to be closer to designers than backend developers, this dovetails nicely with “Why Only Designers Can Create New Programming Languages”.

Should one rejoice in the possibility of creating code for sending emails that could be so readable that a non-programmer could understand it?

sendEmail({
  subject: "Hello, World!",
  text: "This mail has been sent from the frontend",
  to: "joe@exam.pl"
})

Doesn’t that de-skill a developer’s role? Don’t we still need some smoke-and-mirrors to ensure the continual need for our craft? Perhaps you’d like me to create that compiler that you might need for your Dreamcode?

Alastair Aitken (124 Posts)

As a contract developer and manager I’ve worked in a wide range of enterprises in a variety of countries where I’ve encountered everything from great work, awful work, bizarre work, all the way down to quasi-legal work. If you think that you recognise your own organisation within my articles then you’re undoubtedly wrong, where you work isn’t that unique.

Leave A Response »