37 ms·
Non-English-based programming languages
- WalterBright 7y agoD has support for Unicode characters in identifiers, pretty much the same as C does. But now I think that was probably a mistake. Some people use it, but nobody who wants their code to be editable by the larger community.
- robocat 7y agoJavaScript has virtually always supported Unicode variable names (well, the basic multilingual plane). https://mathiasbynens.be/notes/javascript-identifiers https://mathiasbynens.be/notes/javascript-identifiers
- WalterBright 7y agoSure, but do people in general use them?
- robocat 7y agoIf you don't know English (a lot of people) and you are writing a script for a web page, you would use your own language. Although compression tools replace the majority of symbols with short Ascii symbols, so it may not show in the final packed code. It looks like the closure compiler emits Ascii only, using escapes for Unicode symbols that are not transformed.
- tanin 7y agoI 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.
- 7y ago
- kevsim 7y agoOne of my favorite online April Fools' gags from recent years was when it was announced Scala would become Skala and all of the keywords would switch to German [0]. `val` `var` and `def` would all keep their uniform length by becoming `unveränderliche`, `opportunistisch` and `verfahrensweise` :-) [0] https://www.scala-lang.org/blog/2017/04/01/announcing-skala.html https://www.scala-lang.org/blog/2017/04/01/announcing-skala....
- maxxxxx 7y agoI worked with a German version of VBA for a little while. MS soon gave up on this but it was a really weird experience.
- croisillon 7y agohaving learned Excel functions in English and having to use them at work in German makes me always nervous
- dreix 7y agoI'm never able to get a function to work as I don't even know their equivalents in German.
- semi-extrinsic 7y agoNow with Sharepoint and Excel Online, we've discovered that function names follow the base language of the Workspace that the sheet is stored in. It's essentially rendered Excel Online useless.
- cm2187 7y agoI thought VBA was always in english (syntax & APIs). Only excel formulas are displayed translated in the regular Excel UI.
- maxxxxx 7y ago
- xeeeeeeeeeeenu 7y agoPerl in Latin: https://metacpan.org/pod/Lingua::Romana::Perligata https://metacpan.org/pod/Lingua::Romana::Perligata
- totalperspectiv 7y agoPerl is so cool from a linguistic standpoint. I wish there were more written about that aspect of it. Also Conway is amazing.
- aasasd 7y agoI mean: > While in graduate school at the University of California, Berkeley, Larry Wall and his wife were studying linguistics with the intention of finding an unwritten language, perhaps in Africa, and creating a writing system for it. They would then use this new writing system to translate various texts into the language, among them the Bible. And Perl was explicitly designed with a slant towards natural-language traits. Wall has said that he didn't know as much about creating programming languages, and that this likely affected Perl. So he might've written about the linguistic aspects instead. > Wall's training as a linguist is apparent in his books, interviews, and lectures. He often compares Perl to a natural language and explains his decisions in Perl's design with linguistic rationale. He also often uses linguistic terms for Perl language constructs, so instead of traditional terms such as "variable", "function", and "accessor" he sometimes says "noun", "verb", and "topicalizer".
- empath75 7y agoFor a linguist, he made a horrifically unreadable language.
- askvictor 7y agoAnd Klingon too. Also, the perl parser can be changed to support not just keyword differences, but grammar too.
- mr_toad 7y agoMany programming keywords derive from Latin anyway, like function, object, static, constant, variable.
- curtis 7y agoProgramming languages and human languages are really not the same thing at all, unless maybe you consider some extreme outliers like AppleScript[1]. It seems like the choice of character set would make a bigger difference. Most of the today's popular languages would seem to be strongly impacted by making them compatible with code that is entirely in 7-bit ASCII. I don't know enough about other character encodings to try to imagine how they might make for a very different programming language design. What would a Chinese-influenced programming language look like if its designer(s) had never had any exposure to alphabetic or syllabic writing systems? [1] https://en.wikipedia.org/wiki/AppleScript https://en.wikipedia.org/wiki/AppleScript
- curtis 7y ago> What would a Chinese-influenced programming language look like if its designer(s) had never had any exposure to alphabetic or syllabic writing systems? The first thought that came to mind as I was writing this was: some kind of logographic APL. I don't actually know what such a thing would like, but I'm sure I wouldn't be able to read it.
- nullwasamistake 7y agoMany languages these days support Unicode, so you could technically write them in whatever you want. I think it's great that the world has settled on a popular, relatively easy to learn language. It helps immensely with sharing open source libraries worldwide. However it would be nice if doc formats ala Javadoc had provisions for translation.
- dang 7y agoFrom 2016: https://news.ycombinator.com/item?id=11961223 https://news.ycombinator.com/item?id=11961223 2013: https://news.ycombinator.com/item?id=6315913 https://news.ycombinator.com/item?id=6315913 2009: https://news.ycombinator.com/item?id=524758 https://news.ycombinator.com/item?id=524758
- zeristor 7y agoSo the posting is right on time
- amelius 7y agoI'd rather see a language with more math-like operator symbols (e.g. for-all, element-of, union, is-proper-subset, etc) and an accompanying keyboard.
- stan_rogers 7y agoThat would be APL.
- uryga 7y agoi think Agda has a whole bunch of Unicode operators, and you can define your own. you can do that in Haskell as well, but it's pretty uncommon. Perl 6 has some Unicode stuff too
- jodrellblank 7y agoDyalog will sell you a keyboard to go with their APL: https://www.dyalog.com/uploads/images/Business/products/dk_rc.jpg https://www.dyalog.com/uploads/images/Business/products/dk_r... ∪ - dyadic downshoe is union ( https://tryapl.org/?a=%27ab%27%20%27cde%27%20%27fg%27%20%u222A%20%27a%27%20%27ab%27&run https://tryapl.org/?a=%27ab%27%20%27cde%27%20%27fg%27%20%u22... ) proper-subset isn't builtin; this might do it, but there are probably neater ways 'ab' 'cde' 'fg' {((≢⊆⍺)>≢⊆⍵)∧(≢⊆⍵)=+/⍺∊⊆⍵} 'cde' 'ab' "If the count of items of the left vector is greater than the count of the right vector (right side is smaller, it is proper), and the count of the right vector is equal to the number of elements in the right vector which are in the left vector (i.e. all of them are found, it is a subset)". https://tryapl.org/?a=%27ab%27%20%27cde%27%20%27fg%27%20%7B%28%28%u2262%u2286%u237A%29%3E%u2262%u2286%u2375%29%u2227%28%u2262%u2286%u2375%29%3D+/%u237A%u220A%u2286%u2375%7D%20%27cde%27%20%27ab%27&run https://tryapl.org/?a=%27ab%27%20%27cde%27%20%27fg%27%20%7B%... Not sure it needs "for-all" because functions work on all elements by default. It can have for: loops, but they aren't math-like.
- interfixus 7y agoHaving something like a global standard, inter-intelligibility between languages etc. is an unmitigated Good Thing, and may it never change. Apparently, my English-as-a-second-language compatriots Bjarne Stroustrup, Anders Hejlsberg, and Rasmus Lerdorf agree with me.
- zzzcpan 7y agoAnd it's not even about English, but about a subset of ASCII on a QWERTY layout - symbols that are inputtable and explicitly marked on pretty much any keyboard. Whether most keywords in a programming language are in English or not is not even relevant. I mean if all keyboards had Greek symbols on them we would have an article about non-Greek-based programming languages. It's a good thing, I agree. There is no reason to worry either, as uncommon hard to input unicode symbols in the core language is such a huge usability failure, that those languages simply have no chance of gaining any significant mind share.
- planteen 7y agoTotally agree. Using non-Latin characters would be a non- starter for most of the world.
- qznc 7y agoIt is a fun exercise to take a non-english language, look at its idiosyncrasies, and design a programming language with that. My native language is German. Some ideas: * We can take nouns and combine them to longer nouns. A "list of objects" is "Objektliste". Parsing will be a challenge but it makes the language more terse and auto-completion is faster. * We also have gender specific articles. It is "das Objekt" and "die Liste". We could use this to have three possible namespaces, so "der Foo", "die Foo", and "das Foo" would refer to three different things. * All nouns start with an uppercase letter, so your loop index must be "I" or "J". We could have user-defined qualifiers (like const) which are distinct from variables because they start lowercase. So where you have to use @ in Python, we just use lowercase.
- asveikau 7y ago> We could use this to have three possible namespaces, so "der Foo", "die Foo", and "das Foo" would refer to three different things. You're reminding me of perl, where $foo, %foo, and @foo can coexist.
- nneonneo 7y agoOddly, all three examples have analogues in real programming languages already: - in many C-derived languages, a “list of objects” is spelt “object[]” as a type, with the “list” (array) specifier postfixed. (Functions declared to return arrays take this syntax to quite an interesting extreme.) - in Perl and some derivative languages, sigils serve as a prefix to denote context of use or type; $var is different than %var or @var, for example. - In Ruby, a leading uppercase character defines a constant, and some aspects of the language are sensitive to the case of the identifiers used. Of course, it’d be super interesting to put many of these ideas into a single language, as it could well be quite different (and refreshing!) than many of the languages we use today.
- c3534l 7y ago> All nouns start with an uppercase letter, so your loop index must be "I" or "J". We could have user-defined qualifiers (like const) which are distinct from variables because they start lowercase. So where you have to use @ in Python, we just use lowercase. Yeah, but i and j come from math. I've never seen a math paper where people summed a variable using a capital subscript. I think it might be more interesting to think about how you write a German version of a language that is meant to be English-like. Something like SQL or Cobol.
- aasasd 7y agoSeeing a programming language in your native language after working with English ones, you discover that it looks and sounds pretty ridiculous. My belief is that the native language is ingrained on a low level in the brain, so it's decoded ‘in the hardware’ and directly invokes meanings and associations, whereas a second language goes through at least some level of conscious processing. The very same way, I'm physically unable to shut off the brain's frantic search for meaning when I hear some inane song lyrics or advertisement in my native language—which causes suffering whenever I get near television. Meanwhile, I'm completely comfortable reading or hearing total drivel in English until I consciously try to interpret it. Similarly, I can't skim in English as fast as I do in my language. This all brings me to the thought that native-English speakers probably have a rather different experience with programming languages, since the keywords must constantly invoke deeply ingrained associations but that's in turn modified by regularly seeing and thinking of them in the programming context. КОНЕЦ ЕСЛИ
- Swizec 7y agoSeeing anything in computers using my native language feels wrong. I think it’s because I learned how to use computers before I learned English well. For example I learned that to print a line in Pascal you use writeln() at 12 or so. It didn’t occur to me until 10+ years later that writeln is shorthand for “write line”. To me it’s just a symbol with no meaning outside that particular context.
- olalonde 7y agoSame here. I still remember feeling pretty dumb the day I realized that "if" and "else" were also English words.
- umanwizard 7y agoI'm a native English speaker, and so the reason for names like "if", "while", etc. were clear to me when learning. On the other hand, your experience learning programming was similar to mine learning to use a Unix-like OS. Although I do know their etymology as a bit of useless trivia, for the most part "cat", "grep", "vi", "diff", "sed", "dd", "df", "tar", and so on are just arbitrary symbols to me.
- jnurmine 7y agoThe Wikipedia list does not mention Tampio, an OO language where programs are written in proper Finnish: https://github.com/fergusq/tampio https://github.com/fergusq/tampio As an example, here is kertoma.itp (an example routine to calculate a factorial): Pienen luvun kertoma on riippuen siitä, onko se pienempi tai yhtä suuri kuin yksi, joko yksi tai pieni luku kerrottuna pienen luvun edeltäjän kertomalla. Luvun edeltäjä on se vähennettynä yhdellä. Olkoon pieni muuttuja uusi muuttuja, jonka arvo on nolla. Kun nykyinen sivu avautuu, pieneen muuttujaan luetaan luku ja nykyinen sivu näyttää pienen muuttujan arvon kertoman. It sounds basically like a small part of a mathematics lecture.
- dirtyaura 7y agoThis is absolutely amusing. Seems that the creator of the Tampio language has created several esoteric languages, one of them being domain specific language Retki for writing interactive fiction. It is also based on Finnish language. https://www.kaivos.org/projektit.html https://www.kaivos.org/projektit.html
- aasasd 7y agoAmong natural-looking programming languages, my favorite currently is ArnoldC: https://github.com/lhartikk/ArnoldC https://github.com/lhartikk/ArnoldC https://i.imgur.com/XGB5oLG.jpg https://i.imgur.com/XGB5oLG.jpg
- flurdy 7y agoIt does now, so I guess someone has added it. :) Which reminds me of 10+ years ago when I worked for a consultancy and often on site with one of its main clients. Both were originally Finnish but by then very large multinational enterprises. Occasionally whilst doing some archaeology investigation of some internal libraries or old systems you encounter an ancient Java (or worse) library using Finnish class and methods names. Usually confused the heck out of all of us as there never were a Finnish speaker on any of the projects I was on, and I was there for 6 years. But as much as a decompiled java program you can guess what it does, though not what it intended to do... Using non-English in programming may have made a little sense when they were a smaller Finnish only company, but 10+ years later, many mergers and acquisitions etc and it really did not make sense any more .:) Considering the offices I worked for them in Oslo, Stockholm and Copenhagen the development teams was all a mix of nationalities (Scandinavians, English, Belgian, Italian, Polish, Indian) using anything but English would have been silly by then.
- DonaldFisk 7y agoThere are only a few reserved (English) words, most of which are shared among different programming languages. Why is this any more of an issue than all the Italian words used in musical notation?
- ajross 7y agoIt's not, it's just fun to think about. Likewise french dominance of culinary terms, etc.. What I find more interesting is actually how removed from spoken English most programming language reserved words are. Taking C and derivatives: "if" is pretty close, and "while" captures the meaning of the word but not its typical usage. The meaning of "return" is correct, but jargon (yes, you're "going back" to where you were called from, but that's not what people mean when they use the word normally). But from there it gets weird fast: "else" reflects a somewhat odd sense of the word that sounds archaic and stilted in human communication; "for" and "break" have little to no connection to spoken language at all. As far as type names: "int" makes sense if you took high school math, and "char" abbreviates a real word that no one uses ("letter" is the one we get taught in school). But no amount of literacy is going to tell you what "short", "long", "double" or (weirdest of all) "float" mean, those are all terms of art you need to learn from scratch regardless of what language you speak.
- umanwizard 7y ago"int" doesn't really make sense from a mathematical perspective, since ints in e.g. C are a finite set that is not closed under addition or multiplication. So I think it's actually a good example of your broader point, that the meaning of English words as programming keywords is often very different from their meaning in other contexts.
- ajross 7y ago> finite set that is not closed under The discussion was about programming languages and English. What on earth is this about? You're actually compounding the issue here, by invoking jargon from a different field. That's true of the definition of integers you'll find in college level math textbooks, but the word "integer" as understood by normal people (even computer programmers) means "whole number", which is why the type is named that way.
- ajuc 7y agoI've seen version of LOGO with all instructions translated into Polish used for education in 80s/90s. It was pretty OK but it wasn't really based on Polish, it wasn't using any features of Polish language, just translated the English commands to make it slightly easier for the kids. To make a programming language based on Polish that captures the core of the language would be pretty strange - variable names would need to change depending on the role of the variable in the expression, and the order of the subexpressions in an expression shouldn't matter. Function names should change too depending on which subject they are called, and most of the time subject name should be skipped :)
- uryga 7y agowe used that at school! i can't remember much though – i've used english Logo afterwards and it overwrote most of the polish commands in my memory. the only one i can remember is `np`, the polish equivalent of `fw` ("naprzód" and "forwards" respectively)
- umanwizard 7y agoSimilarly though, I don't think any programming language is really "based on English" or "captures the core of the [English] language", in any meaningful way. So isn't the situation basically the same between English and Polish? Just like Polish noun cases, I don't see how any of the interesting distinctive features of English are captured by programming languages.
- ajuc 7y agoWell English is analytic language, so the syntax of if, while, and positional arguments of functions reflect that.
- umanwizard 7y agoGood point.
- k__ 7y agoWasn't it possible to programm in different languages in VB/A? At least some co-workers told me so. Something about VB in German.
- BrendanCoughlan 7y agoYep, VBA had localized keywords. The standard functions still were named in English though, so the weirdness didn't even buy significant localization. Almost 20 years ago I wrote some Excel macros on an even then ancient Windows 3.1 computer with German Excel. I tried for Hungarian notation (as I said, almost 20 years ago) and used d for date. So the end date of some range was dEnde. D is also the first letter of Datei, which is German for file. So when I brought the Document to the boss's newer computer the program got translated but all the variables still had German names except for dEnde, which turned into EOF.
- Kiro 7y agoI don't get all the explanation going on in "Prevalence of English-based programming languages". English is the lingua franca of programming so origin is almost irrelevant. I'm Swedish but if I would develop a programming language I would do it in English, even if it was only for myself so I don't believe the "used English to appeal to an international audience" argument.
- maxheadroom 7y ago>...I would do it in English... Men du hade inte säga varför du skulle skriver detta på engelska. Till exampel, är engelska mycket bättre än svenska för som programmerarspråk?
- basementcat 7y agoToday is a good day to code. https://esolangs.org/wiki/Var%27aq https://esolangs.org/wiki/Var%27aq
- zeristor 7y agoWhat features in a human language would make it the optimal basis for a computer language?
- ocschwar 7y agoThe degree to which words are inflected by context. In English, it's almost nil. In Chinese, it's nil. Lingua Romana Perligata is an amusing example of how to use a heavily inflected language for programming, but it shows why you don't really want to do that.
- b2gills 7y agoI've heard that Perligata has actually been used in production. (It was similar to their native language.)
- zeristor 7y agoIt says non-English but more specifically the spellings are American for the most part. At least the one’s I’ve used, apart from BBC BASIC, and ZX BASIC
- Doctor_Fegg 7y agoThere was, of course, PHP's notorious Hebrew error message T_PAAMAYIM_NEKUDOTAYIM: https://yvoloshin.github.io/php/2018/01/20/why-does-php-speak-hebrew/ https://yvoloshin.github.io/php/2018/01/20/why-does-php-spea...
- ivanhoe 7y agoOne really annoying thing about using an English-based UTF8-capable programming language with some types of non-English content (e.g. if it's in Serbian) is that you have to switch between keyboard layouts constantly. Sooner or later you end up forgetting to switch back and you start writing your code in say, Cyrillic. And let me tell you, Cyrillic letter A looks exactly the same as Latin alphabet letter A, but will happily break your javascript in the craziest possible ways, like 2 vars not being the same even though they look exactly the same.
- geocar 7y agoConsider configuring your editor to highlight characters above 127.
- lurquer 7y agoI have a friend with a German shorthair pointer. Whenever I hear him refer to the dog as a pointer, I briefly wonder if he’s referring to his dog, or if his dog actually represents the location of another dog.
- l8again 7y agoI was a skeptic, but Asad Memon's "UrduScript", although it could just as easily be called "HindiScript" due to its usage of the Roman alphabet, made me realize that this would have been a game changer in my freshman year or anyone from the Indian subcontinent just starting to program. For Hindi/Urdu speakers, the "why (kyun?)" section here - https://asadmemon.com/urduscript/ https://asadmemon.com/urduscript/ - is a fun read. Although I have always studied in an English medium school, I distinctly remember being confused by the simple term "invoke". It was just not a part of my regular vocabulary, and I felt it was something more complicated than what it seemed. Turns out if I had something like UrduScript I would have been more confident in my early days. Having said that, I think such languages are most useful as a teaching aid rather than a serious production language.
- disqard 7y agoSince we're discussing this, I'd like to share my work with this community: a programming by demonstration system, which doesn't use text [1]. One of its advantages is that people of different non-English backgrounds can be part of (say) the same introductory programming workshop, as long as one person can learn and orally convey how to use it [2]. [1] www.blockstudio.app [2] https://dl.acm.org/citation.cfm?id=3174196 https://dl.acm.org/citation.cfm?id=3174196
- Newtonip 7y agoIn my elementary school, we used a French version of Logo Writer along with a French language special purpose library called Caméléon to learn robotics programming.
- iso-8859-1 7y agoLamdu supports switching human language on-the-fly now, good luck doing that with a text-based programming language! https://www.youtube.com/watch?v=viF1bVTOO6k https://www.youtube.com/watch?v=viF1bVTOO6k
- ocschwar 7y agoEnglish's largely non-inflected, positional syntax makes it a good fit for programming languages. Chinese would be better if not for the writing system.
- gizmoduck 7y agoI didn't know about Enkelt[0,1] but I guess this changes things: ``` Enkelt >> var första = "Nej! Jag ville inte att skriver detta!" Enkelt >> skriv($första) Nej! Jag ville inte att skriver detta! ``` Pro-tip: You can use LLVM for non-ASCII naming, if you don't want to stick to Enlish-only letters. [0] - https://enkelt.ml/index.html https://enkelt.ml/index.html [1] - https://trinket.io/embed/python/10bb0ea708?outputOnly=true&runOption=run&start=result https://trinket.io/embed/python/10bb0ea708?outputOnly=true&r...
- Proven 7y ago1) one doesn’t need a whole lot of English to program (assuming training or docs are available in one’s language) 2) If you use a non-English language you can’t make good use of existing code out there so any gains are none or negative
- fopen64 7y agoFor me it is useful to see a clear separation between 'code' in English and 'human-readable strings' in my own tongue.
- Groxx 7y agohttps://metacpan.org/pod/Lingua::tlhInganHol::yIghun https://metacpan.org/pod/Lingua::tlhInganHol::yIghun use Lingua::tlhInganHol::yIghun; <<'u' nuqneH!\n>> tIghItlh! { wa' yIQong! Dotlh 'oH yIHoH yInob qoj <mIw Sambe'> 'oH yIHegh jay'! <Qapla'!\n> yIghItlh! } jaghmey tIqel! Perl makes me smile more than any other language I've poked at. There's an absurd amount of flexibility available.
- Tepix 7y agoI vaguely remember reading about a fuckup where the translation department of a company (I believe it was Microsoft) accidentally translated the entire programming language (I believe it was PostScript) into German. Of course you were no longer able to print using the german version of PostScript. Does anyone else know what I'm referring to? It was probably in the late 90s.
- nsonha 7y ago(non-native speaker, learned programming before English) I think this is a bad idea for a few reasons: - More languages = more barriers. Gosh we have enough problems with silos within the software dev community as well as languages in real life being one of the main hindrance to mobility. - Learning how to program is a great opportunity to refresh your mind and adopt a new way of thinking, why carrying along the burden of your flawed human language?
- lordgrenville 7y agoPossibly relevant here: a story about Donald Davies' inventing the work "packet" (in the networking sense) from Katie Hafner's book Where Wizards Stay Up Late: Davies' choice of the word "packet" was very deliberate. "I thought it was important to have a new word for one of the short pieces of data which traveled separately," he explained. "This would make it easier to talk about them." There were plenty of other possibilities — block, unit, section, segment, frame. "I hit on the word packet," he said, "in the sense of small package." Before settling on the word, he asked two linguists from a research team in his lab to confirm that there were cognates in other languages. When they reported back that it was a good choice, he fixed on it. Packet-switching. It was precise, economic, and very British. And it was far easier on the ear than Baran's "distributed adaptive message block switching." I wish that much thought went into other technical naming. (Looking at you, grep.)
- Phemist 7y agoA somewhat related thing I've had on my mind: I remember at my Dutch university we would get intro to programming courses in Java. We would often discuss things in Dutch, but found it awkward to talk about `null` (the "pointer") and `0` (the integer, which in Dutch is "nul"). In fact, I remember a distinct bug that happened from informal communication of an API. The conversation went (in Dutch): Student 1 - "What does Function A return if the input is invalid?" Student 2 - "Nul" Student 1 - "Null?" Student 2 - "Yes". And the program went on to crash on a divide-by-zero exception, because it ended up only checking the return value for Null, rather than 0. We ended up saying "null" as "naL", with heavy emphasis on the L and kept 0 as "nul", to somewhat mitigate these problems. The awkwardness never really went away. I wonder if Guido van Rossum when designing Python intentionally bypassed this issue by naming the null pointer "None". This is the only language I know of that uses None, some use "nil" AFAIK, but the language issue (in Dutch) is not avoided in these cases. I also wonder if other non-native English speakers who wrote English-based programming languages have applied similar considerations to avoid possible confusion between the native language of the speaker and English.
- taejo 7y ago> This is the only language I know of that uses None In the ML family the empty alternative of the `Option` type is called `None`; in Haskell corresponding `Maybe` type has `Nothing`.
- Phemist 7y agoCool! Good to know. I don't think None is totally problem free either, as it is easy to confuse with `NaN`. `Nothing` definitely bypasses all the mentioned issues and seems like a better choice.
- aasasd 7y agoAckchually, the proper pronunciation for English ‘null’ is supposedly /nʌl/: https://en.wiktionary.org/wiki/null https://en.wiktionary.org/wiki/null
- 7y ago
- vinayms 7y agoUntil we program in natural language, I don't see why we must even bother with this. Its fun but useless. For programming as it is today, its just a bunch of English words that we have to learn. We can always comment and document in out native languages if need be. I say this as an Indian, so obviously not English native speaker. (To preempt the "colonial benefit of English" retort, I would say I would say the same thing had USSR won the cold war and everything had to programmed in Russian in Cyrillic. We just had to learn a few words even then, assuming Soviet tech hadn't made NL based programming a reality.)
- gabordemooij 7y agoShameless plug here, but I am creating a programming language that tries to let everyone code in their native language and also 'translates': https://citrine-lang.org/ https://citrine-lang.org/ Might be interesting for people reading this topic. Nobody uses it of course but I like to work on it. ;-)
- zzo38computer 7y agoIn computer programming I will use American language, even if the documentation is Canadian (I am Canadian, so I write Canadian documentation even though the commands in the program itself will be American). However, you can also have programming languages with abbreviated keywords or no keywords, which is also sometimes suitable. If there are keywords, I will always do it in American. (And when writing music, I will write all of the notation in Italian, even though I do not speak Italian. If I don't know the Italian word for something, I will ask someone who does know, and write that.)