All posts by Luke

Simple Truth

I have been working hard on my experimental posts recently, and with each post my standards raise alongside my anxiety. So I thought it would be prudent, as a way to unblock myself, to write in my simple style, speaking the simple truth.

I want to be clear with myself: this is my blog. I am not the pictures I paint of myself; my image only limits me. When I am not a Haskell hacker, it makes sense that I would not write about Haskell (99% of my traffic comes from the Haskell community, so perhaps the source of my anxiety is clear). I’m being a kid, naively experimenting with words, fancying myself some kind of artist, as I perceive my readership just wanting to learn more about their craft.

But that is the beautiful thing about this blog. It’s a big jumble of Luke, following along as he explores. As I told an anonymous commenter (who was probably my boss) right after I lost my job:

My blog isn’t an advertisement for my career. It’s here both for people who are interested in my technical ideas and for people who are following my journey to find a place in the world.

So I have to remember that, and by publishing this I hereby forgive myself for not posting anything technical for a while. That’s not where I’m at, and I am not the property of my readers.

Incidentally, I’ve been planning a post exploring the concept of “Computably Uncountable”. No promises though.

Perfection has always been a demotivator for me. I think it’s that way for a lot of people. Once I start holding myself to a standard, my expression is strangled shut. I have to let the shit through before I can see if there is caviar in it. No apologies for imagery. Poop.

Incidentally, if you are one of those people who appreciates this Luke-jumble, you can support my writing like this: Flattr this. There is also a donate button on that page if you are feeling especially charitable. I really do love writing, and the fuller my reserves the more time I can spend doing it (besides, it’s inspiring to see people enjoying my work).

Regressive Argument

Arguments are in the business of increasing certainty. They begin with some assumptions, make some claims, support the claims with evidence, and then reach a new conclusion which, if you agree with all the steps, you should now accept as part of your belief system. We are born as blank slates who know nothing, and over the course of a lifetime, we make and read arguments until, by the time we die, we know a great many things with great certainty.

Opportunities for deep, life-changing learning are rare and must be cherished. Therefore, when we come across an argument whose assumptions are agreeable but seems to be heading in a direction contrary to our beliefs, we read with increased interest in hopes of being proved wrong. After all, if the argument is sound and comes to a conclusion that is contradictory to what we know, then, having seized the opportunity, we have discarded some nonsense and become more enlightened.

By this time, you have noticed that this is satire (I should hope!). But what am I making fun of? A simplistic interpretation is that I am lamenting the irrational way people treat arguments, that they need to be more willing to question themselves if they want a belief system founded in truth. Or perhaps they need to be more logically-minded, to prevent themselves from adopting such self-contradictory systems of belief in the first place. It doesn’t really matter what is wrong with people, as long as whatever it is explains why they will not accept my sound logical argument.

Now I am clearly making fun of someone you know. This person has a strong personality and holds as a core belief that most people are stupid. They write or speak passionately, they stay close to the scientific doctrine, they take pride in their certainty. While their arguments are convincing, they lack a certain respect for those who disagree, and it ends up limiting them from a more complete world-view. We all know this person, and, thankfully, acknowledging that we know someone like this releases us from the possibility of being this person.

The author is being subtly disrespectful now. He is trying to make me wonder whether I fall into this category, and in doing so, attempting to put himself above me. And this paragraph is even more disrespectful, taking on the voice of the reader, assuming he can predict his or her thoughts. Fortunately, he has failed, for one couldn’t say the reader was thinking anything beyond reading at the time.

At least I have not said anything that threatens your beliefs. That would merely serve the disengaged brain to produce a disinterested Ctrl-W or a polarized, indignant comment. Before I can convince you of any new truth, I have to convince you to engage with the question. An active mind taking a question seriously will produce a far more convincing effect than any amount of eloquent word-barrage. My goal was this: if the page was still in focus by the time you reached this paragraph, your mind would be curious and primed.

Now for my argument: what could I convince you of?

I accidentally the verbs

The deep structure of language. Actions, volition; identity, unification. Not realities, but means of understanding the world. Nonsense of the truth of a statement from a determinist perspective. Agent action: volition. Agent action because: post-justification. This is that: the identity fallacy. Two different words; why not this is this or that is that?

