4 ms·
They're good names for a couple reasons 1. The analogies made do hint at their meanings. 2. But at the same time, the names are more proper nouns than definit
by whateveracct 6y ago
They're good names for a couple reasons
1. The analogies made do hint at their meanings.
2. But at the same time, the names are more proper nouns than definitions. For something so abstract, it's better to give it an opaque, easy-to-remember name than to give it a "better" name that maybe oversimplifies what it is.
This is basically the "Functor" vs "Mappable" argument.
- formerly_proven 6y agoThey're practically useless for searching for them. Unsurprisingly trying to co-opt widely used terms tends to be ambiguous and confusing (cf. crypto <-> cryptography, cryptocurrency, and those are at least related). Perhaps the only exception in this group is "data lens", which works as a compound [1]. Guess what optics software does? No ETL, that's for sure. Optics patterns? Uh-oh. Optics development? Nuh-uh. Optics data? Turns out there are multiple companies with that name, and they're not doing ETL. Optics library? Image libraries of lenses (the kind you can touch). Optics computing? Sorry, that's a synonym of optical computing. Optics design? That's the engineering of optical systems. Optics scheme? Guess what arrangements of lenses are called... Optics programming? Aha, now the topic at hand actually manages to be in the majority of the results - barely, since four out of ten are still about that other thing humans have been at for a couple hundred years. Optics <programming language here>? Things for doing optical computations and simulations. [1] Also follows the rule of "if you're going to name something after a common word, maybe give it a qualifier not usually used with that word to make it unique and easy to find". Examples: sphinx (doc, search), click (cli), pyramid (web framework), pacman (linux), language (programming).
- jkachmar 6y agoIn response to [1], specifically: “Van Laarhoven optics” and “profunctor optics” are qualifiers for two of the more common constructions. In response to the naming in general: I’m not overly convinced about the naming thing considering that the Go Programming Language is not often confused with the game of Go, nor is the Rust Programming Language with the fungus or iron oxide.
- whateveracct 6y agoTry searching "optics Haskell" https://www.google.com/search?source=hp&ei=mL5-X7iCJNCs0PEPo9aJ4Ak&q=optics+haskell&oq=optics+haskell&gs_lcp=ChFtb2JpbGUtZ3dzLXdpei1ocBADMgUIABDJAzIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeOgIIKToFCAAQsQM6AggAOggIABCxAxCDAToFCC4QsQM6CAgAELEDEMkDOgUIABCSAzoCCC5QvjVYwUVg4EdoDnAAeACAAQCIAQCSAQCYAQCgAQGwAQ8&sclient=mobile-gws-wiz-hp https://www.google.com/search?source=hp&ei=mL5-X7iCJNCs0PEPo... First result is to the popular and well-documented `optics` library which is exactly this topic. It's perfectly discoverable. On that note, try googling "Haskell >>=" or "Haskell <$>". Good results for both. Looks like the "Haskell's symbols and esoterica isn't googlable" is a dead argument now :)
- tome 6y ago> On that note, try googling "Haskell >>=" or "Haskell <$>". Good results for both. Looks like the "Haskell's symbols and esoterica isn't googlable" is a dead argument now :) Wow, it works! I wonder when this happened.