summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2020-02-17 16:17:51 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2020-02-17 16:17:51 +0100
commit631a40d69d7fb4e5beff90039d21da5472dd1020 (patch)
tree8e9d9dc68c506fe309ccef784fe4b59853e98add /doc
parent8e11d447440b44990432ac838953a8cde4ef914f (diff)
downloadcontext-631a40d69d7fb4e5beff90039d21da5472dd1020.tar.gz
2020-02-17 12:10:00
Diffstat (limited to 'doc')
-rw-r--r--doc/context/documents/general/manuals/luametatex.pdfbin1183590 -> 1183610 bytes
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-metapost.tex12
-rw-r--r--doc/context/sources/general/manuals/musings/musings-names.tex325
-rw-r--r--doc/context/sources/general/manuals/musings/musings.tex5
4 files changed, 335 insertions, 7 deletions
diff --git a/doc/context/documents/general/manuals/luametatex.pdf b/doc/context/documents/general/manuals/luametatex.pdf
index 766e9a709..95e7786fe 100644
--- a/doc/context/documents/general/manuals/luametatex.pdf
+++ b/doc/context/documents/general/manuals/luametatex.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-metapost.tex b/doc/context/sources/general/manuals/luametatex/luametatex-metapost.tex
index 5128f3d2a..6cee0f493 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-metapost.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-metapost.tex
@@ -86,10 +86,10 @@ Note that the new version of \MPLIB\ no longer uses binary mem files, so the way
to preload a set of macros is simply to start off with an \type {input} command
in the first \type {execute} call.
-When you are processing a snippet of text starting with \type {btex} and
-ending with either \type {etex} or \type {verbatimtex}, the \METAPOST\
-\type {texscriptmode} parameter controls how spaces and newlines get honoured.
-The default value is~1. Possible values are:
+When you are processing a snippet of text starting with \type {btex} or \type
+{verbatimtex} and ending with \type {etex}, the \METAPOST\ \type {texscriptmode}
+parameter controls how spaces and newlines get honoured. The default value is~1.
+Possible values are:
\starttabulate[|l|p|]
\DB name \BC meaning \NC \NR
@@ -353,8 +353,8 @@ represents a knot.
\stoptabulate
There is one special case: pens that are (possibly transformed) ellipses have an
-extra string-valued key \type {type} with value \type {elliptical} besides the
-array part containing the knot list.
+extra key \type {type} with value \type {elliptical} besides the array part
+containing the knot list.
\subsection{Colors}
diff --git a/doc/context/sources/general/manuals/musings/musings-names.tex b/doc/context/sources/general/manuals/musings/musings-names.tex
new file mode 100644
index 000000000..55641ecd9
--- /dev/null
+++ b/doc/context/sources/general/manuals/musings/musings-names.tex
@@ -0,0 +1,325 @@
+% language=uk
+
+\startcomponent musings-names
+
+\environment musings-style
+
+\startchapter[title={What's in a name}]
+
+\startlines \setupalign[flushright]
+Hans Hagen
+Hasselt NL
+May 2019
+\stoplines
+
+\startsection[title=\TEX]
+
+I sometimes wonder how much the fact that English is the language mostly used in
+programming environments influences the way one looks at a program. For instance,
+translating the names of an operating system \quote {windows}, an image
+manipulation program \quote {photoshop} or a text editing program \quote
+{wordperfect} to Dutch makes them sound kind of silly to me. The name can
+influence what you buy or are willing to use. These are examples of commercial
+programs but there are plenty examples of such naming in the open source universe
+too. I write this in my own bad English so that other non|-|English speakers can
+try to do a similar exercise.
+
+So, when I was reading an article about \CPU\ technology called \quote
+{thread|-|ripper} and after a while also saw the usual talk of yet another bunch
+of technologies marked as \quote {stack} and translated that to Dutch it again
+made me feel somewhat puzzled about such names. From there it was a small step to
+wondering about programming languages, and especially the ones I use: \TEX,
+\METAPOST, and \LUA.
+
+One can even wonder to what extent the quality of programming is influenced by
+the names of commands and keywords. A language name \quote {\BASIC} sounds less
+serious than \quote {C}. A meaningless \quote {\LUA} sounds different than \quote
+{\PYTHON}. Does using your native tongue make a difference? In Dutch and German
+words tend to get long. When I look at my French dictionary it is rather thin,
+but we might need accented characters. Words in a language like Polish can differ
+per usage. What if German or Spanish had been chosen as the language for what is
+now the United States? How would we perceive programming and what would look
+natural to us?
+
+\stopsection
+
+\startsection[title=\TEX]
+
+The \TEX\ language comes with a lot of so called primitives built in. Many of
+these relate to concepts in the program. For instance, a movement in horizontal
+or vertical direction that can stretch or shrink depending on what the boundary
+conditions demand, is called \quote {glue}. When discussing this in Dutch the
+word \quote {lijm} can be used and after seeing it a few times it might sound ok.
+We can probably use \quote {elastiek} (\quote {elastic}).
+
+This internal concept is actually represented to the user via the interface name
+\quote {skip}, take: \type {\abovedisplayskip} and \type {\belowdisplayskip}.
+Here the word \quote {display} refers to math that gets vertical space around it
+and is normally typeset in a somewhat larger way compared to \quote {inline}. The
+word \quote {skip} can be translated to \quote {sprong} (translated back we could
+as well get \quote {jump}). But how to translate \quote {display}? An internet
+translation can be \quote {tentoonspreiding} but apart from it being a long word
+it sounds pretty weird for something math. The combined translation of such a
+command will not work well I think so probably complete different words has to be
+made up to describe these quantities. Taco suggested that {\en \typ
+{\bovenuitstallingkortesprong}} might work for \type {\abovedisplayshortskip} but
+luckily no ordinary \TEX\ user will not set such parameters in a document source.
+
+In \CONTEXT\ we use the somewhat typographical term \type {wit} or \type
+{witruimte} for vertical spacing. Some parameters like \type {\baselineskip} can
+be translated directly to the Dutch \type {\regelafstand} which is a proper
+typographical term (\TEX\ has no concept of line height). Okay, it can become
+messy when we translate \type {\lineskip} by \typ {\interlinespace} as that
+could be seen as the baseline skip too (\quote {interlinie} comes to mind). Quite
+a mess. In many cases we probably would not handle the \type {skip} part in
+parameter: \type {leftskip} could become \type {\linkermarge} and \type
+{\parfillskip} can become \typ {\paragraafuitvulling}.
+
+Another concept is that of \quote {penalty}, or in Dutch \type {boete}. It's
+probably harder to get the combinations right, simply because they have no
+typographical meanings, they're more process controllers. I fear that most
+translations would sound pretty weird to me. So, how do they sound to a native
+English speaker? Words like \quote {club} or \quote {widow} can be translated to
+their Dutch gender neutral counterparts \quote {wees} and \quote {weduw} but how
+strange does {\nl \typ {weduwboete}} sound?
+
+The counter variables are easier. When they end on \type {char} that can become
+\type {karakter}. However, translating \type {\escapechar} with \type
+{\ontsnappingskarakter} might look a bit weird, but as that one is used very
+seldom, a weird one doesn't matter much. Operators like \type {\advance} and
+\type {\multiply} can become \type {\verhoog} and \type {\vermenigvuldig} which
+doesn't sound that strange in this context.
+
+There are \quote {rule}s and \quote {box}es. The first one can be translated to
+\quote {lijn} which sounds quite good. But what to do with the second one. We can
+use \quote {blok} (which translates back to \quote {block}) which is good when we
+start stacking things, but also with \quote {doos} which is more literal but
+sounds to me somewhat silly: \typ {\hdoos {whatever}}. I'm not so sure if I would
+have seen that in a book about \TEX, I'd looked further into the language. The
+optional keywords \quote {width} etc. can be translated well into \quote
+{breedte} etc., so no problem there.
+
+There are all kinds of very peculiar aspects that need a translation. For instance
+the (for new users intimidating) primitive \type {\futurelet}. The \quote {future}
+part is no problem as \quote {toekomst} isn't that weird but the \quote {let}
+will for sure become something very long in Dutch, so we end up with {\nl \typ
+{\toekomstigetoekenning}}, but seeing that long one, we can consider {\nl \type
+{kijkvooruit}} as reasonable alternative. It definitely leads to more verbose
+programming.
+
+Expansion is a tricky one. I have no clue what would make nice translations of
+the primitives \type {\noexpand} and \type {\expandafter}. The Dutch \quote
+{uitbreiden} simply is not sounding good here. Taco Hoekwater came up with a good
+alternative \quote {uitvouwen} for \quote {expand} and I like that one because
+we then can let bookmaker (a somewhat dubious term in itself) Willi Egger organize
+a workshop in unfolding (instead of folding).
+
+Talking of \quote {macros} is less a problem because there is no Dutch word for
+it. There are more words with no real translations: \type {\kern} for instance
+probably would need some thinking but there might be a typographical equivalent
+that can be used.
+
+The \ETEX\ and \LUATEX\ extensions introduce new names, like \type {\detokenize},
+\type {\boundary} and \type {\attribute}. The first one is hard to translate
+because again it relates to an internal concept: \type {tokens}. I get the
+feeling that translating each occurrence of \type {token} by \type {teken} kind
+of makes everything look less serious. To strip something from its special
+meaning, which is actually what \type {\detokenize} does can give weird
+translations: {\nl \typ {\onttekenen}} is not really a Dutch word so a complete
+different one has to be found that describes what happens, like \type
+{\ontwaarderen}. On the other hand, \type {\boundary} and \type {\attribute} can
+translate directly into \type {\grens} and \type {\attribuut} where the last one
+sounds mostly okay.
+
+Just to get you thinking: how would you translate \type {\looseness} (\type
+{losheid}, related to linebreaking), \type {\deadcycles} (\type {\zinlozelus}, in
+the perspective of building pages), \type {\pretolerance} (again line break
+related, here we can use something \type {tolerantie}) and \type {\prevgraf}
+(which is actually even in English a weird one but hardly used anyway, so Taco
+likes {\nl \typ {voorloopregels}})? The easy ones are \type {\omit}, \type {\meaning},
+\type {\number}, maybe even \type {\mark}. The for users often difficult to grasp
+\quote {catcode} can be simplified to \quote {code} which is proper Dutch.
+Concepts like \quote {align} translate well to \quote {uitlijnen}. Short ones
+like \type {\wd} could be a problem but any two letter combination can look bad,
+so \type {\br} could do. In the same fashion \type {\def} is ok as it is also the
+start of the Dutch \quote {definitie}. Mathematical terms like \quote {text},
+\quote {script} and \quote {scriptscript} can be confusing: \quote {tekst} will
+do but \quote {schrift} is strange.
+
+Conditionals are not the hardest part: \type {\if} becomes \type {\als}, \type
+{\else} becomes \type {\anders} and \type {\or} is \type {\of}. However, turning
+\type {\ifcase} into \type {\inhetgevaldat} can be over the top. The \type
+{\every...} register variables can also be translated quite well, by using the
+\type {\elk} or \type {\elke} prefix. They are seldom seen at the user level so
+no real problem there.
+
+The \quote {group} related commands are easy as \quote {groep} is a good Dutch
+equivalent. Even \quote {global} operations translate well (\type {globaal}). A
+dubious one is \type {\font} because we can use {\nl \typ {\lettertype}} but it's
+not really a translation. The internet translations tend towards \quote
+{fountain} kind of things.
+
+The concept of \quote {discretionary} again needs a decent typographical
+translation although \type {\hyphenation} can become \type {\afbreking},
+translating \type {\discretionary} needs some imagination. The concept of \quote
+{leaders} is again something that can best be bound to something more
+typographical because \type {\leaders} turned {\nl \typ {\leidinggevende}} is not
+an option nor is \type {\leiders}.
+
+The prefix \type {\un} as used in \type {\unhbox} can become \type {\ont} so that
+we get \type {\ontdoos} but I get the feeling that this one can be source of
+jokes. The more verbose {\nl \typ {\pakdoosuit}} (equivalent to \typ
+{\unpackbox}) would do better. To translate \type {\unvcopy} into the gibberish
+{\nl \typ {\ontdoosdecopie}} is simply ridiculous and {\nl \typ
+{\copieeruitgepaktedoos}} is a bit long. The \type {\lower} and \type {\raise} on
+the other hand translate well to \type {\verlaag} and \type {\verhoog}. Keeping
+\type {\relax} untranslated sounds ok to me, because \type {\ontspan} really
+makes a language silly.
+
+\stopsection
+
+\startsection[title=\METAPOST]
+
+The \TEX\ language is driving a macro system while \LUA\ is a procedural
+language. The \METAPOST\ language sits somewhere in between. It is still
+expanding all along but it looks a bit more like a programming language with its
+loops, assignments, conditionals, expressions and (sort of) functions. As a
+consequence some of what I mentioned in the previous section applies here.
+
+Translation of for instance \type {truecorners} into \type {echtehoeken} can give
+the language a bit less serious image. Words like \type {linejoin}, \type
+{linecap} and \type {miterlimit} relate directly to the \POSTSCRIPT\ language so
+translating them also relates to translated \POSTSCRIPT.
+
+The \type {primary}, \type {secundary} keywords can be nicely translated into
+serious counterparts \type {primaire} and \type {secundaire} which are words that
+are not really of Dutch origin anyway. The \type {precontrol} and \type
+{postcontrol} words relate to concepts but even there the verbose \type
+{controlepuntvoor} and \type {controlepuntachter} could do. However \type {punt}
+as translation for \type {point} can be confusing because we also use that for
+\type {period}. Translating \type {controls} and \type {curl} needs some
+imagination. Words like \type {tension} becoming \type {spanning} is still
+acceptable soundwise. However:
+
+\starttyping
+voor i=1 stap 2 tot 10:
+ .....
+eindvanvoor; % or: eindvoor
+\stoptyping
+
+Kind of interesting is translating \type {if} into \type {als} because \type {fi}
+then becomes \type {sla} which is \quote {lettuce} or, when see as verb, \quote
+{hit}. The \type {true} and \type {false} keywords becoming \type {goed} and
+\type {fout} is no problem.
+
+Turning \type {atleast} into \type {opzijnminst} at first sight looks strange but
+actually I can appreciate that one. And {\nl \typ {tussendoortje}} as translation
+of \type {interim}, I can live with that one too as it sounds funny. Concepts
+like \quote {suffixes} need thinking but {\nl \typ {uitdr(ukking)}} or more
+literal {\nl \typ {expr(essie)}} for {\nl \typ {expr(ession)}} are okay. The {\nl
+\typ {expandafter}}, {\nl \typ {scantokens}} and similar keywords share the
+problem with \TEX\ that they relate to concepts that are hard to translate.
+
+The \type {redpart} and similar keywords could be translated into \type
+{rooddeel} but {\nl \typ {roodkanaal}} (meaning \type {redchannel}) might be
+better or maybe {\nl \typ {rodecomponent}}. As with \TEX\ grouping related
+keywords are no problem.
+
+A \type {pencircle} becomes \type {pencirkel}, \type {odd} becomes \type
+{oneven}, \type {reverse} becomes {\nl \typ {omgekeerd}} (or {\nl \typ
+{andersom}} or {\nl \typ {tegengesteld}}). For \type {length} we use \type
+{lengte}, and so on. All these sound professional enough, just like \quote
+{corner} related keywords becoming \quote {hoek}, although there a clash with
+\quote {angle} is possible. I'm less sure about \type {clipped} becoming {\nl
+\typ {afgeknepen}} or {\nl \typ {begrensd}} but \type {bounded} then needs some
+thinking as these all are more or less the same. The concept of \quote {stroke}
+maps onto \quote {tekenen} or \quote {vegen} but lucky us that one is not really
+used, contrary to \type {draw} that can map onto \type {teken}, while \type
+{fill} and \type {vul} match well too I guess.
+
+The transformations are no problem but I'd use a directive instead: \type
+{rotated} or \type {roteer}, \type {slanted} or \type {schuin}, \type {scaled} or
+\type {schaal}, and \type {transform} or {\nl \typ {transformeer}}. As you can
+see, these have a reasonable word length too.
+
+The concept of a \type {picture} is known in Dutch as \type {plaatje} or \type
+{tekening}: not an easy choice. Using \type {kleur} for \type {color} is no
+problem at all. A coordinate \type {pair} becomes a \type {paar}: close enough
+not to give subjective side effects. The \type {inner} and \type {outer} keywords
+translate well to \type {binnen} and \type {buiten} but in code it might look a
+bit strange.
+
+So, in general, the translated commands are not that weird but still a graphic
+defined in Dutch keywords instead of English to me might look less serious.
+
+\stopsection
+
+\startsection[title=\LUA]
+
+We now arrived at a more traditional programming language. The \LUA\ language
+only has a few keywords. I suppose that it's just a matter of time before one
+gets accustomed to \typ {als ... dan ... anders ... eind} instead of \typ {if ...
+then ... else ... end}. The loops also translate rather well: \typ {zolang ...
+doe}, \typ {herhaal .. totdat}, \typ {voor ... in ... doe ... einde} are all not
+that verbose. Also, with proper syntax highlighting they stand out and become
+abstract words. But because examples for kids are normally in Dutch, using a
+Dutch programming language might give a toy language feeling.
+
+The \type {local} directive is a bit of a problem because it should be \typ
+{lokale variabele} in order to sound ok in a sentence. The \type {goto} should
+become \type {ganaar} which is also two words with no space in between. The \type
+{function} keyword can become \type {functie}. A \type {coroutine} is a challenge
+(also conceptually); we do have \type {routine} but how about the \type {co}
+part?
+
+Because \LUA\ is such a clean language it doesn't really end up bad. In \CCODE\
+there are some more issues due to the abbreviated \type {struct}, \type {int},
+\type {char}, \type {enum} and \type {typedef}. A literal translation of \type
+{void} to \type {leegte} to me sounds a bit strange. What to do with \type
+{unsigned}? Coming up with something (short) Dutch for \type {return} is not easy
+either. Translating \type {switch} into \type {schakelaar} looks like a bad idea
+but after consulting Taco using \type {keuze} came up. The \type {break} then can
+be \type {klaar} which roundtrips to \quote {finished} and \type {default} can be
+\type {anders} which roundtrips to \quote {otherwise} which is indeed what some
+languages provide.. But, there are programming languages out there that have
+plenty keywords and that are more challenging. But as I'm a happy \LUA\ user I
+don't have to worry about them.
+
+\stopsection
+
+\startsection[title=Conclusion]
+
+Looking at a program source in Dutch the general feeling probably will be
+different. A low level bit of \TEX\ is the worst. For \METAPOST\ it's bearable
+and for \LUA\ it is kind of okay. But in all cases, I'm not convinced that it
+would give me the same feeling. The abstraction of the language due to it not
+being my native tongue makes a difference. This problem is not much different
+than what we have with popular music and songs: for non|-|native speakers it's
+basically sounds, but for a native speaker it is more clear when nonsense is
+sung. The same can happen to me with movies, where watching some scandinavian
+series is different from watching a Dutch one. In the last case one picks up
+different nuances, not necessarily for the best. But it can be worse: post
+synchronized (audio) translations can be pretty unbearable and might compare well
+to programs translated to for instance Dutch. So let's not discuss the way
+Germans would deal with this.
+
+\stopsection
+
+\startsection[title=Side notes]
+
+We now see monospaced fonts showing up that provide ligatures for e.g.\ \type
+{<=} and I've seen examples where ligatures kicked in for \type {fi}. One can
+wonder about that but ligatures are definitely something to keep in mind when
+translating.
+
+The \CONTEXT\ macro package is normally used with the English user interface. But
+the design is such that one can provide different ones too; after all it started
+out Dutch. It is beyond the scope of this musing to discuss the problems with
+translating typographical concepts between languages, especially when there are
+no distinctive words. But it can (and has) been done.
+
+\stopsection
+
+\stopchapter
+
+\stopcomponent
diff --git a/doc/context/sources/general/manuals/musings/musings.tex b/doc/context/sources/general/manuals/musings/musings.tex
index 64d505df1..687fcdb50 100644
--- a/doc/context/sources/general/manuals/musings/musings.tex
+++ b/doc/context/sources/general/manuals/musings/musings.tex
@@ -16,8 +16,11 @@
\component musings-staygo
\component musings-stability
\component musings-roadmap
- % \component musings-names
+ \component musings-names
\component musings-plain
+ % \component musings-performance
+ % \component musings-history
+ % \component musings-treasures
\stopbodymatter
\stopproduct