A series of images related only implicitly. Richness of language, constraints of mathematics. No verbs, no propositional meaning. Unpresentable relationships for human meaning-makers. An intermittent failure of inserting verbs above. A question of the meaning of verbless sentences. VP-less sentences, to be precise (but still without propositional meaning).

Future eschewing of translations into propositions. A case for the mind to let go of the propositional obsession. The blurring associations between thoughts: associations, judgements, perception blocks. An underappreciated reverence of thoughts in their own right. An abstract picture, not a fact. A thought flying free in the mind. A thought bound to realism with a fact. Meditation and spaciousness in the mind. The Sapir-Whorf hypothesis.

Nouns supplanting verbs as the foundational structure. NPs, to be precise. Potentially mismatching impedance between thoughts and nouns. The question of a freer correspondence between language and thought. Some thoughts have verbs. Mindful restriction, experimentation, like E-prime, to open new pathways in the mind. Now, thoughts of neither noun-ness nor verb-ness:

Vacuous.

Apparently not.

Graspingly anxious at the limits of an author’s imagination. Quotelike, fragmentlike. Descriptive, but without referent. As colors are to a blind man. Thought-Fourier-transform of. Just above decent into syntactic nonsense. Or just before thoughts of pure relationship.

of a normal verb-like sentence with

to the order of

beyond

That brings us back to nouns. A verbal thought.

Flattr this

Essettes

You are a slave? Relationships always seem to divide the world in two. “It’s easy, just do what you want.” I was waiting in the hall for my class to start. When it works, it is amazing. I wonder if anyone will get it.

Your decisions are yours. Life splits: the one you have with your partner, and the one where you get to be honest. She was full of childlike — childish? — wisdom. My mind began to wander. The moments when God takes over my hands, I cannot fathom the structure of what I am playing, I could not repeat it in ten years. I wonder if everyone will get it.

Give it up, hang with the homeless, flee to India. The closeness promised is all too often usurped by a fear of hurting them. Perhaps I could have learned from her if I wasn’t so obsessed. I thought about waiting at the bus stop. Of course, it’s couterbalanced by the moments when he goes to the john and flushes the toilet into my fingers. I wonder if I will lose readers.

Trade this life of suffering for another; at least you chose it. It is this selflessness that gets in the way. I learned about myself, I learned about who I am when I am obsessed. I thought about lying in bed, trying to convince myself to go to sleep. If that happens during a show, the best I can do is to forget it ever happened. I wonder if I’ll love it.

And because you can choose that other one, that means you are choosing this one. We are taught to be selfless, always to put others before ourselves. I didn’t learn of her yogic ways. I thought about refreshing the page for the fifth time this minute. No reflection, no embarrassment, just pretend I’m better than that. I wonder if I’m a writer.

There is no slavery. Relationships bring us back to reality where things are not so simple. Those little snippets, always pointing of a bigger picture, pointing in a world I am not. I reminisced to the days of indecisiveness at the supermarket. Because he’ll come back sometime soon. I wonder if I am wasting time.

There is oppression, but even slaves can make themselves a beautiful life by trying to break free. Here, putting the other before you can be secretly self-serving; serving yourself can be deeply compassionate towards the other. I want to see with all the bases. I longed for sitting by the bathtub as it filled. Maybe next minute, maybe next show. I wonder about the universe.

They may not succeed, but at least they lived for a purpose. The simple mantras are never the whole truth. I have a big picture, but I want to see with hers, with Obama’s, with Joe the Hippie’s, with Bob from Management’s, with Evil Knievel’s. I dreamed of half an hour before I get to see her. And I will be.

Live for a purpose. God would never be so blatant. Even with James Randi’s, which as one of its vectors has that there is only one basis. Now it is time for class to start. I love life as a human.

Easy Read

The great artist, the passionate learner, the hubristic engineer. In the world of accomplishment, each of us comes to terms with our own lack of greatness in

just a sec, got a text

our own lack of greatness in different ways. Some of us… um, where was I? Some of us see our lives as a struggle against our demons, causing us to procrastinate and take time on things that are not truly important. Others have convinced themselves of their comfort with their place in society, happy to be working on a fun project with fun people, quietly dying of not making a real difference.

Oh did you see that #occupywallst had bigger attendance today than ever before? I think it’s a pretty cool movement, even though they don’t really have a message. No, I mean maybe I’ll go someday soon, but I’m just interested to see how it develops.

