Monolune

The Problem with Languages that have non-unique names

There are languages that have unique and mostly unambiguous names. "Prolog", "JavaScript", and "OCaml" come to mind. In contrast, other programming languages have non-unique names. Take "Java" for example. It could refer to the Java programming language, Java island, or Java coffee. There is also "Python", which could be a snake. There is also "Scheme" and "Racket".

The name of the language can sometimes make it difficult to get relevant online search results. Having a non-unique name is not generally a problem for most languages because their alternate meanings have little to do with computing or technology, and so the alternate meanings do not pollute search results. When search results are polluted, it can be tough to search for online documentation, for answers to programming problems, and for general community discussion about the language.

The most problematic languages I know are "Processing", and the ML family of languages (in particular, Standard ML). In the case of the Processing language, the term "processing" is so generic that it could be used to describe a whole lot of things in computing alone, not to mention in other fields. The result of this is that I see people searching about p5.js instead of Processing (p5.js has features similar to Processing, but uses JavaScript). That solves the problem most of the time. In the case of the ML family of languages, searches for "ML" yield results about Machine Learning instead of ML (Meta Language). Searching about Standard ML yield slightly better results, but not much better because if the very small (or non-existent) Standard ML community. OCaml is an easy ML language to search for because of its unique name. Haskell (not really an ML) can also be considered non-unique because of Haskell Curry, and because there are commercial enterprises with the same name.

Languages with unique names make searches a lot easier. In addition, having a monopoly over search term makes for better marketing. I do not know how important these considerations are to the people who have the privilege of naming languages, but I think it is something they should consider. I fully recognize that it is difficult to take uniqueness into consideration when the future is unknown. ML is blameless because of its age. I do not think anyone could be expected to expect the massive use of "ML" to refer to Machine Learning. In cases like the Processing language, however, it would be nice if people would strongly consider not using generic terms for their language.

A sketch made using Processing