However, most of the technical projects out there do not have to be usable by everyone or have an interesting goal. So kudos for creating a language from zero (I saw the code on Github and I am sure you learnt a lot doing this). Some people may think this is just "translating back to English and running Python", but you are the doing the whole parsing, so I think it is awesome.
Try to avoid the negativity that you may find in HN and be happy with this!
Abrazo che!
As a learning language, which it is, there is no need or requirement to already know English well enough to program for the masses. Teach this in a Spanish grade school, and there'd be a whole lot of benefit to the students. Why should they wait until they're proficient in English before they can even start to learn coding?
Time to add Vainilla to the list [3].
[1] https://www.lenguajelatino.org/
[2] https://akercheval.github.io/si/
[3] https://www.wikipedia.org/wiki/Non-English-based_programming...
Suggestion: the replacement for the new keyword should be crear, not nueva. This makes more sense as a verb (even when translated back to English!) and side-steps the gender issues.
In addition to the standard English-like AppleScript syntax, Apple also developed [1] localized dialects including French and Japanese, as well as a "professional" query language syntax:
English: the first character of every word whose style is bold
Japanese: スタイル=ボ-ルドであるすべての単語の最初の文字
French: le premier caractère de tous le mots dont style est gras
Professional: { words | style == bold }.character[1]
(Any transcription errors are mine.)The dialects apparently shared a common internal representation so you could write a script in one language and then view/edit it in another (of course comments would still be in the original language.)
From an interesting retrospective by one of its designers:
[1] AppleScript, HOPL '07 https://dl.acm.org/doi/abs/10.1145/1238844.1238845
In any case, you might want to install a Spanish Office 95 version in a VM for inspiration ;). Microsoft soon dropped the localized VB versions due to interoperability considerations.
I hate them, all the good guides and docs are in english but if the application is in spanish then all the function names are different. I have everything in english in my computer because of this and to avoid context switching, but when my gf asks for help I have to google every corresponding function name. Terrible design choice IMO.
"Para i=1 hasta 7 hacer"
no hace ningún sentido. En todo caso sería " Para i en (1..7)" o "Desde i=1 hasta 7" o "Para i=1 mientras i < 7; i++"
In any case, all these copy-paste-just-literally-translate-the-keywords languages offer nothing new.
The problem with for/para statements is that the each/cada that follows is being omitted. My hacer one hides prepositions as well (para or con are suitable candidates), but I’m not sure how would I tweak a for statement in Spanish without increasing verbosity.
https://twitter.com/raeinforma/status/1134042127565033473?la...
It's the standard spanish pseudocode
Looks like Algol syntax to me.
That was an exasperating workload. So kudos to you on this. It looks like you put a lot into it.
Some people are going on about English being mandatory for programming. It isn't necessary for non-English speaking people learning programming to learn both English and Programming at the same time, so I disagree with that. Professionally, sure. But this is a learning language, and it looks nice and clean.
And there are a lot of people who code for fun, just for themselves, too. They don't need to learn English just to accomplish that.
I wonder how many people realize some Lisp implementations are localized to similar effect. Set the language, and then the keywords change to something more appropriate for those languages.
Inform7 in spanish would be neat to have for kids, for example. It's not about programming, it's more about expressing themselves through a game.
honestly this would a be godsend for my girlfriend. Most algol programming languages are super focused on english keywords that are very intuitive for a natibe speaker but nto so much for a Spanish speaker.
case in piint. "if" in spanish is "si", but "si" is also spanish for "yes"
as you can imagine, trying to explain with teh language barrier can get difficult
This is a common typo and they are etymologically the same.
I guess by collapsing multiple words into a single token they collapse the two phrases. Eg. I look again and see finsi which seems strange from a Spanish grammatical sense (just like endif is clearly not English)
In Spanish "else" would be "si no", which is literally "if not". Assuming he supports negating any boolean expression with "no", this means the only way to differentiate between "else" and "if not <expression>" is to parse ahead and check if "si no" is being followed by a boolean expression or literally anything else. Also, under these conditions, assigning a boolean at the end of a conditional, e.g. "si no foo = falso", would always result in a parsing error.
⸻
1. This is the case with many nouns that violate the expectation that an ending in -a would be feminine. The usual chapter one vocabulary word, nauta also comes from Greek, although in that case, the original word is ναύτης which is first-declension in Greek and remains first-declension in Latin, unlike idioma/ἰδίωμα.
hacer
...
recahI'm fine with programming in english, this only complicate things for everyone involved. Imagine if every popular language out there had their own adaptations or even their own programming languages.
Also, you must know english for coding. There is no way you can be a good developer without a good english knowledge - docs, specs, protocols, guides, tools, books, remote jobs with international teams... everything is in english.
Example: "arreglo". Why would you call an array that way?
Learning a programming language is already hard enough (especially the first one) to add another axis to the process, and you'll get much less out of the experience if you are limited to a "vainilla" universe.
The terminology is well established and standardized in english, so if someone says things like bus, heap/stack allocation, driver, or even simple random things like timeout, tracker, to trim a string, to wrap an error, etc. everyone knows what you mean but when people write their docs in spanish and make up their own terms (let alone the mental effort required to translate every term), you can quite easily end up with a huge mess.
Por favor, programad en inglés y usando los términos conocidos y si tenéis un equipo a cargo forzad a hacerlo así, os lo agradecerán en el futuro!
I have a theory that the frequency of the use of those translations (arreglo, aplicativo) in a workplace is directly proportional to the amount of bureaucracy in it.
In fact, what's popular now is to do just the opposite: linters and formatters which force the same coding style for everyone, which is way easier to implement for all the different languages and way more reliable.
And as far as the language itself is concerned, I'd say that it is a bad idea as well because of context switching, translating what you type into other languages (which is not a trivial task for both machines and humans) and because, as I said above, you still need a good english proficiency level if you want to be a good developer, so it makes sense to prepare your students for the real world by teaching programming in english and getting used to it.