Most developers don’t really know any computer language

Most developers don’t really know any computer language by Derek Jones.

From the post:

What does it mean to know a language? I can count to ten in half a dozen human languages, say please and thank you, tell people I’m English and a few other phrases that will probably help me get by; I don’t think anybody would claim that I knew any of these languages.

It is my experience that most developers’ knowledge of the programming languages they use is essentially template based; they know how to write a basic instances of the various language constructs such as loops, if-statements, assignments, etc and how to define identifiers to have a small handful of properties, and they know a bit about how to glue these together.

[the topic map part]

discussions with developers: individuals and development groups invariabily have their own terminology for programming language constructs (my use of terminology appearing in the language definition usually draws blank stares and I have to make a stab at guessing what the local terms mean and using them if I want to be listened to); asking about identifier scoping or type compatibility rules (assuming that either of the terms ‘scope’ or ‘type compatibility’ is understood) usually results in a vague description of specific instances (invariably the commonly encountered situations),

What?! Semantic diversity in computer languages? Or at least as they are understood by programmers?


I don’t see the problem with appreciating semantic diversity for the richness it offers.

There are use cases where semantic diversity interferes with some other requirement. Such as in accounting systems that depend upon normalized data for auditing purposes.

While there are other use cases, such as the history of ideas that depend upon preservation of the trail of semantic diversity. As part of the narrative of such histories.

And there are cases that fall in between, where the benefits of diverse points of view must be weighted against the cost of creating and maintaining a mapping between diverse viewpoints.

All of those use cases recognize that semantic diversity is the starting point. That is semantic diversity is always with us and the real question is the cost of its control for some particular use case.

I don’t view: “My software works if all users abandon semantic diversity.” as a use case. It is a confession of defective software.

I first saw this in a tweet from Computer Science Fact.

Comments are closed.