So, yeah, as I was saying. One does not need to be a creative type to be a slave to our modern emptiness. The search for real love, life fulfillment, or a family to devote yourself to. There is always something standing between your life as it is and the life of your dreams. Even those great people we idolize are living in this disparity; the life they want being something other than the life of greatness we perceive. It is the only way we have motivation to grow.

However, I do not mean to dismiss it. There are traps. For years at a time we may find ourselves piddling away our time on something that is not important — a time we could be using for growing. It reminds me of a youtube video I saw. sec. It was something about a

.

sorry

.

sorry about that, g/f im’d me.

Right, youtube. What was I looking up? Ugh, that’s frustrating. Oh well.

What I’m saying is that we never reach the potential we set for ourselves, but we can still become great. There are ways to refocus our energy not on distracting ourselves from realizing our shortcomings, but on achieving pieces of the ever-changing life goals. Just because you can’t reach it doesn’t mean you can’t move nearer. But it does require us to step back for a moment and see, is this one of those piddling times? Are we truly, deeply satisfied with our progress along our path right now? Or are we hiding, in a world where

sweet my last post got eleven Flattr thiss.

Free Will

I have been going through an intense period of self-discovery and reconstruction. I realized that the path in life I have been following for the past several years is not working for me; it is not resonating with me, and it is taking me somewhere I don’t want to be. This realization was revealing itself to me at the same time as a complicated and heartbreaking end to a (short) relationship unfolded, and everything I believed crashed down and came into question. I was a programmer with no desire for a computer, I was a calm communicator behaving violently, I was an atheist experiencing God.

I believe that I am now picking up my pieces and realigning with my dreams — dreams I had forgotten or dumbed down. I’ve believed this several times during the past weeks, only to find another layer collapsing beneath me, so I may be full of shit. But all I can do is to use the best information I have now. It’s a very interesting, emotional time for me.

One of the axioms that crashed during this experience was the idea that I have any control over what happens in the world. This began as a grounded life principle: my attempts to control life only led to more suffering, so I should surrender to the flow of the world. It percolated up to my intellect, combining with the studies of physics I was using to distract myself from my emotions, eventually leading me to the confusing world of philosophy that I love to entertain.

The idea that there is something physically more to a human being than a physical system is something I consider absurd. The conventional non-spiritual idea is that you put more and more molecules together and suddenly a light turns on called consciousness. Humans have consciousness, dogs probably do, lizards perhaps not as they are simple stimulus-response machines, bacteria have no brains so certainly not. Associated with consciousness is the ability to make decisions as an independent entity: free will. Cognitive scientists are madly in search of the magical light that turns on consciousness, a holy grail in our search to understand ourselves.

My developing position — I won’t call it a belief, but I’ll say I am considering it and its implications seriously — is to reject the above narcissism. I see what we define to be consciousness as a gradual increase in sophistication of these biological machines. There is not self-awareness and self-unawareness, merely a band of sophistication in which we communicate that there is a definite “I” and that it is aware of itself. We can communicate that to ourselves, by having a little simulated conversation in our brains in which we say such things to some abstract person.

My experience, particularly at the end of the aforementioned relationship, showed me that a great deal of my self-awareness — my free will — is a hoax. I listened, I reasoned, I concluded the best action. I watched as a ridiculous prediction took hold of my reasoning process. I watched as I carried out, in a state of mental contradiction, the opposite of what I had concluded. I watched myself crying, simultaneously astonished and unsurprised by the way things actually unfolded. I saw myself not as a single unified “I”, but as an ensemble of communicating (or not) decision-making machines, combined with a mechanism retroactively justifying my ridiculous actions.

That free will I was so convinced I had struck me as a process, always living a moment in the past, existing to analyze and retrain my unconscious decision making processes for the future. I was a sophisticated machine, but a machine. I am governed by the same laws as a rock tumbling down a landslide. When asking whether it is possible that I will not push publish in a few minutes and share my thoughts with the world, I’m expressing not a set of a decisions available to me, but a state of uncertainty about what my action will eventually be.

