If paralysed by consumer choice I would lean on Which?[0] magazine which is run by the Consumers' Association charity. Perhaps there is something similar in your geography.
> In my student time. There was a shop where we bought "Beer", "Cognac" or "Vodka", with corresponding simple labels.
This reminds me of the grocery store in the film Repo Man[1] which had a few digs at consumerism. I prefer to know where my alcohol is from & who made it but I pass no judgement.
Change at tier one telecoms providers tends to be glacial. It follows hardware upgrade cycles that take ages to plan and implement.
I spent a decade writing element management systems. An element is a network device - switch, router, ROADM, etc. Often you give the customer kit & software and they spend a couple of years assessing it. This software would be installed on secure out of band networks with no route to the internet. 10/8 would have been adequate for the lifetime of the hardware currently in service - 200G stuff. However, that's not how things played out.
When I started working on EMS software IPv6 support was a requirement but it was just a box ticking exercise. No one was actually going to use it. A decade later IPv6 HAD to work for northbound and southbound traffic, on an internal network. Otherwise, no sale. IPv6 is being used in anger in telecoms. I have no idea how long that will take to filter to in band networks.
I witnessed some of those bunkers on a day trip to [0]Butrint. The tour guide told us they were constantly being told the country was on the cusp of foreign invasion during the dictatorship.
The locals had painted the domes in bright colours as a sort of added tourist attraction.
In the United Kingdom of Great Britain and Northern Ireland a number of banks issue bank notes. These banks print their own money because it is cheaper than paying the Bank of England for their notes.
The release of Java coincided with the rise of the internet. It wasn't just write once, run everywhere, it meant global interoperability. Mistakes were made of course.
String.format is much newer - it wasn't introduced until JDK 1.5.
The choice expression is intended to account for different I18N language conventions. Imagine a language where pluralization works differently to none/one/plural. If you don't work on localized applications you can mostly ignore the MessageFormat type.
MessageFormat is often used in conjunction with ResourceBundle and properties files. The string is likely externalized and distributed to translators. That's probably not the case for String.format strings.
In real life you would typically just have "File count: " and concatenate a number. Translators weren't wild about it but they could work with it. Translators are typically not programmers and many would break any complex expression.
All the types in java.text are a bit archaic. They are basically impossible to reuse in a thread-safe manner. MessageFormat delegates a bunch of other Format instances. There's a lot of parsing and state there. Time zone handling is awkward.
I agree about the error-prone nature of this approach. I have written a library[0] that verifies MessageFormat syntax in properties files at compile time and generates typed methods for each property.
Their Java IDE is one of the few they release with a free community edition. There is a commercial version with additional features. I expect this is a result from arising where Eclipse and NetBeans open source IDEs existed.
I like GoLand and IntelliJ. Superior tools to others I have tried.
If paralysed by consumer choice I would lean on Which?[0] magazine which is run by the Consumers' Association charity. Perhaps there is something similar in your geography.
> In my student time. There was a shop where we bought "Beer", "Cognac" or "Vodka", with corresponding simple labels.
This reminds me of the grocery store in the film Repo Man[1] which had a few digs at consumerism. I prefer to know where my alcohol is from & who made it but I pass no judgement.
[0]https://en.wikipedia.org/wiki/Which%3F [1]https://en.wikipedia.org/wiki/Repo_Man_(film)