Readit News logoReadit News
sitkack · a year ago
I saw Felienne Hermans give a talk on Hedy at Splash! but that wasn't recorded sadly, but here is a presentation too a much larger audience https://www.youtube.com/watch?v=j4eSjA6btE8 that I hope covers the same material.

It is a wonderfully amazing project. I don't know if the video goes into it yet, but when you see how truly egalitarian the project is, you are both proud and ashamed of humanity. Proud that Felienne made this project and all the lives she is improving, but ashmed that it took us this long. Lets make up for it by making everything we design with the same affordances. Lets democratize access to the future.

You might recognize Felienne from her research on Spreadsheets which I feel was a thing here around 2010 https://www.youtube.com/watch?v=0CKru5d4GPk It feels like that was the start of resurgence in respect for Spreadsheets.

zfnmxt · a year ago
Aren't all the SIGPLAN conferences recorded now? At any rate, her talks were recorded:

https://www.youtube.com/watch?v=IrUh5AgIYKE

https://youtu.be/-Br66SUjsdQ?t=12103

(I was also at SPLASH24 and thought she gave great talks. :) )

hitekker · a year ago
I wonder how much projects like Hedy appeals to adults over kids.

Egalitarian, multilingual coding sells well to parents. Children, so I hear, just want to make Minecraft mods or Roblox games.

Seems like a tension between the customer and the user.

sitkack · a year ago
In the video I saw, and of course it is by the Hedy team, about Hedy, but it showed kids very much being excited that the keywords were in their language. There are a lot of kids in the world and meeting them where they are is important.
keyle · a year ago
I grew up French. Never had any issue remembering English keywords. It's not like "for" really flows naturally as an indication of a looping construct.

Edit: I sounded overall negative about this, but I didn't meant to be. I really like the tutorial, and the `ask` and `echo` constructs. I will show it to my son.

rom1v · a year ago
I'm French too, and when I was young, I learnt the Basic language before learning English (by reading Basic programs already available on our computer).

So I was able to write FOR … THEN … ELSE blocks without even knowing what the keywords meant (I just know what they did to the program). One day, I explained to my father what I was writing, and I read out loud FOR … "TEN" … "ELCE" (with a strong French accent), and he corrected me by pronouncing the words correctly ("FOR … THEN … ELSE"). I was shocked: "how do you know?" (he knew nothing about Basic or even programming).

I learnt that day that "for", "then" and "else" were not just keywords in the Basic language, but they were actually real words in English.

rom1v · a year ago
Precision: Of course, I meant "FOR" and "IF THEN ELSE" separately (the way I wrote it might wrongly suggest there is something like for-then-else).
swiftcoder · a year ago
Still, it's nice to engage with folks on their own terms, and not just blindly assume they'll want to work in English all their life.

I kind of miss the early 2000's, where a bunch of pretty well-known French and Belgian academics were publishing source code in their own languages (#define to remap keywords and all)

boxed · a year ago
A programmer not working in English is kinda useless imo. EVERYTHING is written in English source code. If you don't know English you are going to have a very bad time.

I am a native Swedish speaker and I have had a hard policy since I was a teenager to have all electronics set to English and not Swedish. Why? Because the translations are lossy at best. Often you need to understand both English and Swedish AND have a creative mind for word games to understand what the hell something means.

Example: My daughter had an Android smart watch. One menu option in settings was "omkring". This makes no sense. But if you translate it to English it can become "around" hmm, still nonsense.. oh, but it can mean "about" as in "around and about".

Translation is a fools game. It builds Babels Tower all over again. It's bad enough that we have multiple programming languages that only sometimes interop.

keyle · a year ago
Nice, I was unaware of this. Take OCaml for example, it was primarily developed by the French if I recall

    OCaml was written in 1996 by Xavier Leroy, Jérôme Vouillon, Damien Doligez, and Didier Rémy at INRIA in France
Yeah, but they didn't write keywords in French, they went straight to `let`, `rec`, `if`, `then`, `else`... Because they're just keywords, they could just be punctuations; so as long as you don't go full brainfck.

wink · a year ago
There's a difference where you use this.

Learning language - fine, use whatever language you want

Excel - spreadsheet logic breaking when you open it with a different locale - horrible

