#iotashaming
sean-parent.stlab.cc
sean-parent.stlab.cc
The fact that a lot of software engineers -- engineers, not mathematicians! -- are unfamiliar with it at least points to an impedance mismatch between the standard and its intended users.
Calling this function "iota()" asks the reader/user to carry around with them a considerable history of CS/maths. If you're a physicist writing code for the LHC, sure. A game dev working on a AAA game? Possibly not. It's not a helpful term if you don't already know it.
On the other hand, something like "std::sequence()" or "std::fill_range()" would be obvious to anyone, math degree or no.
Musicians don’t complain about having to use Italian words (e.g. fortissimo). Objecting to the foreign origin of iota (where the foreignness can be from its Greek origin or mathematical origin) is not worth the effort.
So your comparison doesn't hold. Standard library functions should not require the memorization of obscure words.
Iota is particularly bad not just because it's hard to understand and remember, but because it's easy to misunderstand. In English, "iota" usually means "a little bit", so my initial guess (after re-reading it a few times to confirm it wasn't "itoa") was that it was a small float value, maybe some variant of epsilon.
Relatedly, I'm a fan of Elon Musk's email against acronyms at SpaceX: https://gist.github.com/klaaspieter/12cd68f54bb71a3940eae5cd...
The author of the article insists that iota comes from APL, where perhaps it is fundamental. I don't really appreciate the relevance, since C++ isn't close to being APL, and it seems like it's one of very few concepts taken from APL.
It comes across a homage to Ken Iverson's APL more than anything, which makes it seem arbitrary.
One should not feel embarrassed for not knowing something and then asking more in order to learn.
The correct term is not embarrassment, it is inquisitiveness - which must be encouraged and not shamed
Agreed: ignorance is not embarrassing. We're all ignorant about most things.
But it is embarrassing to say something like "why'd they name iota after a Greek letter? To seem smart?" As this article explains, there is a history there and it doesn't have anything to do with "seeming smart".
I didn't know the history of "iota". I'm only vaguely familiar with APL. And I've never listened to a Turning Award lecture. This makes me ignorant. But I also didn't criticize this feature from my place of ignorance because I'm aware of it. Had I done so, it would be embarrassing.
I have criticized things from ignorance in the past, and it was embarrassing.
The point is not that you should feel embarassed by your ignorance, but that you should not feel proud about it.
...at the risk of sounding ignorant (perhaps I should be embarrassed?) why is iota a clearer name than, say, range?
I do have to admit upfront that I've not spent overly much time on APL because in my day to day programming life, it's merely a historical curiosity that required a special keyboard.
Also, the author's assumption that a senior software developer should have studied a lecture from 1979 (that runs to 380ish pages) as a matter of course is, well, bloody odd. I've read Joe Armstrong's dissertation on Erlang from cover to cover because it was relevant to me. Can I now assert that any senior developer who has not should be embarrassed?
If you have a better word, please provide it. But I believe embarrassment is the correct emotion to feel in response to one’s own ignorance."
"Embarrassment", for me, is definitely not the right word.
If I feel embarrassed, I do not ask. I will go quietly google it.
"Bothered" might be a better word?
I would admit to ignorance if I have never learned the subject and forgetfulness if I had learned it and forgot or just had a "brain fart" and temporarily forgot which would leave me annoyed at myself. I think this article misuses embarrassed.
> The function is named after the integer function ⍳ from the programming language APL.
The article spends a lot of time talking about how a lot of things leading up to std::iota are very important, but not very much time talking about why they're important.
(I think that was the source of much of the objection to the comment, and the post makes no attempt to apologize for it, even if it was unintended.)
Sometimes I think the software industry is deeply silly.
Actually, I think that a lot of the time.
The reason why this is embarrassing is because it might imply a certain disrespect for the country you are visiting. But neither does a programming language and its community deserve the same level of respect as a country and its people, nor is the history of iota() comparable to knowing the word for thank you.
No visitor to England should ever feel embarrassed in any meaning of the word for not knowing why some food words have french origin and others don't. Nor should they need to apologise for stating that they find that confusing.
https://en.cppreference.com/w/cpp/algorithm/iota
https://superuser.com/questions/841439/excel-auto-fill-a-col...