I was walking down the mall and had the strongest urge to pick up a brick and throw it through a window. Jail schmail, money schmoney, I just wanted to do something nuts to release the pressure. And I did not; I watched the urge pass, frustratingly, as I didn’t carry out the action I had pictured so strongly. I couldn’t; my consciousness is not a decider but a justifier, and the action was not there to justify. There was no immediate reason it could come up with for why I didn’t — I was even disappointed that I didn’t. One might view this post as the belated conclusion of my justifier of that situation — that it does not in fact have control of my actions.

I see the universe as a great continuous four-dimensional tapestry, that I have the capability to view only a little slice at a time. I cannot ground the idea that there is some “I” which can cause the tapestry to be altered meanwhile existing within it. What could “altered” even mean in this situation: altered from what? I have been seeing this as a physicist studying something external for quite some time, but to incorporate it, to understand it as something I am part of, is taking me to a whole new place.

Flattr this

My paradigm is better than your paradigm

On twitter I participated in the short snarky exchange:

@stevedekorte – Threads sharing state by default is like variables being global by default.
@luqui – state is like globals :-)
@stevedekorte – @luqui only shared state – which is why FP ultimately fails – it trades comprehensibility for shared state optimizations
@luqui – @stevedekorte, wow, sneaking “FP ultimately fails” as if an obvious truth in a reply to a Haskell programmer
@stevedekorte – @luqui, a bit like sneaking in “[all] state is like globals” to an OO programmer? :-)
@stevedekorte – @psnively @luqui my only issue with FP is the decision to trade expressivity and reusability for less state while calling it progress

The conversation goes on (and on) between many twitterites, having a fun but serious argument about this and that benefit of this and that style. Dynamic/static types come up, OO vs. functional, usefulness, mathematical foundation, learning curves; none of the standard artillery is spared. What irritates me about this style of argument is all the sweeping adjectives (1) used with no definition, thus impossible to support with evidence, and (2) synonymized with better.

In this post, I will draw attention to this irritating vocabulary, so that the next time you use it you can realize how little you are saying.

(Disclaimer: this post is not intended to criticize stevedekorte specifically, even though I identify two of the terms he used below. It was a long, typical programming zealot argument, and all parties involved were being equally dumb :-)

Expressive

A person is expressive if he expresses himself — he has an idea and wants to write it down. So I would say a language is expressive if it allows or enables the programmer to be expressive. Languages that restrict expression are not expressive. So we have the following facts:

  • Dynamically typed languages are more expressive than corresponding statically typed ones, because statically typed languages forbid you from expressing some ideas.
  • Multiparadigmatic languages are more expressive than languages which are paradigmatically pure, because the former allow you to express yourself if you are not thinking within the framework.
  • A language which you are fluent in is more expressive than a language you do not know very well.

By these observations, we might guess that Perl is the most expressive language, Haskell is the least.

Do you notice yourself already equating expressive with good, and thus perhaps feeling offended? Everyone wants an expressive language, right? Here are some reasons some programmers might not want an expressive language:

  • Most of my ideas are made of bullshit. Have you ever had a great idea, gone to write it in your blog, and realized it was nonsense because you were unable to write it? So writing is less expressive than thinking. Is thinking better than writing?
  • Every programmer has a different way of structuring their thoughts. An expressive language will bring out the differences in thought structure between programmers, and introduce impedance mismatches between programmers on a shared project.

I’m not arguing that expressiveness is bad. I’m just arguing that it doesn’t mean good, it means expressive.

Reusable

A language “is reusable” (to abuse language a bit) if code written in that language can be easily reused.

This “obvious” statement is hiding something very important; namely, reused how? For what? We are in an unfortunate situation in programming: code is designed to be reused in a particular way, and if you want to reuse it in a different way you are pretty much out of luck. An OO widget library is designed for the addition of new types of widgets, but if you want to reuse a program written in the library on a new platform you are in for a lot of work. A functional drawing library is designed so that you can transform and export your drawings in an open-ended variety of ways, composing new ways out of old ones; but if you need to draw a circle you have to build it out of lines, even if there is a much better way to draw a circle on your target. (This is essentially the expression problem).

