Threads for chkas

    1. 3

      I’d be curious to hear your experiences of trying this with non programmers! In my personal experience, it’s really hard for reasons that we don’t at all expect.

      1. 1

        We have had good experiences with about 13-year-old programming beginners.

        Maybe a non-programmer will read this and can try a few examples and then answer your question. That would be neat and interesting.

    2. 2

      No it’s not and I really hate the kind of articles which promise unicorns, rainbows and a good salary by deceiving poor souls who then tries to take this route and fail miserably.

      I teached complete beginners, but even a concept of a loop is not something easy to grasp for them.

      There is nothing wrong with teaching simple concepts for beginners and trying to encourage more people to TRY this profession, but all of them should come with full disclosure that you will not be a programmer overnight and it will be fucking hard and it is definitely not for everyone.

      1. 8

        It is not claimed that it is easy to become a (good) professional programmer. It is only about lowering the unnecessarily high entry threshold to programming. In some countries, programming is already taught to all children in secondary school, just like mathematics, and not all of them become programmers.

        1. 3

          I didn’t write the comment you’re replying to, but in my experience it’s not even easy to be a (bad) programmer. Easy lang provides easy syntax if you: kinda already understand programming syntax, and speak English.

          People who program a lot forget that text as a language syntax is very foreign for most people. Even the easiest language is still a language and takes time to learn. Like maybe Esperanto is the theoretically easiest language to speak (hypothetically) it’s still takes a long time for someone to learn it.

          I teach 3rd 4th and 5th graders and we are trying out HedyCode after 3/4 of the year on block based code.org. Even though the syntax is “easy” it’s still hard to learn for a million other reasons.

          Love all efforts to make programming more accessible, but I agree there’s a difficulty that those who know forget quickly and those who are learning struggle to overcome.

          1. 1

            In most countries English is taught in school. And if not, children have quickly grasped the few key words (if, else, while, print, …), so you don’t need to know English.

            Hedy is fine - conceptually like Easylang. In Hedy the keywords are in the local language - which doesn’t make programming easier in my opinion. I also think 8 to 10 years old is a bit too young for a text-based language. We have had good experiences with about 13 year olds learning to program with Easylang.

            1. 1

              Thanks for all the replies btw. This is super interesting.

              so you don’t need to know English.

              My comment wasn’t a criticism of the use of English keywords. Just an example of hidden requirements/assumptions.

              Several of my students already learned Python on their own and Hedy is too easy for them.

              For text based langs I would say base skills needed: spell and read well and are comfortable typing. My kids are pretty much there. Of course more math and logic help as well as ability for sustained attention. We ran through the whole code.org curriculum for the year and wanted to push the older kids a bit.

              The main goal for now is really exposure rather than mastery for now.

              Im curious about what your backstory is. It sounds like you’ve tot access to kids all around the world.

              1. 2

                what your backstory is

                I only conclude from the situation here (a province in Austria) to the whole world … I teach programming to young people, and since recently also to adults who then teach children.

            2. 1

              I learned BBC BASIC aged 7. It and Logo were taught in school. I think basically everyone in my class was able to write simple programs in both languages, the split was between the few that enjoyed it and those that didn’t.

              I’ve taught programming at levels ranging from small children up to adults over the years and text has never been the obstacle (graphical languages have been in some cases because they were not perceived as ‘real’ and it was hard to motivate people to learn transferable skills from these things rather than the skills that they could actually use).

              The things that cause problems are generally related to the difference between a variable and an object: aliasing and variable reuse are the biggest conceptual jumps that people need to make because most of the time their brains make shortcuts treating a person or thing and a proper noun as interchangeable. I didn’t really understand why this was hard until I was on a panel for the Psychology of Programming SIG and someone in the audience pointed out that it took philosophers over a thousand years to come up with a framework for reasoning about this distinction.

              The other problem, which things like Logo are really good at and Smalltalk is even better, is that everything in the computer is abstract. You create some data structure, but the thing that you see is a description of a single object, not an object graph. The Smalltalk inspector view is great for this because you can go and introspect everything.

              1. 1

                The things that cause problems are generally related to the difference between a variable and an object

                In my opinion, this is also a reason why many beginners have such difficulties with modern programming languages. In BASIC there were variables that could only contain numbers or strings. (if this is what you meant)

                1. 1

                  BASIC didn’t introduce anything like a pointer early on, or reentrancy. This meant that you had a 1:1 mapping between variable names and objects. You could declare arrays with dim, but you needed array + index to access an element so even if you had two indexes that referred to the same element, they weren’t confusing.

        2. 3

          Another thought building off my last comment. With HedyCode syntax is minimal like easy lang, but that also means that tool support is minimal as well. With less syntax it’s harder to determine true programmer intent in cases of syntax errors or unintended code. Bash has very minimal syntax and it’s quite easy to make a mistake using a bareword when you meant a variable or vise versa.

          For example https://github.com/hedyorg/hedy/issues/3967

          If the syntax were “harder”, say by requiring semi-colons, then the error could be more precise.

          It’s a non-intuitive trade off (for me) and one that makes the “easyness” of a language go way beyond having a simple syntax. Even shorter: simple != easy.

          1. 2

            Easylang has a very strict IDE editor. Every time the Enter key is pressed, all code up to the current line is parsed and formatted correctly. If something is missing or wrong in a line, it is immediately shown to the user with a red error message at the error position.

            https://easylang.online/ide/

    3. 2

      Can you give a compare and contrast with Pyret? I fancy that one for teaching and have had good experiences with it.

      1. 1

        A good introductory language makes good compromises … between simplicity and feature-richness. (pyret.org)

        I don’t know Pyret, but it looks more feature-rich.

    4. 2

      Can you help me understand why you felt creating a language that’s not quite entirely like but measurably different from every existing programming language was a desirable thing to use as a teaching tool?

      Why not just use an existing language so folks could transfer the skills verbatim and not have to learn yet more confusing syntax?

      1. 3

        The question is what existing language? Maybe Python, which is pretty much different from other languages in all respects? The point is, you learn programming and programming concepts and not a programming language. The chance that you will later use the programming language in the job that you have learned is low anyway. I learned programming with BASIC, Pascal and PL1.

        1. 1

          I disagree. Plenty of people have learned to program with Python and then gotten a job programming in it. Same with Ruby etc.

          Anyway, it’s your bat and ball so you can do whatever you want, I was just trying to understand the logic.

      2. 2

        Not the author, but: It looks like a personal project, for fun. I’d like to do similarly myself - but I wouldn’t enjoy enhancing some other, similar, project, quite so much.

        There is a lot more energy required, and smaller sized rewards, in helping with larger, more complex projects where there is already a lot built.

    5. 1

      Is the compiler open source? I don’t find any links to source code on the website or about page.

      1. 1

        Not yet - I intend it if it reaches a certain spread - I do not want someone to change that a little and then claim it as his work.

    6. 3

      I wanted to learn about the language itself, raisons d’etre, etc. However, after like 7+ clicks, I couldn’t find anything longer than 1 or 2 sentences. Is there a URL you could share?

      1. 3

        I wanted something that would be as simple and uncomplicated as the BASIC on home computers used to be. And for what you don’t need extensive documentation, just switch it on and get started.

        The language itself is written in C and runs in the browser via WebAssembly. The graphic interface and the IDE is of course JavaScript.

        https://easylang.online/

        https://easylang.online/apps/easylang.html

        The example programs in the tutorials are the documentation.

        1. 3

          I wanted something that would be as simple and uncomplicated as the BASIC on home computers used to be. And for what you don’t need extensive documentation, just switch it on and get started.

          Except that actually DOING that was a nightmare and people gobbled up any documentation they could find at the time and had to learn the languages in question from reading magazines like Creative Computing and the like.

          Again your bat and ball but this is not an aspect of the early micro experience I would personally choose to emulate.

      2. 1

        It doesn’t have that.

    7. 5

      Nice work! The drawing tools are a lot of fun. One of the neat things about BASIC in the 1980s is that it was integrated into other topics. For example, many primary school math textbooks included optional BASIC snippets. I wonder if you might reach out to teacherse or find some existing curriculum that could be augmented with example programs in easylang.

      1. 3

        if you might reach out to teachers or find some existing curriculum that could be augmented with example programs in easylang

        Yes, that would be helpful for understanding mathematics or physics. For example, you can explain the accelerated movement with a bouncing ball.

        Anyone can use easylang.online for whatever. It can be used and copied for free.

    8. 14

      I don’t like the name. How about “Beginner’s All-purpose Symbolic Instruction Code”?

      1. 3

        This language is similar to BASIC and has many features of it, but also many differences. And I like BASIC.

        1. 2

          Please, elaborate on the differences.

          1. 8

            Arrays have square brackets and start at 0, no GOTOs, blocks end with “end” or with a dot. Variables are integers by default. Functions work differently …

            There is the Python-like “for range”, which fits better to 0-based arrays. The syntax is generally shorter.

      2. 0

        Clearly since you don’t like the name the author should change it!

        1. 6

          Clearly convincing the author to change the name wasn’t my intention. Maybe you didn’t get it, the OP did.