5 ms·
I used to think about this when I was a student. I could totally make a programming language in Thai. Surprisingly, one of the main issues that I thought of wa
by tanin 7y ago
I used to think about this when I was a student. I could totally make a programming language in Thai.
Surprisingly, one of the main issues that I thought of was a cultural one. Thais culturally don't use a single word to encapsulate complex meaning. We use a combination of words to capture that kind of meaning.
Just to give an example: a taxi driver is 'human-drives-taxi' in Thai. A barber is 'tradeperson-cuts-hair'. So, the programming language would be really verbose.
Also, since programming originates from the western world, we never really have Thai words for many concepts in programming. I've been programming for years, and I have no idea how to say 'software', 'hardware', 'class', 'inheritance', 'encapsulation', 'abstraction', 'refactoring' in Thai.
- cgb223 7y agoYou should just make Thai Objective-C. Their method style is to write things verbosely like “didFinishLoading” or “willAppearInBackground”.
- jhrmnn 7y ago“class” and “inheritance” are just abstractions of the very traditional meanings of these two words. I’m sure Thai has to have equivalents for those?
- nickpeterson 7y agoThat's a bit specific since OO is just used for reasons of history and inertia. I'm sure Thai has true/false and other mathematical terms, that's probably all that's needed.
- carlmr 7y ago>Just to give an example: a taxi driver is 'human-drives-taxi' in Thai. A barber is 'tradeperson-cuts-hair'. So, the programming language would be really verbose. Just like German. A fridge is a cold-cupboard, a car is a driving-thing, etc. But While, if, else, for are concise words.
- numlock86 7y agoMost non-german speakers will find these pretty funny: - lighter is fire stuff - plane is fly stuff - tools are work stuff The term "Zeug" usually translates to "stuff" colloquially as "thing" would be a better fit for the literal "Ding".
- enedil 7y agoYou say "Western" while in fact these all are English artifacts. AFAIK, in French there is no direct translation of "software", which is called "logiciel" - a piece of things that deals with logic. The examples are countless. Don't make the same mistake as we do, labeling together all languages from your region as Asian, without distinguishing.
- tempguy9999 7y agoArguably none of these words existed in the modern programming sense 50 years ago. Even 'computer' was origially a person employed for calculating <https://en.wikipedia.org/wiki/Human_computer> https://en.wikipedia.org/wiki/Human_computer>. I struggle to imagine that thai can't do similar extensions - inheritance maps directly onto the personal concept of ownership down (human) lineages, surely you have that? Serious but weird suggestion, talk to a poet.
- Symbiote 7y ago>> 'software', 'hardware', 'class', 'inheritance', 'encapsulation', 'abstraction', 'refactoring' in Thai. > > Arguably none of these words existed in the modern programming sense 50 years ago. They did; that's why they were repurposed in computing. "Ware" means goods, especially something for sale. Hardware means the wares used in construction: screws, hinges, brackets and so on, or any equipment. Extending that to computer hardware is straightforward. "Software" is new for computing, by analogy to hardware. "Inheritance" has the meaning taken from biology or reproduction. "You've inherited your mother's good looks!" "Encapsulation" means to wrap something in a capsule; online dictionaries say it was first used in 1872, and gives an undated example of a pilot encapsulated in a cockpit. I don't have the subscription to see the 1872 usage. "Class" means a group of things sharing some characteristic. Remember that the code you wrote is a class definition; "class" has its normal, English meaning. "Refactor" may be novel in computing, I'm not sure. You could also apply the word to a document.
- umanwizard 7y agoThe OED has citations for "encapsulation" (including variant spellings) going back to 1860: 1860 F. W. Farrar Ess. Origin Lang. viii. 172 Every subordinate clause being inserted in the main one by a species of incapsulation.
- tempguy9999 7y agoOk, let me put it another way. Instead of 50 years ago (1970), when computers were starting to be publicly available along with this developing terminology, let's say it was 70 years ago, so 1950. Consider that a correction on what I originally wrote. Now take a time-machine back to then and meet with The Man On The Clapham Omnibus, a term used in english legal law to denoye the everyman, the utter mr. average. Use those terms on him: 'software'? (blinks) 'hardware'? "ah yes, as purchased at the ironmonger's" 'class' "oh yes, like in prep school?" err, no. "well then like the labourers and shipmen, and the aristocracy? That kind of class I take it" etc. etc. The terms are easy to transmute but it hadn't happened then. Agreed about encapsulation, abstraction, refactoring etc though. Disagree with me at your peril, I got downvote rights yesterday - so does one feel luck, punk? Well, does one? :)
- noonespecial 7y ago>I've been programming for years, and I have no idea how to say 'software', 'hardware', 'class', 'inheritance', 'encapsulation', 'abstraction', 'refactoring' in Thai. I'd argue that if you said most of these words to non-programmer native english speaker, they'd have the wrong connotations anyway. Programming has become (is becoming?) an international language of its own (albeit with outsized influence from english). I think eventually it will be much like the latin used in science and medicine today.
- tanin 7y agoYou're right. Native English speakers must have some sort of hard time with English words being repurposed. I remember at work a colleague asked "how do I kill chubby slave?", which didn't sound strange at the time, since Chubby was an authentication system (IIRC). But, when thinking about it, that's probably a very offensive sentence in English.
- Latty 7y agoThere has been a move recently away from the "master/slave" analogy in a lot of projects for a number of reasons including that one, which personally I think is a sensible choice. Of course, you get plenty of people saying that we should all not care about the origin or other meanings of words in programming, and yet they tend to care deeply about maintaining the status-quo.
- kortilla 7y ago>and yet they tend to care deeply about maintaining the status-quo. Because changing is more work than not. It shouldn’t be a surprise when people get upset because you want to change fundamental terminology in some software’s architecture because a group is triggered by the originally chosen words. E.g. Somehow master and slave are more offensive than killing parents and leaving orphans?
- Latty 7y agoThe use of "triggered" to dismiss issues people have is frankly, very silly. It's origin is in sufferers of PTSD who, when triggered, face very real and serious mental harm. Yes, we absolutely should try to be considerate to people who are triggered by certain things if we possibly can. Now, assuming that you are just using the term as a trite implication that people bothered by these terms are just easily upset, I would question that. The transatlantic slave trade was a tragedy and its effects still haunt a huge number of people to this day. Would you be OK with using holocaust analogies in your code? I would hope you would say no, and I imagine most people would agree. So we have established that there are references that are not suitable to make, and it is a question of degrees. Changing these things is some work, yes, but it makes working with those systems nicer for a large number of people, for whom those analogies are a negative thing. I'm definitely not advocating that every other term in computer science is defensible either. If you have an issue with certain ones, I would suggest bringing them up. No one is suggesting that it should be illegal or anything, just some projects make those changes to improve the quality of those projects. And yes, how nice it is for people to work with a thing is absolutely a part of its quality.
- WalterBright 7y agoBack in the 80's, when C++ first became a thing, we tried to find Japanese words for the concepts. Destructors became "Death Tractors", which I always thought was awesome.
- tanin 7y agoFrom your 'death tractors' example, now I understand why people are debating changing 'master-slaves' to 'leader-followers'. Thais wouldn't want to call their machines (or anything or anyone) 'slave' with serious tone. It sounds offensive. Thinking about it, native English speakers might have internal struggle about many programming words. As a non-native english speaker, rude/strange/crude/offensive words don't really cause me emotional impact.
- lifthrasiir 7y agoAs far as I know it is now transliterated [1]. I do think that a Korean translation ("소멸자"---lit. extinguisher, but the destruction in programming is commonly associated to that translation) is more commonly used than a Japanese translation ("消去子"). [1] https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%82%BF https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B9%E3%83%88%E3...
- 9nGQluzmnq3M 7y agoIsn't that just a straight up transliteration? Destructor -> デストラクター desutorakutaa -> "death tractor" デス トラクター desu torakutaa. This can happen in English too, eg Experts Exchange <-> Expert Sex Change.
- a-saleh 7y agoMaybe look at a different programming paradigm then? :) I remember trying to learn APL and then watching https://www.youtube.com/watch?v=v7Mt0GYHU9A https://www.youtube.com/watch?v=v7Mt0GYHU9A and was amused that there is this world where programming is just symbols :D So maybe look at i.e. something apl-like, or maybe ml or haskell or erlang, where so many things you can do with functions and composing them, or even Prolog, where everything could be thought of as a set of rules/constraints to be solved (I think? haven't programmed in Prolog since uni :) )
- geocar 7y agoAPL is great. If you haven't seen them, the late John Scholes did a number of absolutely beautiful demonstrations programming in APL[1], [2], [3]. [1]: https://www.youtube.com/watch?v=DsZdfnlh_d0 https://www.youtube.com/watch?v=DsZdfnlh_d0 [2]: https://www.youtube.com/watch?v=DmT80OseAGs https://www.youtube.com/watch?v=DmT80OseAGs [3]: https://www.youtube.com/watch?v=a9xAKttWgP4 https://www.youtube.com/watch?v=a9xAKttWgP4
- jodrellblank 7y agoFor anyone looking to get into APL, Adám at Dyalog posts a lot of answers on the CodeGolf and Programming Puzzles StackExchange site often with expanded/explained code, and he hangs in the "APL Orchard" chatroom on SO. His profile says "always excited to [talk about] APL" and that seems to be genuine. - https://codegolf.meta.stackexchange.com/users/43319/ad%C3%A1m https://codegolf.meta.stackexchange.com/users/43319/ad%C3%A1... The most public APL dialect using the classic symbols (not J/K/Q/etc) seems to be Dyalog APL - they offer one of their older versions 14 free for non-commercial use (Windows), and they offer their current version 17 free for non-commercial use if you give them your full details (maybe Linux as well?). There is a book "Mastering Dyalog APL" by Bernard Legrand from ~2008 which is available as a PDF with companion files from: https://www.dyalog.com/mastering-dyalog-apl.htm https://www.dyalog.com/mastering-dyalog-apl.htm although they have added to the language since that book was released. There are other APL interpreters - GNU APL, NARS2000, ngn/apl, dzaima/apl (Java/Android) in various states of development and license conditions, and the developers of the last two are also sometimes in the APL Orchard chatroom on StackExchange. Online there's https://tryapl.org/ https://tryapl.org/ run by Dyalog, and https://tio.run/# https://tio.run/# which has three APL interpreters. The classic 1970s book "APL\360 an Interactive Approach" by Gilman and Rose is online as a PDF here: http://www.softwarepreservation.org/projects/apl/Books/ http://www.softwarepreservation.org/projects/apl/Books/ with other books as well. That's before the {} syntax for anonymous functions was added to the language, and other developments. Videos: Jay Foad while he was at Dyalog, talking through some Advent of Code puzzles with APL: https://dyalog.tv/Webinar/?v=Q_vgSN6rza0 https://dyalog.tv/Webinar/?v=Q_vgSN6rza0 (might want to skip the introduction of explaining the Advent of Code puzzle format). Aaron Hsu with Dhaval Dalal and Morten Kromberg, talking through some problems using APL https://www.youtube.com/watch?v=Gsj_7tFtODk https://www.youtube.com/watch?v=Gsj_7tFtODk And anything that you get from YouTube searching for Aaron Hsu, he has several talks / presentations from high level ideas to working with trees represented using arrays.
- aasasd 7y agoI guess Russian is in a better position because it doesn't use compounds so much—but it made the borrowed programming terms into Russian words by freely inflecting them, which is a very Russian trait. Whenever an imported word doesn't sound quite right for Russian, it gets adjusted fast, similarly to how this occurs in Japanese. We now have a set of programming terms that are a mix of: borrowings which already existed in other contexts (possibly of Latin or similar roots), Russian words instead of English ones, and straight up transliterated calques. This all coexists completely naturally because the words now serve as roots for further derivation and forming a layer of slang on top of the formal terms. Notably, young people are quick to appropriate foreign words—and they tend to be the ones who get into new tech. There were (joking?) proposals for using Russian-root words for computing terms, and by now they sound like bringing an Orthodox priest speaking Old Church Slavonic into a datacenter.
- andrewshadura 7y agoInterestingly Slovak and Czech have no problems whatsoever to use native Slavic words for technical terms, e.g. súbor for file (literally a collection of data, think сбор/собор in Russian), snímač for sensor (lit. taking off something, similar to the Russian съёмник), obrazovka for screen (place for images; compare to the Russian образ (image) and экран (screen, from the French écran)). There are more but I can't think of any right now :)
- aasasd 7y agoNot sure how ‘súbor’ is properly pronounced, but it seems Russian also has a computer-related connotation for it: https://i.imgur.com/JdgltUj.jpg https://i.imgur.com/JdgltUj.jpg Including my favorite variant, the “Russian-English Computer Learning Set”: http://sannata.org/articles/subor.shtml http://sannata.org/articles/subor.shtml Though the manufacturer appears to be wholly Chinese.
- gdy 7y agoIt is very typical for Russians that we often feel awkward using old words in a new meaning to denote new concepts. Somehow it feels silly and imprecise, and we prefer to borrow the word from the language where a concept originated. At the same time, in colloquial language we happen to replace English words with unrelated but similarly sounding Russian words. For example, saying мыло (soap) instead of 'mail' or 'поймать лося' (catch a moose) for activated stop loss order.