An abstraction will always expose some things and conceal others. Different languages enable abstraction in different ways, which makes exposing certain things easier and others harder. The zealot will reply, “but in my experience, real-world programs are naturally organized around <insert preferred paradigm>, and <insert uncomfortable paradigm> doesn’t support that style as easily.” I would suggest to this zealot to look deeper into the definition of “real-world” to discover its many facets of subjectivity. (What domain do you work in? Who architected the real-world software you have worked on, and what was their background? What kinds of programs do you consider not to exist in the real world, and what values are you using to minimize them?)

Easy to learn

A language is easier to learn than another language if it takes less time to become competent/fluent programming in that language.

I don’t think this one is as automatically synonymized with “good”. Haskell programmers are aware how much relative effort was required to learn Haskell, and are usually grateful that they put in the effort. But all other things being equal, a language easier to learn ought to be better than one harder to learn.

The deadly omission in the above definition is that people are doing the learning. A language is easier or harder to learn to a single person, and that is entangled with their background, their approach, and their ambitions. When arguing “X is easier to learn than Y”, I encourage you to add one of the following phrases to the end:

  • for programmers who already know Z.
  • for people with a mathematical background.
  • for people with a non-mathematical background.
  • for children.
  • for me.

Or something similar. The following phrases do not count.

  • for almost everyone.
  • for people with a typical background.
  • for people who want to do useful things.

I’ll close this section with this remark: Haskell is the easiest language to learn, because I already know it.

Conclusion

I know I am frequently irritated by many of these kinds of words, and I’ve only mentioned three here. But you see where I am going. Respect the values of your fellow engineers. If you are a polyglot and like a paradigm, it probably comes from a set of values you have — a set of things you consider important, and that differ from the values of others. Concentrate on that; communicate your values, and try to understand the values of others. If you have toyed with a paradigm and quickly lost interest because of some surface feature (I have — e.g. I will throw out a language without support for closures) or impression, consider the possibility that you like what you like because simply because it is familiar (other equivalent notions: easy, natural). Which is fine, some people like to tinker with their thinking patterns more than others, but remember that you have trained yourself to think in a particular way, so consider that your “objective” judgements about these ultimately human languages could be biased.

(For the record, that last phrase originally read: “all of your ‘objective’ judgements about one of these ultimately human languages are biased”, which is quite a bit stronger than what I had intended)

Flattr this

Quantum Crackpot in Training

I have been working my way through Volume III of Feynman’s lectures, the one on quantum mechanics. A few months ago I watched his Quantum Electrodynamics lectures for the lay public and I was fascinated by the beauty and simplicity of the presentation. Now I want to dig deeper.

The basic idea is summarized in the quote (can’t find its source, probably Feynman though :-): “Everything that can happen, does. Physics is then reduced to the problem of finding out what can happen.” This is not philosophical many-worlds garbage postulating the existence of infinitely many alternative universes (I will get to that), but instead the interpretation of the Lagrangian form: if you want to find the probability amplitude of some event, you just add up the amplitudes for all the different ways it could happen. The generality of the principle is astounding, and making only very weak additional assumptions it is possible to completely derive the workings of electrons and photons (except for the mass of the electron, which is still a mystery). The rule is not just for electrons and photons though; those are just the easiest kinds of particles to get at. The entire universe works this way: the amplitude of an event is the sum of all the ways (including classically absurd ones) it could happen.

In the beginning of my studies, I was constantly tripped up by my conception of time. In the double slit experiment, a photon interferes with a version of itself leaving the excited atom at a different time. It was very hard to picture this when I was still attached to my idea of time and causality. This is the logic of the universe, not the dynamics. That is, we aren’t really computing the amplitude of an event to happen so much as the amplitude that, given some assumptions are true, some other thing about the universe will be true. We phrase the double slit experiment like this: given that this atom is excited at t0, what is the amplitude that this other atom is exited at t1? There is no notion of happening or the flowing of time, it’s just a connection between statements about the universe. Realizing this was an important step in my understanding. Of course, the way that these two atoms are connected does involve time — that manifests itself in the different “ways it could happen” and thus affects the amplitude.

Ok, so we have this logic which connects facts about the universe together as amplitudes, which are complex numbers. How do we take these amplitudes and get some information we can use? The rule is: the probability of an event, er I mean, a fact, is proportional to the absolute square of the amplitude. Simple enough. So you set up an experiment and calculate the amplitudes for all the different ways it could come out (you have to calculate all the ways, because the probability is only proportional, so you need to normalize them so they sum to one — I find this unsatisfying). Then you do the experiment, and what actually happens at the end of the experiment is one of those ways, proportional to the absolute square of the amplitude for that way.

