Archive for the ‘Programming’ Category

Lost in translation

Thursday, July 12th, 2007

A learner's guide to the terminology and concepts of software build processes. What's the difference between an assembler, a compiler, and an interpreter, and what's a linker? Assemblers Let's start with the clearest case. An assembler is a program which translates 'assembly language' code into processor instructions (a.k.a. 'machine instructions'/'machine code', a.k.a. ...

Singletons considered harmful

Wednesday, July 4th, 2007

Alex Miller, Steve Yegge, and this poster explain. Among the reasons given: Singletons are most commonly used as excuses to have global variables and functions. As Steve puts it, "using the Singleton is usually just a sign of premature optimization..." . Singletons make it difficult when later you decide you actually need more than ...

The Inuit have 100 words for ‘array’

Wednesday, June 27th, 2007

A learner's guide to the very important concepts of 'arrays' and 'associative arrays' and the very confusing, overlapping terminology thereof. In programming, the term 'array', in its most general sense, means 'a sequence of units of data', but confusingly, a preponderance of terms all fit that same definition, each with its ...

“Quality”, i.e. Why software is hard

Wednesday, June 13th, 2007

Yahoo's Javascript guru, Douglas Crockford, has another excellent video talk (watchable in-browser or as a download), this time a survey of software engineering titled "Quality". While general pontifications of this nature are common, Crockford's strikes a nice balance between breadth and concision and between correctness and novelty (not too dull, ...

Nationalschriftattribut

Tuesday, June 5th, 2007

I concur with Ken Arnold that stylistic choice in languages should be stamped out at the parser/compiler level. In fact, the two programming languages I have on the drawing board, Pidgin (an educational language) and Animus (a more Lisp-ish Python), both do just that. Animus is strict for the reasons ...