I’ll cop to using “brainwash” in an ungenerous way.
For me, the term was hot-button because of Patty Hearst but today I understand the term as such to be discredited, so in fact I used it jocularly, though not unseriously.
I did intend to say that we can’t think rationally about the try construct. An expression that throws is simply too special in the Java ecosystem. (More later.)
I did not intend to compare Scala syntax to various forms of coercion that are applied cruelly and unusually in this world.
Since I am liable to express myself in terms that might reasonably be construed to be over-the-top, I’m willing to justify this over-the-top term in this context.
I think there is a distinction between language policing which says “You can’t say that” and a conversation which says “You have to justify your words, or at least use more words.”
In the spirit of using more words, my Java friend insists that Javadoc list all throwables, and also that throws clauses list unchecked throwables. This is so that the IDE will always tell you what throws where. I prefer the Scala solution, that everything throws anything, and you catch where it is meaningful to do so. I just remembered the phrase, “catch as catch can”.
So I do think there is a “throws” culture who buy into throwing as a way of passing control up the stack, as opposed to a functional or value culture who would prefer to pass a value up the stack, perhaps an Either.
I just experienced this distinction recently in a Java project where I had introduced a Try
. I added some API and realized I could now just return a Try
. I felt like such a fool.
So I do insist that our ability to conceptualize is limited by previous thinking. Maybe someone could remind me of the term for that, something more precise than “brainwashing”. It seems to me that Althusser had a word for it, but after so many years, the word escapes me.
Edit: sorry to derail the conversation, and also thanks for the responses attempting to parse what I might have said, etc.