It would seem only logical that a major advantage of a community is access to criticism. Ok, yeah, that‘s a bad word. Let‘s back up. To perspective. Wait, what‘s the difference between those things? If someone has a different perspective on something that we have done, we immediately think that they:
- don‘t like us
- are mean
- are probably a troll
- they don‘t have anything else to do
Nevermind what you think of Plato, it‘s kind of important to note that the Dialogue was the foundation of Western Philosophy. Oh, wait, that‘s also a weak argument. I keep using these words that we all know are of little value.
I got into an exchange about the Date/Time API today in a Kotlin forum. I made the statement that after all this time while Joda and now JSR-310 is certainly night and day better than the horrible date/time stuff that was in Java originally, I was not really thrilled with the result. My main reason? Because I still find every time I return to it I have to use the docs to figure out the simplest things. That‘s an immediate #fail in my book.
What happened next was interesting. One person came on and agreed. But then 2 people came on to say that Date/Time is hard and Stephen kept at it a long time and yada yada. My retort was that I was not criticizing his effort, his intentions, his diligence, just saying that you want to become conversant in a language. Eventually, I stopped talking.
As I was ruminating afterward about the pointlessness of saying anything about anything, I couldn‘t help but notice a bunch of ironies.
- Kotlin only exists because of the lack of fluidity of Java
- On another channel the same day, there was a discussion mocking the fact that Java 10 might introduce var (Kotlin already has it, and Swift). They were mocking that you would have to declare things the old way with a type, so in that context, said community sees itself as a vanguard of syntactic concision. However, my noting a lack of it in an API that took 15 years to finally make it to the pass is to be argued against.
Why? This is the open source world's primary taboo: though shalt not criticize the donator of time.
But then my brain exploded. JSR-310 was delivered in a commercial release by one of the richest companies in the world, headed by a man who talks about how hard it is to keep his koi pond adequately stocked. Seriously, pick your favorite gilded age robber baron and that person will be a candidate for a hagiography next to Larry, whose last public utterances were about how thrilled he is with the cloud because his own bloodsucking sales people will not get commissions for as long as they used to during the horrible packaged age. Here's a man who‘s fighting for change for all the right reasons!
One of the super sick ironies of this is that in 20 years of being a supposedly community managed language, Date/Time is one of the only cases where Java admitted failure and allowed a replacement. Of course, it took pretty much the full 20 years to get it, and most people are still not using 8 (how to remove it from the Mac is still my most popular question on Stack Overflow). What is the difference between this kind of community adjudication and say X.500? judging now from 2 decades out, considering results: not much. Quickest way Swift could shoot itself in the head and guarantee failure? Adopt this approach.
Doesn‘t that sound like I am saying they should not have an open means of criticism? No. Because the communities that think they have that almost never do. Swift has shown it will respond to criticism. It is incorporating feedback, as exactly that: feedback. Someone who can listen to critics, understand what they are saying and respond has become a unicorn. The counter life of the open source saint is a long suffering often lone millstone laborer who dragged his cross up the hill. The saddest part of the story to me is the time vector. Anyone who doesn‘t think it would be rather trivial to come up with a better Date/Time API in 1/100th of that time given literally a handful of resources and perhaps a pool of people to try their product and provide feedback is living in a fantasy land.
Any consideration of open source opprobrium in a matter that falls under the Java rubric, I am going to have to just call complete bloody b.s. on. I pity all the people who made huge contributions only to have their work scooped up and made a support system for a new Software Serfdom.