[HN Gopher] Hedy: Textual programming made easy
___________________________________________________________________
Hedy: Textual programming made easy
Author : 0x54MUR41
Score : 198 points
Date : 2025-01-27 05:11 UTC (17 hours ago)
(HTM) web link (www.hedy.org)
(TXT) w3m dump (www.hedy.org)
| ragebol wrote:
| 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 wrote:
| 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
| dang wrote:
| Related. Others?
|
| _Hedy: Textual Programming for the Classroom_ -
| https://news.ycombinator.com/item?id=40095336 - April 2024 (1
| comment)
|
| _Hedy: Textual Programming for the Classroom_ -
| https://news.ycombinator.com/item?id=39713141 - March 2024 (1
| comment)
|
| _Hedy - a programming language created by a CS teacher to teach
| kids coding_ - https://news.ycombinator.com/item?id=38509871 -
| Dec 2023 (1 comment)
|
| _Hedy: Textual Programming for the Classroom_ -
| https://news.ycombinator.com/item?id=34274831 - Jan 2023 (1
| comment)
|
| _Hedy: A Gradual Programming Language_ -
| https://news.ycombinator.com/item?id=33252427 - Oct 2022 (1
| comment)
|
| _Hedy: A gradual programming language for education_ -
| https://news.ycombinator.com/item?id=30850420 - March 2022 (1
| comment)
|
| _Hedy is a gradual programming language that helps kids to learn
| Python_ - https://news.ycombinator.com/item?id=26944418 - April
| 2021 (48 comments)
|
| _Hedy - A Gradual Programming Language_ -
| https://news.ycombinator.com/item?id=26761487 - April 2021 (1
| comment)
|
| _Hedy: A Gradual Language for Programming Education_ -
| https://news.ycombinator.com/item?id=25249471 - Nov 2020 (17
| comments)
| raimondious wrote:
| No comments but From Burnout to Breakthrough is a conversation
| with the creator of Hedy
| https://news.ycombinator.com/item?id=40582437
| JTyQZSnP3cQGa8B wrote:
| 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.
| jhoechtl wrote:
| https://en.wikipedia.org/wiki/Logo_(programming_language)#Tu...
| poulpy123 wrote:
| a lot of memories !
| sitkack wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| voidUpdate wrote:
| I really like that it can be used in different languages. Does
| the whole file have to be in one language, or can you change
| whenever? Can you have some lines of arabic inside an english
| file?
| sitkack wrote:
| You can select the language drop down and follow one of the
| tutorials
|
| https://www.hedy.org/hedy#story
|
| https://www.hedy.org/hedy/10?language=ar&keyword_language=ar...
|
| At the top left is a control panel that toggles base language
| for the language keywords. Or what it appears to me. Is that
| what you are looking for? You could try the exercise and see if
| it supports both.
|
| It looks like you can definitely program entirely in Arabic
| with English inside of Hedy, I am not sure if any of the
| exercises are declaring new keywords
| voidUpdate wrote:
| Ah, thank you, that answers my questions =) Looks good!
| thrance wrote:
| Dang it, I had this idea in my head forever, good to see someone
| else do it. I also thought about being able to disable features
| of the language, like classes, so teachers can focus on specific
| concepts in specific lessons.
| Piraty wrote:
| https://corecursive.com/hedy-with-felienne-hermans/
| keyle wrote:
| 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.
| swiftcoder wrote:
| 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)
| keyle wrote:
| 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, Jerome Vouillon,
| Damien Doligez, and Didier Remy 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.
| Athas wrote:
| The comments were quite often in French, however! Until
| relatively recently, the OCaml compiler would also
| sometimes emit error messages in French in some obscure
| cases.
| octachron wrote:
| How long ago was this "relatively recently"? When I
| translated all the remaining French comments in the OCaml
| compiler nearly 10 years ago, there were already no
| warnings nor error messages in French.
| Yoric wrote:
| I'm sure there is, somewhere in the deep recesses of the
| Internet, a camlp4 or camlp5 syntax extension to replace
| `let`, `rec`, `if`, `then`, `else` with `soit`, `rec`,
| `si`, `alors`, `sinon` :)
| boxed wrote:
| 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.
| swiftcoder wrote:
| > EVERYTHING is written in English source code
|
| That's not some immutable law of the universe - it's really
| a pretty recent state of affairs. A quarter century at most
| incrudible wrote:
| Okay, but are you speculating that we will all switch to
| many native languages instead? That seems unlikely. The
| lingua franca may change, but nothing suggests it will
| not be English within the educational timeframe of any
| child born today.
| TeMPOraL wrote:
| > _it 's really a pretty recent state of affairs. A
| quarter century at most_
|
| And? Powered flight is barely 100 years old. For most of
| the world, ubiquitous sanitation, access to running hot
| water, electricity, medicine beyond voodoo and
| superstition - are _all_ barely 100 years old, give or
| take quarter century. For most of the world - the _rest_
| of the world got it much later, or in some places, _not
| at all_.
|
| Very little in human affairs is an immutable laws of the
| universe. Most of it is arbitrary, path dependent, frozen
| in place as we built more things and made more choices on
| top of past ones, instead of endlessly bickering about
| which random result would've been most fairest.
|
| It so happened that English became lingua franca, and
| we've built the last 70+ years of technology on top of
| it. Do you want to tear it all back down, and call for a
| World War II rematch, all for the sake of a dice re-roll
| on which language we name our "for loops" in? _Why the
| hell does it matter?!_ English won. Time to move on.
| Build up, instead of tearing down.
|
| EDIT: also, FWIW, languages evolve. English of 2025 isn't
| all the same as English of 1945, much less that of 1865.
| That evolution _accelerates_ with globalization, as every
| culture contributes their bit to the global whole. See
| the "Internet slang" or various pidgins that popped up
| in the high-throughput port areas around the planet; this
| is the sign of things to come.
| KineticLensman wrote:
| > a pretty recent state of affairs. A quarter century at
| most
|
| When I started programming in 1980 there wasn't even a
| hint that anyone used anything other than English. The
| first non-English thing I saw was a message from a Prolog
| compiler (in perhaps 1983) telling me that I had an
| "erreur syntactique", IIRC.
|
| More significantly, from 1988 to 1991 I worked on a EU
| Esprit research project, with Dutch, Italian and French
| partners. They all coded exclusively in English, even the
| French partners.
|
| YMMV.
| swiftcoder wrote:
| Even into the early 90s a lot of codebases had their
| comments in other languages. Less common for
| variable/class names to be in other languages, but there
| is a reason that Java et al adopted unicode identifiers
| in the 90's (albeit with fairly little uptake).
| lo_zamoyski wrote:
| So what? What's your point? If something occurs that
| shifts the language of tech to something else in the
| future, so be it, but as of now, it is English.
|
| There have been many lingua francas in history, often
| domain specific. In the early 20th century, French and
| German had become the languages of international
| scientific discourse. Before that, Latin was the language
| for academic work and international communication in
| Europe. If you wanted to get involved, you had to learn
| the language. That's always the case, because a common
| enterprise needs a common language.
|
| And today, the degree of international collaboration is
| so high, and the cumulative literature so great, that it
| will be more difficult to even make a shift.
|
| (And trust me: programming language keywords in a
| language other than your own are not an obstacle for
| anyone.)
| keybored wrote:
| > 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?
|
| The base reason is that Scandinavian teenagers can learn
| English by sheer osmosis from Anglo culture. (That is not
| the case in many other places.) Then it makes perfect sense
| to:
|
| > Because the translations are lossy at best.
|
| Since (my reason at least) is that I can troubleshoot
| problems using the English Internet corpus. And I don't
| need to bother with multiple terms.
|
| Granted I was older before I committed to this practice.
| TeMPOraL wrote:
| > _(That is not the case in many other places.)_
|
| Practical angle: so let's add another datapoint! The same
| is the case in Poland.
|
| Seriously though, it's just a consequence of history.
| Computers and software were imported to everywhere around
| the world rapidly; no country wanted to put themselves at
| economic disadvantage by blocking sales of hardware and
| software until they 100% up to specs regarding consumer
| products being fully explained and operable in native
| language (in fact, I suspect such regulations came about
| _after_ computers became a thing in any given place).
|
| > _Since (my reason at least) is that I can troubleshoot
| problems using the English Internet corpus. And I don't
| need to bother with multiple terms._
|
| For me it's more of the latter. Translations love to
| screw terminology up, introducing multiple distinct terms
| for the same abstract concept, and using them
| inconsistently (often the result of multiple,
| independent, half-assed passes at translating the user-
| facing text, manuals, etc.).
|
| English was the language software authors most likely
| spoke; English is the language of programming and
| software industry. English is the language almost all
| software targets first and foremost, due to market/user
| population size. As a consequence, most care is put into
| English in the user interface, it's the one considered
| canonical, it's the one in which the thing was designed
| (whether the desigers were native English speakers or
| not); English is the one where user-facing text is most
| likely to be consistent and corresponding 1:1 with
| language used in other programs, as well as with code
| powering it, etc.
|
| Every other language is a translation, most likely done
| as an afterthought, as cheaply and quickly as possible
| (there's little incentives to do otherwise - as long as
| English text is done well, users will manage). If you
| understand English, running software in anything but
| English is setting yourself up for failure.
| keybored wrote:
| Scandinavians have small language bases, speak a Germanic
| language, and don't have to learn a second non-English
| language, c.f. the Swiss for example.[1] Both the lack of
| material in their own languages plus the shared English
| lexicon and I guess grammar helps motivate them to become
| at least bilingual (in my experience not more than that
| for the most part).
|
| Similar tendencies can be seen in other European areas.
| But it seems to be less pronounced as you move outside of
| the Germanic-speaking parts of Northern Europe.
|
| You don't have to move far away from the Germanic-
| speaking Northern Europe to find adults who struggle with
| English. Including young adults.
|
| Now this is apparently for kids. Certainly kids younger
| than teenagers have amazing language acquisition
| abilities. But they also might have less motivation and
| exposure to English. Now maybe Northern Europe kids have
| such exposure these days that the current English-
| dominated programming as we all know it is a mere
| triviality for them. So scratch those. Not for them. I
| would still be surprised if there aren't a large number
| of kids worldwide that localized programming would help.
|
| [1] Minorities like the Sami could be exceptions here.
| wink wrote:
| 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
| anentropic wrote:
| I'm opposite: I thought the multi-lingual aspect seemed nice
| but the echo command immediately bothered me
| poulpy123 wrote:
| 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)
| danielvaughn wrote:
| 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.
| rom1v wrote:
| 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.
| broken-kebab wrote:
| 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
| incrudible wrote:
| 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 wrote:
| >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.
| jtwaleson wrote:
| 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 wrote:
| 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!
| jtwaleson wrote:
| I agree that localization might not be the biggest hurdle,
| but that's also not the biggest selling point of the
| language. It's a gradual language (the syntax grows which
| each level), it's fun, and designed for classrooms so
| teachers can help kids easily. I disagree with you, because
| I think the localization does more good than bad. It's not
| like these kids are becoming "career hedy programmers".
| There are only a couple of levels, after which they will
| hopefully continue to learn other languages. I'm happy to
| agree to disagree.
| wruza wrote:
| My main struggle with BASIC at 10yo was its non-strict
| SQL-looking structure. Maybe that's me specific, but this
| gradual thing would be even more confusing, cause it
| gives nothing rigid to pattern match against. The big
| part of it is demystification and regularity. I only
| started programming when I got Turbo Pascal (and god
| bless BGI). Before that it was all muddy waters.
| jtwaleson wrote:
| I was very confused by the complex structure of Pascal
| (in Delphi). I think everyone has their own way of
| struggling with their first language.
|
| I have doubts whether the gradual language is confusing
| or sensible to the average brain. Only time and
| competition in these kinds of educative tools will tell.
|
| But, there is one thing I'm very sure of: the more kids
| that get to experience the joy of creatimg something by
| programming, and the more kids that get to experience the
| feedback loop, the better!
| croemer wrote:
| In Czech none of the keywords are localized. Seems like
| an unstable interface if language keywords change
| depending on the state of translation.
| hitekker wrote:
| > 5. "Tried" is not a valid metrics for success here.
|
| A key insight. Feels like the usual human confusion over
| activity and output. Activity metrics bias for
| participation / attention at the top end of the funnel,
| whereas Output metrics assess the end: the quality &
| quantity of production. The first is visible, immediate,
| plays to human bias, whereas the second is much farther off
| and usually less interesting to the general public.
|
| Applied to kid coding, adults like seeing many kids doing
| work socially, whereas the few kids who stick with it aim
| for genuine, even selfish, creation.
|
| It's not a bad initiative, just one that seems to cater
| mostly to the ideals of the teachers and the parents.
| tucnak wrote:
| 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.
| jtwaleson wrote:
| "Please don't post shallow dismissals, especially of other
| people's work. A good critical comment teaches us
| something."
| tucnak wrote:
| I'm sorry you feel your work is easily dismissed. You may
| believe that quoting "the rules" would make you appear
| stronger, but more often than not it would have the
| opposite effect: make you look weak. Nothing about my
| argument is shallow; it's a concise recognition of
| reality in education: ChatGPT is here, and it's here to
| stay. New capabilities will include generating, running
| code, and beyond.
| jtwaleson wrote:
| I don't care about appearing stronger, it's just not very
| nice to say "have you been living under a rock". We tend
| to do better than that on HN.
|
| I wasn't saying that AI is not here. It is, and it is
| very important. Happy to have a proper discussion about
| that.
| tucnak wrote:
| > Happy to have a proper discussion about that.
|
| If this were your intentions, you would have done exactly
| that. So far you have produced 0 statements on AI beside
| empty affirmations "AI is very important." We can do
| better than that on HN.
| rix0r wrote:
| 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.
| broken-kebab wrote:
| 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
| jrm4 wrote:
| 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.
| fryd_w wrote:
| 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.
| lolinder wrote:
| > 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 wrote:
| > 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 "cle"), 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.
| phtrivier wrote:
| 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.)
| nottorp wrote:
| This is as bad as dubbed movies instead of the original audio
| with subtitles if you ask me.
|
| And no, I'm not a native English speaker.
| librasteve wrote:
| 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 wrote:
| 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
| EdiX wrote:
| 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 wrote:
| 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.
| zanellato19 wrote:
| 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.
| chris_pie wrote:
| 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.
| zoezoezoezoe wrote:
| I really like this idea, going from something extremely basic and
| gradually building into python. I am very interested to see if
| this goes anywhere.
| 33a wrote:
| For what it's worth, my kids really like this project.
| wruza wrote:
| I was around 9 and didn't speak English at all when I first met a
| computer with ROM BASIC in it.
|
| My struggles were with understanding the structure and my daily
| driver was making games. BASIC was sort of harder to get compared
| to e.g. Pascal cause it was less structured. English was not an
| issue at all. And print/input/print loop gets boring immediately.
| You need graphics, and sounds, and a library of these, and
| algorithms that make it move. I had to imagine that circles were
| characters and SOUND 50, 2 were the effects.
|
| I remember two instant-games environments - Gambas and Love2d,
| but there should be much more now.
| rickydroll wrote:
| https://www.youtube.com/watch?v=8vjEnkQdaHM&t=2s
|
| Sorry, my mind makes weird jumps and pulls up movie references
| kerkeslager wrote:
| I've pretty much concluded after a few decades that "learning"
| programming languages are a bad idea. If your language doesn't
| give students _all_ the tools necessary to build a production
| program, you 're sending them down a path that ends in a dead
| end. Sure, you can learn loops/ifs/functions in whatever
| language, but those concepts are a means to an end. Students
| don't start learning a programming language because they want to
| learn loops/ifs/functions, they start learning a programming
| language because they want to build something--a website, a video
| game, a tool that spams their friends' emails with fart jokes. If
| your language can't do all those things, it's not empowering
| students to do the things that got them into programming in the
| first place.
|
| Multilingual programming is a great idea, but it needs to be a
| feature in a production-quality general-purpose programming
| language, not in a learning language.
|
| I've been working on a programming language interpreter for a
| while, and I'm thinking about how I'd implement this. Here are my
| thoughts on a rough design:
|
| All the keywords in the language should be in a "language pack"
| for each of the supported natural languages. These should map
| one-to-one to some central language. When you write your code,
| you write it in your native language, and then run a tool that
| translates the code into the central language. The central
| language code, _not_ your native language code, is what you
| commit to git.
|
| When a programmer checks out the repository, the first thing they
| do is run a tool which translates the code into their native
| language using the language pack. This is why it's important that
| the mappings be one-to-one.
|
| The tricky part here is variable names also need to be
| translated. This is an easier problem than translation of natural
| language usually is, because variables are going to mostly nouns,
| but it does mean that you can't have the typical /[A-Za-z_][A-Za-
| z_\d]*/ variable names--variable names need to be limited in some
| way to words which exist in the language pack. This creates a
| mess for language maintainers, but it's similar to maintaining
| time zone information in a standard library.
|
| One upside to the central language design is that bad
| translations don't have to be forever. The central language has
| to be reverse-compatible, but the translations don't, because
| when the user updates their language pack all they have to do is
| re-generate their native langauge source to get the better
| translations.
|
| The central language doesn't have to be human-readable, but it's
| not terrible if it is a natural language. However, I think it
| should _not_ be English: English developers of the language
| should be dogfooding the translation system.
|
| Ideally you'd want your editor to display code in your natural
| language, translating to the central language in real time and
| only ever writing to disk in the central language, because we
| don't want be keeping natural language and central language files
| in sync. Vim/emacs/atom/etc. could do this with a plugin, but
| this definitely is not a trivial problem.
|
| Language packs should contain some standard formatting rules that
| make sense for the language, similar to `go format`, but there's
| no reason users couldn't configure the translation tools to use
| their preferred formatting.
| hnlmorg wrote:
| > Students don't start learning a programming language because
| they want to learn loops/ifs/functions, they start learning a
| programming language because they want to build something--a
| website, a video game, a tool that spams their friends' emails
| with fart jokes.
|
| Generally students learn a programming language because they
| are told by their teachers that they have to.
|
| And thus these kinds of programming languages aren't really for
| curious students. They're to make teachers lives easier.
| Particularly for schools where teachers might not even know how
| to program themselves.
| kerkeslager wrote:
| > And thus these kinds of programming languages aren't really
| for curious students. They're to make teachers lives easier.
|
| I very much doubt that the creators of these languages are
| thinking of their creations this way.
| svilen_dobrev wrote:
| shameless plug: python in bulgarian (or whatever you put in those
| translation tables). Well.. from 2012:
|
| https://github.com/svilendobrev/smok
| chaosprint wrote:
| Love the mission!
|
| My project Glicol (https://glicol.org/) also has some classroom
| practice for sound 101
|
| But I think what children need most is to provide very simple to
| complex examples for modification.
|
| The bigger worry is that other things, like Instagram, become
| more appealing than learning to code.
| lo_zamoyski wrote:
| One of the key insights that the HtDP curriculum was designed
| with was that industrial languages are a poor choice for learning
| programming. Think about how you learn math. No one drops all of
| arithmetic on you all at once. You learn one thing at a time. You
| learn addition first. Then you learn subtraction. You don't talk
| about negative numbers until you've mastered positive numbers.
| You need to build up mathematical knowledge piece by piece, layer
| by layer. Mathematicians are just people who are further along
| than others in some respect.
|
| Now, some will say that all you need to do is walk through each
| basic construct in the language to build up understanding. There
| are two problems with this approach.
|
| First, this misses the point of programming. The point of
| programming is to solve problems, not learn language features.
| Language features are instruments for solving problems and
| expressing their solutions. They're also a notion to help you
| reason about them.
|
| Second, a full-fledged language will produce inscrutable error
| messages that will confuse the student. It prematurely drags in
| concepts that the student is not ready for.
|
| So the HtDP curriculum works with a hierarchy of student
| languages that give the student the freedom to explore and
| experiment within a space that is well-defined, well-understood,
| confined, and comprehensible according to their readiness. Over
| time, the language of discourse is expanded.
|
| English keywords are not the stumbling block. Plenty of young
| people pick up programming languages without knowing English.
| What poses the greatest difficulty from the perspective of the
| language is having access to the full language all at once. Also,
| never talk about the computer. Computers are to programmers what
| telescopes are to astronomers, to borrow from Dijkstra. In the
| HtDP curriculum, they ban students from talking about the
| computer, instead preferring "the compiler" or "the interpreter"
| or whatever. Implementation concerns are dealt with in later
| courses, because while practically useful, they are incidental to
| the basic act of programming.
| m0llusk wrote:
| Experimented with something like this for a while. Translate a
| kind of plain language into Javascript. Once that is done then
| alternative languages can be used, translated into the plain
| language, then into Javascript. The problem I came into when
| trying to build even a small web application this way was all the
| common interfaces such as built into Node. Translating the
| language is a solid start, but real world usage means translating
| or at least accessing all the terminology and data types and
| interfaces for whatever stack is being used.
___________________________________________________________________
(page generated 2025-01-27 23:01 UTC)