
#iotashaming - ingve
https://sean-parent.stlab.cc/2019/01/04/iota.html
======
atombender
Something seemingly glossed over in these discussions is whether calling it
"iota()" is even that helpful.

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.

~~~
gumby
It’s just a word to learn, like lambda or for. At the end of the day you have
to learn the semantics anyway; the label should be below your noise floor.

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.

~~~
alangpierce
You can argue that "it's not so bad, just learn it", but the confusion from
domain-specific jargon can really add up, from my experience, and I think more
understandable terminology is almost always better. I think that if we want to
design a welcoming system, we should try to make it intuitive and limit the
number of weird words that you need to "just learn". Imagine if every CSS
property was some greek letter instead of a descriptive name. Experts could
still use it, sure, but it would be even more hostile to beginners.

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...](https://gist.github.com/klaaspieter/12cd68f54bb71a3940eae5cdd4ea1764)

------
binarymax
I don't understand the point this article is making, and don't agree with the
sentiment either.

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

~~~
orangeeater
> One should not feel embarrassed for not knowing something and then asking
> more in order to learn.

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.

------
EdwardDiego
If I understand correctly, _iota_ fills a data structure with a range of
incrementing values.

...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?

------
soneca
_" I gave a lecture recently and a student stopped me. “I’m sorry, I don’t
know what a coroutine is. Can you explain?” More than happy to. That level of
embarrassment.

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?

~~~
protomyth
I'm only going to feel embarrassment if it was some kind of prerequisite for
the lecture, and like you I would probably just look it up afterwords
(probably on YouTube).

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.

------
lclarkmichalek
From
[https://en.cppreference.com/w/cpp/algorithm/iota](https://en.cppreference.com/w/cpp/algorithm/iota):

> 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.

------
KeyboardFire
While I agree that the criticism "you're just trying to look smart" is
misguided, it's a bit ironic that his response had the implication that "if I
know this thing and you don't then you should be embarrassed [because I'm
smarter/better than you]."

(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.)

------
mschuetz
iota is silly because it's non-descriptive even though there are so much more
descriptive alternatives, such as simply naming it range. To me, iota falls
under the same category as naming variables acig, gfeq, fqcl, aiwn, or any
other permutation of of 4 letters that have nothing to do with what it does.

~~~
meheleventyone
I also keep reading it as i-to-a which shows my own bias but doesn’t help it
being immediately understood.

~~~
garmaine
Also, maybe shows your dyslexia.

------
Carpetsmoker
Entire articles and Twitter battles being fought over a simple _iota_ keyword.

Sometimes I think the software industry is deeply silly.

Actually, I think that a lot of the time.

------
superjan
Is it just me who thought this was about the itoa C function?

------
chronial
> By embarrassed I meant as when you are in a foreign country and you can’t
> remember the native words for please or thank you.

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.

------
shaklee3
While I don't really care what the history is, the name seems odd to me since
I thought it was itoa() at first. It seems too similar to a common function
(that nobody should use anymore).

------
rmrfrmrf
Being embarrassed isn't the same thing as telling someone they should be
embarrassed.

------
ups101
meanwhile, in crypto, a bullish trend is picking up speed:
[https://coinmarketcap.com/currencies/iota/#charts](https://coinmarketcap.com/currencies/iota/#charts)

------
based2
New Testament: "until heaven and earth pass away, not an iota, not a dot, will
pass from the Law" (Mt 5:18)

[https://en.cppreference.com/w/cpp/algorithm/iota](https://en.cppreference.com/w/cpp/algorithm/iota)

[https://superuser.com/questions/841439/excel-auto-fill-a-
col...](https://superuser.com/questions/841439/excel-auto-fill-a-column-with-
increment?lq=1)

~~~
stochastic_monk
My first context for iota was biblical, and I’ve used it as an expression my
whole life (e.g., “Not one iota”). I was surprised to see it in STL, but after
learning its history, I’ve been happy to use it in my code without mocking it.