This is extremely unsatisfying to me. Almost all of the resources I have used for learning QM have described it this way and left it at that. I’m pretty sure it’s because nobody really knows the answer to the next question: when, exactly, do you take the absolute square? If you take it too soon, e.g. before “the experiment” is over, then you will lose the interference effects and do not get an accurate answer. But you can’t just delay taking it forever, because then you only ever have amplitudes, not probabilities. There is this arbitrary barrier between the “quantum” world and the “real” world, and that’s when you take the absolute square. This is intentionally ignoring the idea that your experiment apparatus, your measuring devices, etc. are all governed by the quantum logic above as well, because that is too hard to think about. This is the piece I am determined to understand; I am interested in QM philosophically, not practically, so it is not at all satisfying to me to say “it works in practice, get used to it.”

The theory of quantum decoherence provides half of the answer. It shows how this interpretation of the barrier is equivalent to the state of the experimental apparatus (including the state of you, the scientist performing the experiment) becoming entangled with what happened in the experiment. Eventually the whole universe gets entangled with the result of the experiment and that’s what “really happened”. God got a bunch of amplitudes for the way the universe could be; he took their absolute squares, rolled the dice, and picked one. Now the arbitrary boundary has been pushed out as far as it can go — to the edges of spacetime — instead of being between experiment and apparatus. Quantum decoherence shows a sort of compositionality of this quantum logic. This is getting more satisfying.

I love it because it is right on the edge of my ability to conceptualize. All the “decisions” in the entire universe could go this way or that, and if they both lead to the same thing and have opposite amplitudes, they could interfere with each other and make that thing impossible. It is because the universe is a chaotic system, that small changes give rise to large changes, that we can’t observe quantum interference on large scales. These little decisions are very unlikely to lead to the same state. Entropy gives rise to the classical world.

When I get really deep into philosophizing, I explode into the annoying considerations of consciousness. Perhaps God did not pick a universe at random, but our consciousness did. Our memory must conceive of time linearly, it would violate entanglement not to, and that’s why we think there is a single “chosen” universe instead of the explosion of all possibilities. But whether all possibilities exist or there is a single universe chosen at random is likely not an observable distinction, so it is merely fodder for pipe dreams.

If there were some device that could measure some things about the universe, without disturbance, set up in such a way as to negatively interfere with itself when its measurements were “undesirable”, it could potentially control the way the universe would go. Now you see where the title of this post comes from. I have not been able to sketch this device as a black box, nor fully understand why it should be impossible. I suspect it has something to do with the uncertainty principle, the derivation of which I have yet to completely understand.

Quantum Mechanics is fascinating to me, and I am trying to keep my mind open to the deep, philosophical, passionate curiosity it invokes without descending into the insanity of a quantum crackpot. It is a challenge.

Inspiring you to be a quantum crackpot too? Flattr this

Freewriting

I am technically enrolled in classes again, but my heart isn’t in it. I have a middle school teaching practicum (awesome), and a writing class (great), and a larger dose of boring bullshit. Are these two classes worth $6,000? Hardly. I am on the edge of dropping out again. My life has been exploding into worlds of hippie love and search for purpose. I am high in the clouds, riding the shifting winds.

My writing class has shown me a wonderful outlet: freewriting. It is my source of peace these days. I sit down, get comfortable, and start moving my pen. Whatever happens, my pen has to keep moving. Sometimes I just repeat the same word over and over — I have filled up an entire page with a single word. Sometimes I go on a deep symbolic exploration of my subconscious, exploring dungeons of memories. Sometimes I write nonsense stories, sometimes I just write nonsense. Sometimes I focus on the shape of my letters, sometimes I write as slowly as I can, sometimes I write as quickly as I want. I have hypnotized myself in this book.

It is so much more visceral than thinking. I am forced to stay with a thought long enough to finish a sentence. A thousand other thoughts arise and fade away before I get to that blasted period. If I were just thinking, one of those thoughts would have brought me back to the deeply emotional experience of breaking up with a recent love, and I would spiral down for hours. But when I am writing there is more force, more intention behind the thoughts, even as I go off into an unconscious trance. A passing whim is less capable of derailing me. Or sometimes I will be in the middle of an exploration when she comes into my mind — Moriah, I write — and having acknowledged her presence I can return to where I was.

