15 ms·
Italian Ruby
- Gravityloss 6y agoThis could work very well when teaching programming.
- viraptor 6y agoThat approach was very popular in LOGO, which was aimed at teaching coding. I believe that's where turtle graphics originated. It had many translations and there were many more built-in keywords.
- szemet 6y agoI actually liked the mixed language approach (keywords/library functions in english, my stuff localized) when I've learned programming (and did not speak english well): Even then, you can learn the keywords and standard library function names easily - but to name things, that needs a different level of language knowledge. So teaching in mixed languages is a good compromise. And it is also very helpful to immediately distinguish between things that were already there, and things have been defined in the actual program. I remember this being a helpful feature to learn language/stdlib by simply reading others code. The more I think of it: it would be good to get back this kind of easy differentiation (maybe with IDE extension?) now... On the other hand Scratch have localization support, and lack of syntax errors - maybe the two largest blockers for smaller children...
- ecmascript 6y agoSeems like a better version of https://github.com/pushmatrix/fikascript https://github.com/pushmatrix/fikascript
- remix2000 6y agoBetter because of Italian, Ruby or actual technology behind it?
- ecmascript 6y agoWell, it seems more complete for one. Probably a bit because of Ruby but also that more effort went into it.
- cptwunderlich 6y agoThere have been some attempts for localized programming languages. In fact, e.g., MS Excel Macros are localized (e.g., "SUMME()" in german instead of "SUM()"). There is even a Wikipedia page: https://en.wikipedia.org/wiki/Non-English-based_programming_languages https://en.wikipedia.org/wiki/Non-English-based_programming_... I'm a bit conflicted. On the one hand, I am all for language diversity and empowering local languages. It may also help novices and very young learners. On the other hand you are already learning an unfamiliar formalism and it hinders interoperability, sharing and collaborating. Hm..
- simplyinfinity 6y agoYeah, localized languages don't work that well on global scale. Side effects may include large number of bubble communities not being able to contribute to one another which leads to fragmentation and friction. What will happen to large open source communities? Will those have only French people working on networking and Russians working on CPUs ? Also large companies won't be able to hire from smaller programmer pools because they will have to learn yet another spoken language.
- matsemann 6y agoThey don't have to be for a global scale, though. Learning programming as a kid, it could be easier when the standard library has functions in the native language. Learning if, while etc are easy as they are just tokens. But the hundreds of functions are hard to look up when one's new and cannot easily understand what a function does based on a foreign description.
- badsectoracula 6y agoI was a kid, what the words meant in English didn't matter much (e.g. i was learning Pascal and it took years until i learned what 'procedure' means), they were essentially symbols. They wouldn't really be helpful. I just had a book in my native language which explained things.
- Kreotiko 6y agoNo intention to be rude but the Readme page doesn’t seem written by somebody native. I understand that English is basically the only language for technical writing but writing that bad in Italian defies the purpose of this Gem altogether.
- eecc 6y agoIndeed, the lack of proper subjunctive forms in combination with subordinate clauses isn’t something you’d expect when claiming to protect proper use of the Italian language
- billars 6y agoI think you are wrong, see the author, maybe it is not the best italian but nobody is perfect.
- uomopertica 6y agoI personally do not have too big a problem with the author’s italian. I’m just not sold on his whole premise of “not being an English native speaker means you think the algorithm in your native language first”. Maybe I’m biased from too many years of programming, but while I see the advantage of graphical languages (e.g. Scratch) for beginners, I don’t really see the point in translating Ruby...
- oscardelben 6y agoIt seems fine to me, there is nothing in it that makes me think it was written by a non native speaker.
- Kreotiko 6y agoYou are a kinder person than me :). I totally agree with eecc. Even just the punctuation is bizarre to say the least.
- toyg 6y ago"l'idea, praticamente, è la stessa di Italian Ruby solo che in filippino." This is just horrible Italian. It's a slang form and technically incorrect. I honestly don't know how people can write this sort of thing without fear of being seen as ignorant fools. "la gemma RubyParser che parsa codice Ruby" [...] "patchando il Ruby parser" "parsare" and "patchare" are anglicist slang terms (ab)used in programming circles. It's the sort of thing that (and I say that as an Italian living in England) just sounds grating. I understand language evolves, but there are Italian words already there for those concepts: to parse can be "analizzare", to patch can be "modificare", "aggiustare", "rimpiazzare". Italian geeks used to poke fun at the '80s managerial classes and their pointless anglicisms.... "La velocità di processazione e traduzione del sorgente è aumentata di molto." "processazione" is just not an Italian word - it's the first time I see or hear it, I cannot find it in any dictionary, I guess it's another recent depravation of an English word ("processing"?). In Italian one would use "elaborazione" or "procedimento". "sappiate che verranno su un sacco di classi e di alias nuovi" "venire su" (coming up) is, again, slang that you're not supposed to use in writing. So yeah, the text is likely from a native speaker, but not one particularly well-versed in the language. Which makes the project even more bizarre.
- makach 6y agoah, this reminds me of how much JOY I am having using my localized Microsoft Excel. All formulas have been translated to my native language and it's just BLISS to work with. This makes it MUCH easier to search the interweb for my specific formula question. We obviously need much more localization. Particularily in error messages.
- viraptor 6y agoI honestly can't tell if you're being sarcastic or not. I can think of ways going for specific formula could be both better and worse. The localised error messages are also a double edged sword - if you can solve your own problem based on the message, they're better, but if you need to Google it your chances of finding a solution go down due to fewer hits.
- TulliusCicero 6y agoThey're definitely being sarcastic.
- viraptor 6y agoWell, here's the thing: I heard the same thing from some people I studied with and they were 100% serious.
- TulliusCicero 6y agoIt's not just what they're saying that gives it away, but how they're saying it. The way they used ALL CAPS in particular is a tell.
- gmueckl 6y agoLocalized error messages have pretty much been a curse for me every time I encounter non-trivial ones. Quite often they end up being horrible mistranslations of the original text and terminology that make them hard to understand. I get the need for interface localization, but I prefer no translation to a bad one. And many translations are bad.
- K0nserv 6y agoI created something like this when I was first learning to code in C++. A horrible Swedish variant of the language based on massive abuse of the pre processor, good times.
- makach 6y agoI think my next project will be to localize befunge. https://en.wikipedia.org/wiki/Befunge https://en.wikipedia.org/wiki/Befunge
- browsergap 6y agoOnly ~5% of Earth speaks English natively. Another 15% speak it as an nth language. I think English based programming is an anomaly that came out of the post-WWII US/UK cultural world order, and from that sustained economic boom came modern computers, languages and the internet to a mass market. 20% of the world speaks Mandarin Chinese (not all as a first language tho). And, about the same % as speak English natively, speak Hindi (+ dialects) natively, and again about the same amount speak Arabic, and again about the same amount (all above 300 million) speak French, tho a greater % of those have le français as an nth language. HN, and programming, shouldn't get carried away with the myopic, "fish in the fishbowel" view of English primacy. It's really not. Not globally. Just like "white people" are not a majority. Only in a very narrow, very opinionated and specific corner of the globe are those things true. It's a big world out there, much bigger, it seems than many of you imagine from your keyboards. Even tho HN is in English, many HNers are not native English speakers. I see people associating programming languages with English and thinking it's simply natural (if just by convention), but for most of the world, this simply isn't true, and it could have been another way. In the future it might be another way. So I really feel it's not accurate to say there's some "problem" with people on Earth creating languages that are founded in Chinese, or Japanese, or Italian, or Russian, or Hindi, or any of the many other languages people speak. For a large corner (or even a small corner) of the world, it would not be a "problem", it would be perfectly natural. I just don't think it's that accurate, or that useful, to think of programming and English as being somehow a natural match. When people speak about "representation" in the "tech industry" they ought to consider this factor as well. I'm not just talking about SV, I mean "global representation in engineering". Of course, if Japanese people decide to embrace a language that somehow uses Japanese letters or characters then, there's probably not much you can do about it. I'm just saying, don't assume it's a bad thing and don't think somehow English and programming has to go together. Certainly at the level of logic, and CS, programming is completely independent of English (tho interesting to think about how the grammar of English maybe constrained and drove initial language structures, concepts and flow control and do a comparative study of differences to languages that emerged from cultures and used other human languages.)
- EdiX 6y ago> 20% of the world speaks Mandarin Chinese (not all as a first language tho). And, about the same % as speak English natively, speak Hindi (+ dialects) natively, and again about the same amount speak Arabic, and again about the same amount (all above 300 million) speak French, tho a greater % of those have le français as an nth language. What are your sources for this because cross checking with wikipedia, which uses Ethnologue as a source, I find several discrepancies. For example the number of people who speak french isn't "the same amount" as native english speakers, it's 53% and that's if you include 2nd language speakers. You make it sound like Hindi and English are comparable but Hindi has very few 2nd language speakers. In fact looking at [1] the choice of english looks a lot more logical than I would have thought. [1] https://en.wikipedia.org/wiki/List_of_languages_by_total_number_of_speakers https://en.wikipedia.org/wiki/List_of_languages_by_total_num...
- nathell 6y agoFinally, a spiritual successor to Lingua::Romana::Perligata. https://metacpan.org/pod/Lingua::Romana::Perligata https://metacpan.org/pod/Lingua::Romana::Perligata
- StavrosK 6y agoAnd how fitting that the language is the descendant of Latin.
- jaclaz 6y agoAlso, sometimes, translations have a different (perceived) meaning. A pet peeve of mine is "by default". In Italian it is translated (correctly) "per difetto", and it is "fine" when other people already know the term, but otherways "difetto" is also the translation of "defect", and you will have a tough time explaining to a layman that it is not a "defect" in that other sense. Another "queer" word (I found it in the Italian version of some database tools) is "ometti" (which is the correct translation of "omit") but that actually I normally read as "little men". In Excel there is "MODE" (statistical function) that is translated into "MODA" which I read as "fashion" and "MOD" (modulo operation) which is translated into "RESTO" (which has a more common meaning of "change" in the sense of what a cashier gives you back when you pay besides that of "remainder").
- StavrosK 6y ago> translations have a different (perceived) meaning I think the problem you're running into is that you just aren't used to these words. I imagine people having the exact same complaints about a computer "mouse" actually reminding them of the animal or "paste" reminding them of glue, but once you get used to them they just become the terms for things.
- MPSimmons 6y agoA very long time ago, I worked technical support for Bellsouth Internet, and occasionally we would get people from the bayou in Louisiana calling in, and the language difference was striking. There was one memorable time when this happened, and as I was walking the user through their Dial-Up Network Settings configuration, I asked him to right-click on his dial up connection icon, and he had trouble understanding me. I said something to the effect of, "does your mouse have two buttons?", and he replied, "yes, and I'm mashing this critter right here". So the parallels of the peripheral and the rodent are not lost on everyone.
- numpad0 6y agoOr maybe the problem is that translations are wrong, but appear correct if seen by English speaking person through reverse translations, because literal English-Italian translation mapping for said expressions happen to be robust and consistent within itself, despite being inconsistent with actual Italian language in actual real world context.
- vasilakisfil 6y agoI had filled a relevant issue [1] a while ago in Ruby issue tracker. I also thought that teaching Ruby language in children, in their native language, would be so cool. [1] https://bugs.ruby-lang.org/issues/12722 https://bugs.ruby-lang.org/issues/12722
- seek3r 6y agoThe thing is most Italian schools don’t do a great job at teaching English [1]. Students either pay for courses, self-study, or forget. I’m Italian and I don’t agree with the author’s premise that non-native speakers have an additional translation layer (e.g. Italian -> English -> Ruby). It depends on your knowledge of the English language. As you master the language your brain becomes better at context switching; you don’t even notice it anymore (Myers and Cotton, 2002). We should fix our schools, not translate programming languages. The technology sector speaks English. You can’t escape this language. [1] https://www.ilsole24ore.com/art/conoscenza-dell-inglese-alta-ue-ma-italia-e-francia-sono-ultime-AErQAzYG https://www.ilsole24ore.com/art/conoscenza-dell-inglese-alta...
- Kreotiko 6y agoYou simply can’t be effective in programming without knowing English. Having few words translated in your language wouldn’t help much. Moreover it is much easier to learn English than learning how to code.
- deleted 6y ago[deleted]
- StavrosK 6y ago> Moreover it is much easier to learn English than learning how to code. I know many, many people who would disagree.
- Kreotiko 6y agoHuman languages are intuitive, share some aspects and we have centuries of knowledge on how to learn them. Programming is still a relatively new activity in comparison and requires a set of knowledge that you don’t already get in your youth like speaking does. I also know basic Greek and I can swear it was easier to learn than coding at a professional level.
- StavrosK 6y ago
- remix2000 6y agoRelated stuff: * Claim that word order in Japanese suits ST-style message-passing OOP better than English: https://thoughtbot.com/blog/learning-japanese-the-rubyist-way https://thoughtbot.com/blog/learning-japanese-the-rubyist-wa... * APL, a language that uses symbols instead of keywords: https://en.wikipedia.org/wiki/APL_(programming_language) https://en.wikipedia.org/wiki/APL_(programming_language) * Non-English-based PLs on Wikipedia: https://en.wikipedia.org/wiki/Non-English-based_programming_languages https://en.wikipedia.org/wiki/Non-English-based_programming_... * How does English proficiency correlate with programming mastery: https://www.researchgate.net/publication/277097932_A_CORRELATION_BETWEEN_STUDENTS%27_ENGLISH_PROFICIENCY_AND_THEIR_COMPUTER_PROGRAMMING_MASTERY https://www.researchgate.net/publication/277097932_A_CORRELA...
- microcolonel 6y agoDespite the apparent intrigue, non-English programming languages fail to build on the canon except through bilinguals, and this alone is a good reason not to bother. Also, correlation between English test proficiency and academic success in programming school is not a clean metric, and does not necessarily measure a correlation between “English proficiency” and “programming mastery”.
- pizza234 6y ago> * How does English proficiency correlate with programming mastery: https://www.researchgate.net/publication/277097932_A_CORRELA.. https://www.researchgate.net/publication/277097932_A_CORRELA.... I find this conceptually wrong, at least, based on the abstract. They're looking for a correlation: > This research is conducted to find out whether the learners' English proficiency correlates or affects the learners' ability or mastery in writing a computer program which is appropriate, but their conclusion: > The result of this study can be used as a consideration in improving the teaching of English for Informatics Engineering learners implies causation, which contradicts their intent. My point is - there are a lot of variables at play, the simplest being that people who are good in spoken languages, are naturally inclined to learn a computer language (d'oh). I think a very interesting way to make the research more rigorous, would have been to test with a non-english programming language (although, based on their approach, that would require a whole semester). Am I missing something?
- CaciaraAsAServi 6y agoOT, sorry, but related (well, related only in the language): https://github.com/esseks/monicelli https://github.com/esseks/monicelli (humorous PL based on a cult movie)
- capnorange 6y agoI just got back into ruby after a while and I must say it feels so zen.
- eddietejeda 6y agoIndeed. I recently re-decided to default to Ruby for side projects. If you don't need to squeeze the very last drop of performance, I can't think of a more comfortable language.
- Tade0 6y agoI spent a few years in Italy but never learned the language properly(my only Italian friend there happened to speak my language - Polish), still it strikes me as odd that Italians should have issues with learning English when the two languages are grammatically much closer than English or Italian is to e.g. any Slavic language. Thing is, the way I speak Italian is I use English as an intermediary language, because at least the tenses are somewhat similar. Of course this strategy falls flat on its face in a more complex conversation, because spoken Italian is chock full of phrases - my favourite being "in bocca al lupo" - which taken literally translates to "in the wolf's mouth!" (note the lack of predicate here) and to me sounds no different than "Darmok and Jalad at Tanagra". One other thing is that during my time in that country I was surprised to note that the IT job market there is actually a little smaller than in my native Poland. Weirdly enough the salaries are roughly the same - especially after taxes. I can't explain this, because I met a lot of smart and passionate about their work people in Italy.
- neallindsay 6y agoRuby is great for these kind of shenanigans: https://github.com/searls/emoruby https://github.com/searls/emoruby I worry about the cultural hegemony of the English language. Projects like this are interesting, but I don't see a world where they overcome the inertia of English-based programming. Ruby itself is a great example - created by a Japanese guy, but entirely with English keywords. Maybe if China makes a concerted effort they could do it. ¯\_(ツ)_/¯
- untog 6y agoI remember many years ago when MooTools (yes, that long ago) announced localised APIs as an April Fools joke. At the time I thought it was an interesting idea! I do wonder if there’s still something to it. I can imagine that in the not too distant future we won’t check in text code files any more, instead checking in ASTs that represent the code. That would end all the silly debates about code formatting: everyone would check out their preferred format then check in something standard. Maybe languages could be treated the same way.
- roflc0ptic 6y agoThere's this absolutely mind bending idea that is - every single function should have a unique identifier. Which is to say: def square(x: Int): Int = x * x should get hashed (and if it has dependencies, they should get hashed in there, too), and your programming language should track the unique identity of this function, and keep a list of names separately from the hashes. This totally solves the localization problem: you can just write localizations in one place, and whenever you need to represent them, use the hash to look up your representation. This lets everyone (compatibly) name their functions/variables whatever they want. Less intuitively, it also basically removes the need for builds. Every function has a verifiable unique identity, so your compiler can tell with 100% certainty whether or not something needs to be rebuilt. When you modify a function, it changes the hash, so you end up with both the old and the new function. Any code which requires the old function can still access it. This has been implemented in the Unison programming language (https://unisonweb.org/ https://unisonweb.org/) which is very much in alpha. I don't know if there are other platforms implementing it. It is so elegant and freeing. I am really stoked for the future of programming languages, when localization is just a matter of translating some words.
- efferifick 6y agoDo you know how they would hash a recursive function? Or where I can learn about this? Thanks! EDIT: I am asking more about the hashing function than about the language. Because if there is a recursive function, that means that one would need the hash of itself in order to compute its own hash. One can probably try to compute a hash iteratively until a fixed-point is achieved. EDIT2: but... it is probably a bad idea to do that.
- roflc0ptic 6y agoIt's an interesting question that I don't have an answer to. I don't actually know what this technique is called - I heard about in passing at lambda conf, and just saw last week that Unison is using it. The unison crew is super friendly (Runar once patiently spent 20 minutes trying to explain adjunctions to me, a perfect stranger). I'll ask in their slack channel if this has a name.
- ris 6y agoAnd this is the perfect illustration of why I find ruby's obsession with attempting to make code read like natural language abhorrent. Imagine you're told to pick up a project written like this. This is what it's like for non-native-english speakers every day. Natural language is weird, vague and quirky.
- bfabio 6y agoI'm having Vietnam-style flashbacks right now, courtesy of Excel's localization. Please don't ever use it in production, ever.
- casualrandomcom 6y agoNoting that "accessore" is not an Italian word was on the tip of my tongue (or, rather, fingers), when I realized that not even "accessor" is an English word. Terms used in programming languages are probably much more awkward in an English mother tongue's ears than in those of a foreigner. I wonder if "by default" had any meaning in English before it was adopted in the IT context.
- dragonwriter 6y ago“Accessor” is an English word. Sure, it originates in computing, but that doesn't make it any less part of the language.
- casualrandomcom 6y agoI'll rephrase, Your Honor: Even in English, "accessor" is a word that was rarely, if ever, used, before it was picked up in the programming languages jargon. So much that it has not made its way into some dictionaries, like Cambridge and Merriam-Webster.
- hcs 6y agoChecking the Oxford English Dictionary (2nd Ed.), they have accessor only as a form of accessory (as a noun). So yeah, the programming use is "new". fwiw, they have "default", in the computing sense of the preselected option, from 1966, while "by default" (in a legal context) has an example from 1764, "Where a defendant makes default, judgement shall be had against him by default."
- TimTheTinker 6y agoAt my last job (at a company in California), half of the development team was contracted out of a firm in Russia. I once asked the Russian developers how they felt about programming in English as opposed to Russian. They all said they strongly prefer programming (both keywords and identifiers) in another language, because it feels more like a "computer language". And there really aren't that many words to memorize, anyway. Just an interesting perspective in the discussion.
- simonebrunozzi 6y agoThis is a "fun" idea. Being able to write Ruby code, using Italian instead of English. Not practical. Not useful. But fun. I like that.
- oneplane 6y agoIn itself this seems like a ton of fun. But for interoperability it seems horrible to me and is pretty much a nightmare. Working with codebases from different companies in different countries, the ones that lag behind in on way or another are often written in the local language (i.e. German or Dutch) which essentially cuts a lot of it off from the common knowledge pool on the internet. While English isn't the biggest or the best language, it's the language with the must useful body of information regarding technology.
- thalesmello 6y agoFinally! The perfect language for my spaghetti code!
- Kosirich 6y agoLove the idea. There is something about using the language I associate with Calcio, Art, Moda, Renesanse, Culinary experience that goes well with programming. That being said and someone pointed out italian has a lot of synonyms and double (close) meanings but then again so does English. According to some study, German is the most precise language. Since I recon not many people would like to write their algorithms in German, the next best neutral(ish) language with high precision is Latin! It is still taught in many schools with classical education and most of European languages are based on it.
- eclat 6y agoBravo