danielvaughn · a year ago
I’m a native English speaker, but I have several dev friends from Latin America.

I remember asking them whether it would be useful if they could use Spanish words in their syntax, and they all pretty much said the same as you.

poulpy123 · a year ago
For the anecdote, my first introduction to programming (and to computers in general) was in french schools with Thomson TO7, and the language used was Logo, with french keywords. But I agree, english keyword are not really the difficult point when learning to program (for countries with latin alphabet)
anentropic · a year ago
I'm opposite: I thought the multi-lingual aspect seemed nice but the echo command immediately bothered me
ragebol · a year ago
Hedy is great for learning programming to kids.

I tried this a while ago with my scout group, I expected them to take a while per lesson, but they flew through the lessons in no time, drawing all sorts of patterns and making little games

sitkack · a year ago
That is one of the coolest results from Hedy, that these engaging learning paths have a constant acceleration to them, so before you know it, you are juggling while riding a unicycle. You undertand something to the core when you have built it yourself.

In a way it is a perfect (ugh) example of constructivist learning theory, Hedy itself is a constructivist learning exercise in how to teach.

Lego Mindstorms were inspired by Seymour Papert, himself the creator of the Logo programming language and whom he took inspiration from Piaget the psychologist whose work on feedback loops creating core knowledge.

This is an example of how to search using phind https://www.phind.com/search?cache=pti09n13qtsxahmn5zra8yjk

EdiX · a year ago
This isn't really new, there have been projects like this since forever. Microsoft used to ship one with Office, even. I wish they had published something about why they stopped doing it, maybe that would prevent people from repeating the same mistakes. I was subjected to one of those translated programming languages 20+ years ago: they are traps two weeks in you realize you can't do anything without either learning a different programming language (with english keywords) and reaching for external libraries that will define english identifiers and often even have english documentation. I wish I could get back every minute I spent with it and could reinvest it into learning english.
monsieurbanana · a year ago
I don't know the one that shipped from Microsoft, but I'm going to assume it's goal wasn't to teach people how to code but rather empower non-programmers to code. Starting from that, I don't see the two would be similar.
chris_pie · a year ago
Also Excel functions are translated based on your region. Which I find annoying, because most learning resources and references are in English, and English function names don't work in other regional settings.
canucker2016 · a year ago
I have no idea how this got through management.

The localizers went too far, converting the language keywords to somewhat appropriate language-specific versions.

I guess once they shipped a version with the keywords translated, they decided to was too expensive to fix/go back and limped along with this major footgun.

zanellato19 · a year ago
I know several programmers who don't speak any english and can understand the things well enough.

I think this is a valid project and while most programmers I know eventually understand a bit of what the identifier of english mean, the concepts are much better explained in their native language. They can much better translate it later when moving to a "serious" programming language or even to Excel or something like that.

Excel functions are also translated, so stuff like that is really helpful even if you aren't going to become a programmer.

librasteve · a year ago
here’s some raku lang in welsh… https://github.com/finanalyst/rakuast-L10N-CY

  fy $choice;
  fy $continue;
  fy @bad = <damn stupid nutcase>;
  ailadrodd {
    $choice = prydlon "Type something, like a number, or a string: ";
    dywedyd "You typed in 「" ~ ($choice ~~ unrhyw(@bad) ?? "*" x $choice.golosg !! $choice) ~ "」";
    a-roddwyd $choice {
        pryd "dragon" {
            dywedyd "which is 'draig' in Welsh"
        }
        pryd unrhyw(@bad) {
            dywedyd "wash your mouth with soap"
        }
        pryd IntStr {
            dywedyd "which evaluates to an integer ", $choice
        }
        pryd RatStr {
            dywedyd "which evaluates to a rational number ", $choice
        }
        rhagosodedig {
            dywedyd "which does not evaluate to a number "
        }
    }
    $continue = prydlon "Try again? If not type N: "
  } hyd $continue eq unrhyw(<N n>)

