Friday, April 27, 2012

ESR on "C" portability across time

ESR posts on portability of "C" across time. Most times you port across machines and operating systems. "C" is rare in making straight-forward the task of porting from the past into the future.

Tuesday, April 17, 2012

sed is Turing complete

My command line tool is cooler than your command line tool. Thank you, Peteris Krumins, for linking. And don't forget his book.

UPDATE: A testament to my typing skills, the original title of this post was "sed is Turning complete".

Thursday, April 12, 2012

Mythryl: Another great language introduction

Another great language introduction, this one for Mythryl:

Howdy! I’m Cynbe, lead Mythryl developer.

Why do I do it?

Let me tell you.

I spent the first four years of this millennium doing eighty-hour weeks at a Fortune 5 company in a division internally famous for producing more revenue per employee than the IRS.

I remember arriving home at three AM Christmas Day, sleeping thirty-six hours straight, and then driving right back to work.

It was a cool trip in its way, but over time the stress does get to you. By four years in, vomiting blood in the wee hours was starting to seem entirely normal.

It was time for a change.

By then I had written well over a million lines in C plus substantial amounts in other languages. I felt ready to take it to the next level.

“A language that doesn’t affect the
way you think about programming
is not worth knowing.”
Alan Perlis

So I looked around to see what was new and improved. I’d learned APL, assembly, C, Fortran, Lisp, Pascal, Smalltalk, Snobol, SQL and so Forth in the 1970s, but after that there had been a long dry spell. C++, J, Java, Perl, Python, Ruby, sure, but they hardly catapult us into a new era of butterflies and rainbows. They did not expand my mind like Lisp and Smalltalk.

Happily, mostly-functional programming languages had just reached the Ready For Prime Time point.

My favorite was SML/NJ, from the nice folks who gave us the laser, the transistor, and Unix.

Unfortunately, it was research-grade code cloaked in academic jargon which hadn’t seen an end-user release that millennium.

Fortunately, I was looking for something to do.

So I set about hammering this magnificent raw material into a modern production quality open source software development platform.

To my mind Mythryl deftly combines C speed, Lisp power, and Ruby convenience with the critical new ingredients of Hindley-Milner typing, state of the art generics and just the right level of side effects.

I’m in love!

Thursday, April 05, 2012

Real Options

Shane Hastie interviews Chris Matts and Olav Maassen on Real Options, an agile technique to improve IT decision making.

Do read it all. A taste:

InfoQ: Please can you briefly explain Real Options. 

Olav: Options have value, options expire, never commit early unless you know why.

Options are a way of looking at decision making. Financial options work in very narrow areas, in the financial marketplace they entail paying a fee to defer making a choice about purchasing a share or financial instrument until a later date. Our thinking about Real Options was inspired by financial options, but they are much broader in application.

Real Options are more to do with the psychology of how people make decisions than with the choices available to them. 

InfoQ: Please explain. 

Chris: People hate uncertainty, so much so that they would rather be wrong than uncertain. In a “rational preference” the hierarchy of decision making would be:

  1. Have the right answer
  2. Be uncertain about the answer
  3. Have the wrong answer

The reality is we prefer to be wrong rather than be uncertain, so the hierarchy is:

  1. Have the right answer
  2. Have the wrong answer
  3. Be uncertain about the answer

We can tell this because when people are faced with uncertainty, they would rather make any decision, even if it is the wrong one.

Generally people would rather have a definite wrong answer than be unsure about an answer.

Real Options is about understanding when to make a decision, rather than how to make decisions. By adding the “when” to the decision making process we remove the uncertainty and enable people to make better decisions.

Like financial options have a fixed contractual expiry date, real options have a conditional expiry date.