4 ms·
> In general, we try to only create new names when the old names are for a sufficiently different concept. You renamed the godforsaken PUNCTUATION, man. What e
by cwyers 11y ago
> In general, we try to only create new names when the old names are for a sufficiently different concept.
You renamed the godforsaken PUNCTUATION, man. What exactly is the different concept behind an equals sign in Urbit that you have to call it tis? Or the colon, what conceptually did you change about the colon that it's got to be a col or the comma that it's a com?
- pcmonk 11y agoThis is true and is an exception. Even though punctuation is punctutation, we speak it so much more than most other people, so we've found it convenient to give it convenient, one-syllable names. Using the new names is, of course, completely optional. End-users will never even see them.
- urbit 11y agoHow many times a day do you want to say "percent equals" or "tilde ampersand," rather than "centis" or "sigpam"? Worse, you may not spend a lot of time reading code out loud, but when you read your brain still thinks the sounds. Of course, you're free to prefer keywords to digraphs. But sometimes I worry that there's a reason the 787 looks just like the 707 [1], and it's not at all about airplanes... [1] http://idlewords.com/talks/web_design_first_100_years.htm http://idlewords.com/talks/web_design_first_100_years.htm
- JoshTriplett 11y ago> How many times a day do you want to say "percent equals" or "tilde ampersand," Zero if I can help it. Even if I'm talking about code aloud, I normally do so semantically, saying what the code is doing, because people are more than capable of reading the code itself. (Same premise as commenting code.) If I'm actually reading the exact symbols aloud, a rare occurrence, then I'll say things like "mod equal" or "mod eq", "tilde and", etc. If I'm reading "#include <stdio.h>", I'll say "include standard I O", not "pound include space angle s t d i o dot h angle newline". > Worse, you may not spend a lot of time reading code out loud, but when you read your brain still thinks the sounds. No, it absolutely doesn't. Learning to avoid reading-aloud internally is one of the first things taught in speed-reading of prose, and the same concept applies to programming. > Of course, you're free to prefer keywords to digraphs. But sometimes I worry that there's a reason the 787 looks just like the 707 [1], and it's not at all about airplanes... That may be, but what you've done here is on par with APL saying "you need a completely non-standard keyboard and character set to program this language", but worse. If you want to introduce new names for symbols, that's a separate exercise from trying to make a new programming language; the latter is quite hard enough.
- urbit 11y agoBut worse? I assure you that we're not shipping Urbit with non-standard keyboards printed with "com" rather than ",". If these syllables rub you the wrong way, you're perfectly free to pronounce them any way you like. Most people aren't speed-readers. I am, but only because I learned at an early age. I don't know anyone who speed-reads code in the sense you mean.
- eru 11y agoThe grandparents post's first argument about semantic reading was much more important than the speed reading bit.
- urbit 11y agoThis works fine for C, which is a keyword language. What you'll find if you look at Hoon is about 100 combinator runes, which are digraphs like "%=" ("centis") or "|-" ("barhep"). (There is of course a power-law usage distribution -- a few common runes dominate.) If we had to invent and remember semantic names for each of these runes, that binding would really be a lot of work to remember. We could say "mutate" instead of "centis" and "loop" instead of "barhep". Remembering these bindings would be quite a lot of work. Of course, we could use reserved words directly; you can experiment with translating Hoon into reserved words. (The earliest experiments used keywords with a sigil, like ":loop".) To my eye the keywords look hideously verbose and are easily confused with symbols. You also lose the ability to classify, say, "|=" and "|-", as closely related runes. This is especially useful with unusual, rarely used runes; what is "|/"? You might not know, but you know that it starts with "|", so it makes a core.
- JoshTriplett 11y ago> If we had to invent and remember semantic names for each of these runes, that binding would really be a lot of work to remember. So is remembering what all the runes do; if the names and the functions relate, they're both easier to remember.
- molyss 11y ago> Worse, you may not spend a lot of time reading code out loud, but when you read your brain still thinks the sounds. Probably correct. But then for names you are not familiar with, the name gets mapped into the equivalent and known concept in your working memory. I usually model this as a very small LRU stack where old objects get pushed when you exceed the size. The stack is considered to be around 7 concepts deep. So just by overloading these 2 words, you're potentially reducing working memory by more than 20% (increasing mental load by much more due to constant swapping in and out of working memory). The brain is amazing I know wikipedia is not always right(tm) but https://en.wikipedia.org/wiki/Working_memory#Capacity https://en.wikipedia.org/wiki/Working_memory#Capacity
- kenko 11y ago"Your brain still thinks the sounds" is hilarious.