gorkish · a year ago
And for OG Perl, Damian Conway gives us classical Latin!

  use Lingua::Romana::Perligata;
  
  adnota Illud Cribrum Eratothenis
  
  maximum tum val inquementum tum biguttam tum stadium egresso scribe.
  da meo maximo vestibulo perlegementum.
  
  maximum comementum tum novumversum egresso scribe.
  meis listis conscribementa II tum maximum da.
  dum damentum nexto listis decapitamentum fac
    sic
      lista sic hoc tum nextum recidementum cis vannementa listis da.
      dictum sic deinde cis tum biguttam tum stadium tum cum nextum
      comementum tum novumversum scribe egresso.
    cis

broken-kebab · a year ago
Software development has its lexicon derived from English. Not learning it does exactly zero favor to kids. On the contrary: their time is wasted, they will need to learn it anyway, and it's sad that some well-intentioned people make them skip what cannot be skipped.

And the mistake seems to be repeated every 5-7 years. One can gather a whole cemetery of such initiatives, the earliest dating back to 70s I believe

rix0r · a year ago
You are evaluating this as a tool that is intended to train people up to being professional software developers.

It's not!

It's instead intended to give every child in the world, regardless of inclination, some first-hand experience in programming computers. Some of these may go on to become professional software engineers, and if they do it will be time enough to become proficient in the common lexicon. Even if they don't, at least they've gotten a better understanding of these machines that inescapably pervade our lives. And kids that wouldn't have thought they'd have an interest in programming get an easy-entry exposure and may decide to pursue it professionally after all.

Given that that's the audience, the goal is to take away any barrier to the essential skill to learn, which in this case is writing instructions for an unthinking machine.

Kids that already know they love programming and are/were willing to do whatever it takes to learn it (i.e., probably nearly everyone on this forum, including myself), are not the audience! Those kids will make it one way or another. Hedy is for all the other kids out there.

jrm4 · a year ago
This is an excellent point and goal.

I've always thought that one of the better things we could do is to make programming not specialized; e.g. Excel-as-a-programming-language has arguably done more to bring programming to the masses than any other "real" language, and perhaps THAT's the goal.

broken-kebab · a year ago
I'm sorry, but you are building on a false premise. If you goal is to lure children unmotivated to learn programming you'd better be distributing sweets. Or (if you ask a Far Eastern, or Eastern European mom) threaten those brats with punishments. Replacing "for" for "voor" is not even a barrier removal as much as you seem to believe. Because "for" in programming has a separate meaning, and you'll spent the same amount of time explaining how it works whether it "for", or "voor". Except that programming-for can be useful for farther studies, and programming-voor is much less so. I answered here in a longer comment if you are interested:

https://news.ycombinator.com/item?id=42840778

lolinder · a year ago
> it's sad that some well-intentioned people make them skip what cannot be skipped.

I don't see this as a move to skip learning English terms for programming concepts, it's a move to reorder.

Starting with Python requires kids to start learning computational thinking simultaneous with learning the English terms for computational constructs. Sure, there aren't many terms to learn, and sure, in some cases (but far from all!) the English word isn't a great mnemonic even for English-speaking children, but neither one of those facts is a good explanation for why teaching a few foreign-language words isn't just accidental complexity in the early stages! And if it's accidental complexity, why not put it off for later?

The whole premise of Hedy is to gradually add complexity in levels, and yeah, that means that throughout the design (not just in the localization) there are some aspects of each level that become redundant as you move on to later levels. But if that's what you're criticizing, you're not criticizing just the fact that it's localized, you're criticizing the entire pedagogical philosophy of Hedy and of most educational institutions.

Educators in general prioritize breaking a concept down into manageable chunks, even if that means teaching some things in a way that isn't perfectly applicable in the real world. Hedy does that for programming, and if you don't like it then your beef is with the entire educational philosophy, not the localization.

Chris2048 · a year ago
> simultaneous with learning the English terms for computational constructs

Very often these are the terms for those things. Much like things named after their inventors, or discoverers; novel concepts often borrow the word of origin of its inception. What would you call "Currying" in another language?

So I guess you could rename keyboard, with <key>-<boards> with words for each coming from your native language, but you'd still be following the convention of 'form' - that the buttons are "keys" (which in other languages may not have the same meaning where a 'key' I believe is piano terminology derived from French "clé"), and its container is a "board".

