BVC vs BHC: A tale of two programmers
Once there was a developer, who we will call Dave, who took on a new position.
It was a voluntary position, leading an open-source community project.
The developer was skilled and experienced in BVC, which was sort of what the project was about.
But after some time, the project began to experience problems and sometimes broke down completely. People became disheartened and left the project, or stopped contributing and fell silent.
Another developer felt bad about this and began to suggest that Dave might have made some key mistakes, which could be corrected.
Dave insisted that all the BVC he’d committed to the project was fine and ran without error. But he would fix this misunderstanding, he said, and he committed new, better-commented BVC, less compact and terse, but still with the same effect.
— ‘Done.’, he added to the ticket, and closed it.
— Ah, said the other developer, but I think you’ve still misunderstood. This particular part of the project really needs to be written using BHC. You appear not to be too familiar with BHC, or with the project’s fundamental need for it in this area.
— My BVC is impeccable! I don’t see what the problem is! Dave said, but begrudgingly committed yet more detailed BVC code, which had exactly the same effect, and now the project had been problematic for even longer, and people were even more dispirited.
— It really does require BHC, said the other developer, a little frustrated by now. — BVC consists of simple, declarative statements one after the other and doesn’t allow input. Each line of BVC ends in a period. If you were using BHC code, you’d be ending each line with a question-mark, see? It’s careful about what it outputs but forgiving about what it accepts. And the other developer gave him some examples.
— I have always worked this way, said Dave. Some people think my style is a bit terse, some people have told me it causes problems, but I don’t see why I should change. People should just deal with it. I’m right. They’re wrong.
— Even if it’s causing problems for the project? asked the other developer.
— Hey I’m not perfect, this is just the way I am, said Dave.
— So, you don’t want to learn BHC, is that right? BVC is the only way you know how to operate. Even though everyone would agree your position as leader of this project pretty much requires experience in BHC, and you knew that when you started? And in-depth BVC isn’t actually so much of a requirement to be the leader?
— Can’t we just move on? Said Dave. And he committed yet more detailed BVC to the project, and seemed puzzled that he didn’t get more credit for it.
— In a sense, you don’t really believe in BHC, do you? Said the other developer. — To you it’s a kind of folk belief, like Bigfoot, you feel that BHC doesn’t really *exist*, despite the fact that there are books on it, and videos and training courses and successful people who’ve made careers out of it, and people who would happily give you hints about how to learn it. And the person who created this whole project said it was the most important thing he’d ever done?
— Not sure what your point is, said Dave, and the other developer gave up and unsubscribed from the project mailing list once and for all.
In case you’re not familiar with these languages, the thing that Dave was really good at was Being Very Clever. The skill he really needed was Building Healthy Communities.