Regex UCR: Why This is Different and You Are Not Your Users (A Sidestory)
There was ample discussion on both Reddit and HN about Regular Expressions You Can Read. The question I have for the critical dev community is: Are you talking to help people learn, or to keep your tools just the way you like them?
At 80K visitors, the original post struck a nerve. I feel it’s important to find more connection with as much as possible of the regex community, and with the wider developer community. To start working together to solve this.
Below I present the basic background ideas for the work. They are core to making any product that has appeal to a wider public, i.e. that draw people as users of your software.
Do you like to think are in it to serve your users? Do you believe that the kind of help you are giving, is what your users actually want and need?
How is this related to regexes? In every way.
The Regex You Can Read (or Regex UCR) vision is to make a tool that is truly accessible to all users. The below quotation describes well the issue we are up against, and applies to regexes too:
Learning to configure Sendmail via M4 macros, or struggling with an Apache virtual host setup is not real knowledge. If such a system one day is no longer in use, what remains in your hands, or better, in your neurons? Nothing. This is ad-hoc knowledge. It is like junk food: empty calories without micronutrients. -antirez
What are the jungle of regex escaping rules, or the context sensitivity of commands? Meanings varying, for example, inside and outside brackets? Junk food for the mind. Just… needless, other than to those who like to keep life ASCII.
A lot of the cognitive burden could be moved off the user’s mind, on to the processor.
The Expert and the Novice Points of View
There are two ways to look at Regex UCR and its identity vis-a-vis other tools in the space. There are two perceived user groups: Experts who have a voice in the regex community, and novices who tend to believe the experts and thus remain silent about their actual needs.
Novices: It appears very likely, also judging by the nearly 80K visitors of the previous posts, that there are many novice users to whom regex barrier of entry is just too high. We can overcome that barrier.
We target those people, whose professional role doesn’t permit an intensive investment in maintaining an active working regex skill set. For them, Regex UCR provides the only viable user experience for being interested in using regexes in the first place. It does not require memorizing arcane conventions.
The main competitor at the moment for Regex UCR is not regex itself in this space — nor any of the existing software tools— it is doing things by hand, as no usable alternative exists.
All the current web tools use the traditional regex syntax, which in itself poses a cognitive burden that is too much for many people. Or they are diagram editors, which are too elaborate, and do not facilitate actually working with regexes.
Regex experts who seeing a benefit in Regex UCR see it mainly as a pedagogical tool. “It can help novices get started learning independently”, they might think. And that’s true, of course.
Even this viewpoint is created as a result of the ideal that a regex user needs to master regexes deeply. Experts don’t come to think of the masses of users who find the basic functionality sufficient — if it only were usable. They don’t realize that for a huge part of the population, learning may not happen once and instantly go deep as the tool itself.
For a large percentage of users, usage of regexes is currently built on repetition of the initial learning phase. They may never be interested in going beyond that, as they tend to forget even that initial learning phase between uses. With Regex UCR, the initial phase has at least the chance of sticking, so users may be interested in learning even more.
Ultimately: You Are Not Your Users.
The basic core principle behind all usability work, including Regex UCR is: You Are Not Your Users. Misunderstanding this is the reason why the vast majority of comments about this on reddit and hacker news are so deeply misguided. It is also the reason why a tool like this doesn’t exist yet.
Regex experts have long since forgotten the dynamics of the pain of learning regular expressions. They were likely very motivated to learn regexes deeply in the first place — that’s how they became the experts they are now, after all. So the understanding that a sea of users exists that want to use regex but do not want to invest so much in learning it, is a blind spot to these experts.
How come is it so difficult for many to understand just how deeply true the principle of You Are Not Your Users is? While this principle has sound theoretical basis, it is hard to really learn it in a way that is useful in practice, without real hands-on experience.
Have you actually usability tested your UIs? After you do this enough, you start to realize just how little you understand your users’ point of view. I’m still learning myself, time and again.
The very fact that you are a developer makes you incredibly blind to the vast spectrum of variety there exists in humankind in relation to ANY computer related skill. To create successful software, overcoming this deep bias is a basic requirement. Doing usability testing of some kind is the path to gaining that insight.
Please join and help us!
Our project needs your technical help. But to be able to help, you need to get out of your professional developer circles and go outside to understand why this is really needed, and how none of the existing solutions even begin to help.
The conversion from dialects to a visual syntax is not trivial, for example. We need all the hands we can get. If you still have any doubts, please respond to me to this article. Make your questions as specific as possible, so we can move forward. If you want to help people learn (not just show how knowledgeable you are), this is your chance. I really am here to make this happen.
If we can find enough people to join, we can get crowdfunding and make it open source from the get-go. Otherwise, we may need to play it safer and keep it closed until funding is secured such that we can make sure this is sustainable. All I care about is that we actually get there. Any thoughts on this are welcome.
Contact me (Olli) via this snappy form or on Twitter, so we can get you on our Slack channel and talk. We have a github repository for this too, waiting to get published once we have something more tangible — if you want access, just ask. I also have another post coming up that details the whole of the app design further.
P.S. Like a simple exercise on human centered design? Consider how this video relates to the above.