Programming in Applications

First a true confession – regular expressions are a pain for me. Oh don’t get me wrong, I think they are wonderful things in their place. I took a couple of compiler related courses and I studied them seriously. But somehow I still struggle with them. I am apparently not alone in this. I heard a talk once where the speaker (not sure who they were quoting) said “Say you have a problem, and say you decide to use regular expressions to solve it, now you have two problems. ” Everyone laughed. Though since this was a serious computer science audience I’m sure a couple of people were thinking “I don’t have a problem with regular expressions” but were too polite to say anything out loud.

I do however love to parse strings. No, really I do. Does that make me weird? Probably not as much as other things but let’s not get into that. Not all programming languages support regular expressions and many software tools that allow some level of programming also don’t support regular expressions. That gives me an excuse to avoid regular expressions from time to time. Recently Clint Rutkas, a very bright guy who probably has no trouble with regular expressions, was asked for help parsing strings using Excel. He blogged about it here.

Did you know that there were string parsing and manipulation functions in Excel? I’m sure I’ve seen them in function lists but honestly I never paid much attention before. We don’t often think of spreadsheets as programming platforms but clearly they are. There are functions and expressions to build. There are decision structures like IF and VLookup (one of my favorites). There is even conditional formatting which I really like to use to highlight activities. And the list goes on and on. That’s not even including Visual Basic for Applications which lets people create and use their own functions. How many of us really use all this functionality? Not many of us.

And that is something I see as a problem. We have this powerful tool available for people of all backgrounds and jobs and interests and yet most people only use a fraction of the power that is there. Suppose more people understood how to program though? Suppose that thinking computationally was a natural and developed part of their processes? Suppose people were more aware of the possibilities? What would they do? Computer spreadsheets have already allowed people to do a lot that was never practical before. If more people could use the programming capabilities to even a little bit higher of a degree spreadsheets would become even more powerful and more useful.