Unless your language has a handy word that is a perfect fit for the concept of "keyboard", it seems like unnecessary work for the sake of it. Even English borrows 'loan'-words, and Japanese even has a separate alphabet for them.

> neither one of those facts is a good explanation for why teaching a few foreign-language words isn't just accidental complexity in the early stages

b/c you aren't really teaching a foreign word b/c the words still need further context in English, and that is a good reason IMHO, even if you disagree. You could teach ASM mnemonics ('mov', 'div', 'cdq'..) which are also derived from English terms, and I doubt it'd be much different given how abstract the relationship to the words is, and how unusual the terms (e.g. "execute" an action isn't that common in English, outside of CS, or perhaps the military).

> gradually add complexity in levels ... you're criticizing the entire pedagogical philosophy of Hedy and of most educational institutions.

> Educators in general prioritize breaking a concept down into manageable chunks ... if you don't like it then your beef is with the entire educational philosophy

It isn't clear to me that 'English" terms are a layer of complexity on top of local terms. I'd say you are teaching jargon either way, neither of which is clearly easier to learn - I could just as well argue that using native words could cloud the issue and create misunderstandings if they don't match the programmatic meaning well.

jtwaleson · a year ago
Hedy is designed for use in classrooms, and reaches many kids who otherwise would not have tried programming at all. See it as a stepping stone towards programming rather than a great language.

Disclaimer: I've been involved with the project (in a tiny way), and am a fan.

broken-kebab · a year ago
I see what you mean, and I don't enjoy criticizing the initiative, but I volunteered as a programming teacher for several years, and my experience makes me believe you are on the wrong track completely. English has never been the major obstacle to teaching programming.

1. English is taught widely, and they need it anyway.

2. The lexicon to master is pretty short.

3. Kids naturally learn words. Say, with moderate interest in K-pop a European teen can remember Korean names, sometimes even in Korean script.

4. "For" in programming is not the same word as "for" in natural language. You may be under illusion that when it's in a local language, it will be easier to digest, but it's not. You need to explain its separate meaning anyway. And when you did it not in Programming English - sorry, you simply missed the opportunity. You spent roughly the same amount of time to create a redundant word-slot in student's memory.

5. "Tried" is not a valid metrics for success here. One could as well offer free cookies, and number of tries would be growing. But that elephant in the room will look at us without approval!

tucnak · a year ago
Have you lived under a rock for how many years?

AI

The best learning tool, "stepping stone" for kids. And they're already familiar with it when cheating on their homework.

phtrivier · a year ago
I don't know about the US, for the first serious second languages courses in France happen sometimes at the very late primary school, or early secondary school.

But you might want to teach very simple programming concepts before that. You end up using programming as "applied math" and "applied reading / writing".

It's okay. Not all of them will learn programming. Just like it might be usefull to call some angles A in math class, before we learn enough greek to call them omega like all Physical Engineers.

And if they get serious, yes, they will learn english.

(Now that I think of it, I'm pretty old, and I grew up during the "Computer Science for all" years, so I had some very early english and some very early LOGO classes taught the same year. And I'm pretty sure the LOGO went first. Ooooh, memories.)

fryd_w · a year ago
Agree with most of that. yet, I think there is a lot of value in intuitively understanding the 'fors' and the 'ifs' in a way that's different than a combination letters.

Always reminding yourself that 'if' means 'jezeli' (or paste if in your lang) before writing is an extra cognitive load, quite annoying for a kid in the age of dopamine disruption.

Is that problem huge? Don't think so.

incrudible · a year ago
Moreover, in the age of LLMs every child can have an infinitely patient assistant explain them how to do things in any mainstream language. Even before LLMs, the ability to Google something was proportional to the popularity of the language. When we teach children math, we do not teach obscure boutique notation, we teach what everyone knows, even though there are alternatives that would certainly work better for teaching.
suddenlybananas · a year ago
>When we teach children math, we do not teach obscure boutique notation

Actually, you do. There's a reason you teach kids multiplication by aligning blocks into groups and things like that, rather than jumping straight into rote algorithms.

JTyQZSnP3cQGa8B · a year ago
It seems good for beginners. Less scary than BASIC, simpler than Python, and they even have a turtle mode. I don’t know who the audience is but I would have enjoyed that as a kid.