image provider

Spell Checker


Here is an email I received in response to one of my essays.

Closure : Michal Kočárek : michal.kocarek@brainbox.cz : 2009-03-23

at first I have to say that I really enjoy the Unmaintainable code tutorial, as it sometimes looks like it has been taken from reality (and, unfortunately, some are coding accordingly that).

You are quite right. The essay started as therapy. I would get so angry when I encountered poor code. The essay was an opportunity to ridicule it and lampoon it. I discovered that readership for my essays on how to write unmaintainable code had orders of magnitude better readership than my essays on how to write good code. Now when I encounter terrible code, I clap my hands in glee — another item for my collection.

I am sending you two suggestions into Unmaintainable code howto. I think both of them are beautiful way for writing messier code.

1. Closures]

Closure is beautiful way in JavaScript, how to take variables from outer scope, use them in current scope — then return myself with variables still being referenced. Simple example:
function foo(bar) {
   var baz = function() {
      return bar;
   }
   return baz;
}

var x = foo(2);
y = x(); // y is 2;
By mixing closures which have side-effects and reusing variables from global scope, one can create beautiful parts of code, even more beuautiful than the obfocusator would.

2. switch(true)

Personally, I think this is wonderful statement, which programmers are not used to.

I have never seen code like that before, outside of FORTH. Are you sure that would compile? I am so used to Java where all the case clauses must be evaluated at compile time without duplicates.

I would appreciate, if you find at least some pieces of this code helpful for extending your Unmaintainable code howto.


This page is posted
on the web at:

http://mindprod.com/feedback/unmain/closure.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\feedback\unmain\closure.html
Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[44.200.122.214]
You are visitor number