6 ms·
As someone whose mother tongue is Spanish, and was born and raised in Latin America, this feels pointless at best, and counterproductive at worst. It will only
by ggambetta 6y ago
As someone whose mother tongue is Spanish, and was born and raised in Latin America, this feels pointless at best, and counterproductive at worst. It will only add an extra layer of mental translation whenever someone who learned to program in this thing gets a real job.
I started learning BASIC when I was 3 or 4, way before I even understood English was a thing. If I could grasp what GOTO did, anyone can.
- flobosg 6y agoI remember having looked at BASIC code without any English or programming knowledge and having my attention caught by the GOTO statements since it was the most Spanish-looking word around.
- ccortes 6y ago> If I could grasp what GOTO did, anyone can. Then I see no issue translating from this to an "english" programming language, so there would be no extra layer of mental translation.
- jordigh 6y agoI disagree (and if you want my credentials, I am Mexican). Being able to reason in your own language is a big help. I do this with mathematics in various ways. I can both easily say "sea equis una variable real tal que equis más ye son menor al límite de efe de equis más ye conforme ye tiende al infinito" or whatever in both English and Spanish, and sometimes I prefer saying it in Spanish and sometimes in English. I still count by default in Spanish, although of course I can count in English (or French or Russian). It feels to me like reasoning and language are close in the brain. While you and I have gotten used to thinking of for-loops instead of para-loops, I think there's good reason to think that a learner could benefit from reasoning in their own language. As far as languages being useless, there's lots of other useless language a person could be learning. That doesn't discredit the raison d'être of these languages.
- Y_Y 6y agoAt least in the mind of an experienced code "for loops" have their own semantic existence, once you've understood them and given them a label then you don't need (in fact shouldn't) rely on intuition from your knowledge of English, or whatever natural language. Only one person I work with uses their computer in Spanish, whereas that's what everyone speaks all day, informally at least. I think of these words (programming keywords, names of Unix commands, etc.) as just symbols, doesn't everyone else? (Of course this doesn't apply to learners, I don't know about that.)
- jordigh 6y agoI feel like I have to sound out things. It's important for me to be able to say "cp that over there" and I actually pronounce it as "copy" or say "ls" as "list". I think a lot in words and about words. When I'm writing a for loop I usually sound out the whole thing, even if just mentally, "for ecks equals one to ten do" or "for whye in the range". I don't think I'm the only one who does this, so offering pronounceable things to other people in their own language might help.
- cpp_frog 6y agoCurious about your level of mathematics exposure? I remember that maybe in the most basic introduction to higher maths words were coupled with my reasoning, but later on reasoning was wordless (Jacques Hadamard reported something similar). Sometimes when I spend too much time doing math in the day, particularly doing proofs rather than reading, I have dreams about manipulating/deducting but no words or language for that matter is present. I've had similar experiences with programming and chess.
- ccortes 6y agoI majored in math and I mostly think with words.
- cgriswald 6y agoI wonder if that’s your training. I do math for fun and don’t think in words. I often struggle to express my reasoning to others as a result.
- moistbar 6y agoI get this way with Beat Saber. I think I might have a problem.
- riffraff 6y agoIt's not unusual, it's commonly called tetris effect https://en.m.wikipedia.org/wiki/Tetris_effect https://en.m.wikipedia.org/wiki/Tetris_effect
- jordigh 6y agoI did my bachelor's in maths in English and my master's in Spanish. I don't think my reasoning is very wordless, but I do think all of my reasoning is kind of geometric. I close my eyes and move my arms around to move a normaliser of a group action or try to trace with my fingers the integral lines of a manifold's tangent bundle. But as I'm doing these things, I'm often muttering to myself as well, and I may do it in Spanish or English.
- ggambetta 6y agoI get your point, and I admit I don't even know what language I think in anymore (if that's even a thing). But I'd argue that reasoning or talking about code is not the same as writing code. I went to university in Uruguay, so naturally when discussing stuff we'd say "son dos 'for' anidados" when a word didn't have a similar-sounding translation, or "escribir una función" when it did, and I'm fine with that. Discuss and reason in whatever you want. But very early on I started writing identifiers and comments in English, and I think this is critical if you want your work to go anywhere. Say you write a piece of code and put it in Github, with Spanish identifiers and comments. You've just massively increased the barrier of entry to most collaborators in the world (have you ever come across code commented in Russian or Chinese? Not fun). And this is just identifiers and comments, not keywords. I imagine using an entire programming language in anything but English can only make things worse :(
- chrisandchips 6y agoI agree with OP - the language seems to re-represent the languages key words in ways that are natural for Spanish speakers to understand. I think the value this will bring isn't very high. I personally believe that early programming has less to do with reading the code as natural language and more to do with understanding what the individual constructs achieve. This is purely anecdotal, but I taught programming to a few students in French and the presence of English never came up as a blocker. Fun story : for the hell of it, I once tried to code an entire project with some friends in French exclusively (that is, mainly variable/method/class names etc). As much as I love my mother tongue, its not always very concise. The whole thing became super bloated. We ended up reverting back to English.
- ASalazarMX 6y agoOld pre-Internet Mexican here: when personal computers (think CoCos and Atari 800s) started coming, BASIC ruled, and it was extremely easy to grasp for kids: GOSUB, RETURN, FOR, DIM, PRINT, PEEK, POKE, etc. were just abstract words that we just accepted without fully understanding their English roots. They might as well have been CALLBACK, THROW, ITER, FOO, BAR, etc., and we would have used them just as well. We reasoned in Spanish, then coded our reasoning in the abstraction that was BASIC. When reading code, it was like reading math, not a story. More so, with the meme culture nowadays, even kids know enough English words to understand the roots of many tokens in programming languages. Maybe programming with tokens rooted in your native language actually provides something I wasn't able to enjoy, but programming for me feels very different from speaking English, I'd bet the two don't even use the same brain regions, unless you're forcing yourself to comment in English. Let's see what comes out of Latino. Hopefully they'll add Unicode identifiers later, because writing "funcion" instead of "función" is still bad Spanish.
- atleta 6y agoThe thing is that it isn't your language, even if you're native English. (I'm not, I'm Hungarian, which is a 100% weird language not too similar to any other.) Most programming languages, especially the ones used for introduction, use a very limited vocabulary. This e.g. pretty much looks like python, I'm sure it has no more that 40 keywords. Most of your programs will not be keywords, i.e. symbols from the programming language, but the identifiers you define. Now you could use your native Spanish (or Russian or Hungarian, etc.) for those, but even that is not very useful. When you think about the program, you think with the constructs of the language (and also, as you get better, with the patterns you have learned). Then you express those thoughts with the language and the constructs you have created. The only place I can imagine this making sense is a scratch-like block language. But I'd say that even then it just hinders learning and development. Sooner or later you'll have to switch and the later you do the harder it will be. Also, this can be a great motivation to actually learn English. For me, at least, it was.
- ModernMech 6y agoBut not everyone who wants to learn how to program wants to program as a job. Moreover, proper localization goes well beyond changing keywords. Some languages are written right to left, or bottom to top. There's also tooling, debug messages, and and documentation. Why does all of this need to be in English? I think it's fine for people of other cultures to write tools localized to those cultures.
- thiht 6y agoDebug and error messages in particular should NOT be translated unless an error code is displayed with them. Whenever I use anything that spits me a French error message, it becomes impossible to find out what it means using Google. Windows error messages and the command line on Linux are particularly big offenders here.
- justwalt 6y agoIt's a common theme in posts from ESL programmers that they learned English as they needed while learning to program. I can't help but think that removing that necessity would allow more people who don't speak English to learn to code. It's hard for me to see that as a bad thing.
- AlchemistCamp 6y agoIt is? I've lived most my adult life in non-English-speaking countries and have seen the opposite—that programmers are less likely to be able to speak English well than people in less technical professions. This is probably because many of them studied CS and spent comparatively more time with computers and less time consuming foreign language materials as students.
- DominikD 6y agoLogo programming language was translated into various natural languages (as AC Logo into Polish for example) and this was the only reason kids w/o foreign language skills (and English in particular) could wrap their heads around it and paint some cool stuff with the turtle, learning about recursion and what not at the same time. I learned programming when I was five or six, way before I knew any foreign language, but my experience is no excuse for gatekeeping. Making programming accessible to a wider audience is unequivocally good.
- ModernMech 6y agoYes, I teach a Greek student who told me exactly this. His first introduction to programming was Greek Logo, and he attributes his entire trajectory to learning this one language.
- arcticbull 6y agoFor context, English isn't my first language -- but my Spanish fu is weak to say the least. Many programming languages especially more terse, modern ones (I'm looking at you, Rust) -- the symbols don't mean anything in English either. Does "for" or "fn" or "impl" mean anything to average English speakers? This feels more like a bunch of extra symbols like "==" and "!" rather than the anglosphere enforcing its dominance. There's plenty of room in the programming languages space for this one, to be sure -- I've nothing against it. It almost feels like ergonomics and writability are reduced in this language to make it more like Spanish than a modern functional programming language is like English. It almost goes out of its way to replace symbols with words. More like a Spanish AppleScript. Feels more like it's making a point than solving a problem, but I'd love to get more perspective from Spanish speakers.
- cgriswald 6y agoI wonder how much confusion in learning there for English speakers because of the use of English words. I might be a better programmer if I had been forced to learn abstractions in a different way. In math, if I see an unfamiliar symbol I immediately know I don’t know what it means. If it were English instead I’d automatically try to fill in a meaning. (Of course there is also a problem of overloaded symbols...)
- autarch 6y ago> Many programming languages especially more terse, modern ones (I'm looking at you, Rust) -- the symbols don't mean anything in English either. Does "for" or "fn" or "impl" mean anything to average English speakers? This feels more like a bunch of extra symbols like "==" and "!" rather than the anglosphere enforcing its dominance. Yes, they do. When I was learning Rust it was obvious that "fn" was function. "impl" is a little trickier, but I read it as "implements" or "implementation of". "dyn" is "dynamic implementation of" or something like that. And "for" is the same in all the other programming languages I know.
- arcticbull 6y agoI was suggesting that while you and I may know what they mean, the average person unfamiliar with programming is definitely going to be thrown for a loop, if you will.
- mauvehaus 6y agoI'm with you, but I went the other direction: native English speaker who learned French localized BASIC (correction: LOGO[0]) in a summer program. The words map pretty quickly to the abstract concepts without any real need for a translation step. I did that as a kid, but I don't see any problem learning a programming language in a different language as an adult. Realistically, what's far more important than the language of the keywords is the language of the rest of the identifiers. I've typed a lot more distinct function and variable names than keywords. [0] Jogged my memory: https://news.ycombinator.com/item?id=26809211 https://news.ycombinator.com/item?id=26809211
- 908B64B197 6y ago> Realistically, what's far more important than the language of the keywords is the language of the rest of the identifiers. Exactly. Or the doc. Having a standard library with a localized doc would probably help out learners way more than localizing some keywords. As one gets further and further away from the standard library, the doc increasingly won't be localized but by then the reader should know enough "engineering English" to get by.
- systemvoltage 6y agoIt also reduces the surface area of collaboration, sharing, open sourcing, security audits, etc. We have standardized in English and it is as arbitrary as any other language - English just happens to be the one chosen. This whole thing needs to be condemned, we get it - its fun to do something about your local language and be proud of your culture - everyone is. You should be. But, trying to peddle this into mainstream is a monumentally catastrophic. I don't want the world to be fragmented - we need to get together and build better tools. If anyone who has worked on Chinese datasheets, oh boy, you know the pain.
- Koshkin 6y agoI think it's not fair to require everyone to know English enough to be able to write comments in code.
- systemvoltage 6y agoDo you think its fair to require everyone to follow any standard? Think of English not in the context of cultural importance/language but more formally as a de facto standard. A professional would follow the standards. This is why we have IETF. It is unquestionable and indisputable that standardization improves the world. That said, comments are probably fine in local language.
- Koshkin 6y agoActually, this used to be the norm, back in the day. The Algol 68 standard, for example, is language-independent, i.e. it admits representation of code in any natural language.
- foobarian 6y agoNot a native English speaker either, and I prefer languages the way they are, but - I don't think of them as English per se. BASIC or C or Java could have "blargh" loops for all I care as long as I internalize them they work fine. I guess you could easily accomplish that in C, heh.
- cambalache 6y agoIt is just a cash-grabbing,CV-padding project, it adds nothing of value and it paints part of the latin-american tech community like clueless idiots. Do you want to use a "latino language"(whatever the hell that means), use Elixir.At least it is a nice effort for the Erlang VM with real-world uses.