It is important that it be handwritten. I love watching the shapes of my letters change as my mental state changes; sometimes it looks like a doctor’s rushed scribbles, sometimes it is deeply sensuous and feminine. I can evoke a sense of liberation by ignoring the margins, filling up the entire page. I can get a sense of spaciousness by closing my eyes and letting my words land where they will. Sometimes I feel the urge to draw a picture (I have drawn very little in my life). I have freewritten on a computer before, but it has never felt like this.

My right brain is waking up again. Welcome back.

Frameworks

I’m in a postmodernism class at university this semester. Despite the eyerolling of my peers when I mention the topic, I find it very interesting so far. Today’s class got me thinking about some math.

In the past, I have worked a lot with frameworks for doing programming and math. I wanted to find a fundamental system in which all my ideas could be expressed; I latched on to Martin Bunder’s IΞ and IG as being particularly simple and beautiful. I used to be a compulsive programming language designer, searching for simple, beautiful ideas with which to express all programs. I still have the urge now and then, but never follow through anymore.

In today’s pomo class, we were talking about the postmodern view of modernism (as I suspect we will be for quite some time): having some framework in which to conceive of the world, of all of history, and viewing that framework as fundamental. If that framework begins to crack, then we throw it out and make a new framework (calling the new one “modern” this time) in which to conceive of everything. Postmodernism views this cycle as one that continues indefinitely in this stage of history.

Some of the culture of mathematics follows this trend (ZFC, NBG, Löf type theory, intuitionism), but especially programming languages follow this trend. We are always in seek of new frameworks in which all programs can be expressed: structured programming (Dijkstra), object-oriented, functional. There is leakage, but programmers tend to throw out old models with cracks and adopt new ones as if there will be no more cracks. There seems to be a swing toward the functional recently — dare we imagine that it has any cracks?

At this point I suspect some of you are already developing your indignant responses. As programmers, we are entrenched in modernist ideals. I seem to be criticizing this cycle, and surely if I am criticizing then something must replace it. Whatever replaces it is going to be just another cycle. Indeed, as I indulge in my postmodernistic ramblings (which I assure you I have no confidence in — it is only the second week), in the back of my mind I keep imagining a language which transcends these problems. But of course it does not, because it is itself just another fundamental system. The key for me, and all of us trapped in this mode of thought, is merely to observe without trying to replace it with something better, something new.

Another possible response is that this cycle of reinvention is the only way progress can be made. That is a very good point, but in it we are taking for granted the assumption that progress exists and is desirable.

Programming is a difficult thing to talk about in this context, because it is a medium that we use to create things, and we can (at least roughly) measure how good we are at creating things in various frameworks. Being good at creating things is an implicit goal for a programming system, which comes out of the idea that creating things is progress and progress is good. Mathematics may have a nature that will make this exploration clearer, and then we can perhaps take our realizations about mathematics and apply them back to programming.

You might say that mathematics is about progress. After all, the ultimate pursuit of mathematics is to prove as many theorems as possible; or so those who study mathematical frameworks would have you believe. I have never been enamored with math as a competition to prove theorems; I like it because it alters (not “improves”) the way I think. I replace constructs with which I used to represent ideas with new ones. I used to think of real numbers as “fractions with extra stuff”, now I think of them as programs incrementally refining information. It has led me to think more topologically and less algebraically. Is more topologically better? I doubt it; it is just more recent. It permits seeing analogies that we could not previously see, but at the same time it hides analogies that we could previously see (though we do not notice that half, because we have already developed our intuitions about those using the previous framework). Mathematicians of tomorrow may only think topologically, and they will find more analogies by “discovering” algebraic thinking.

Programming is not so different. I do love functional programming, but that is because I have taken a lot of time to develop those ideas. There are object oriented programmers who are very talented at expressing ideas in that language, and I cannot understand their designs (or, perhaps more accurately, why their designs should be considered better than many nearby designs). Good ol’ procedural structured programming is still a good way to communicate to a computer how to do something fast. As the future drives forward, the past is erased; when it is forgotten its niche will re-emerge and it will be re-invented.