[HN Gopher] Show HN: Easylang - A browser-based first programmin...
       ___________________________________________________________________
        
       Show HN: Easylang - A browser-based first programming language
        
       Hi. I made Easylang to help beginners get started with programming.
       It is open source.  https://github.com/chkas/easylang  Why I think
       Easylang is for beginners better than Python.
       https://easylang.online/blog/easyl_pyth.html  UPDATE: The posted
       link goes directly to the beginner tutorial. This is the start page
       of the IDE.  https://easylang.online/ide/
        
       Author : chkas
       Score  : 113 points
       Date   : 2022-11-19 14:27 UTC (8 hours ago)
        
 (HTM) web link (easylang.online)
 (TXT) w3m dump (easylang.online)
        
       | [deleted]
        
       | 29athrowaway wrote:
       | You need to provide one brief tutorial at a time, otherwise it is
       | overwhelming for learners.
        
       | vetelko wrote:
       | No parens, brackets, etc... Thank you :)
        
         | chrischattin wrote:
         | You'd like Ruby :)
        
           | vetelko wrote:
           | Nope, love LISP:)
        
       | [deleted]
        
       | bmitc wrote:
       | You might be interested in Pyret, if only because the stated
       | goals are similar.
       | 
       | https://www.pyret.org/
        
         | [deleted]
        
       | pipeline_peak wrote:
       | Static typing can't be easy for beginners when they're expected
       | to cast a string to a number without variables having data type
       | keywords. Type inference is often an example of abstraction
       | confusing users with what's really going on...
       | 
       | If facility is your concern, you should go for dynamic typing
       | where assigning a string with a number gets converted
       | automatically. No kid should have to deal with that. Give them
       | the full amount of abstraction, it's the runtimes responsibility.
       | 
       | Otherwise, you brought up some good points, Python and JS really
       | aren't as kid friendly as we think.
        
         | empressplay wrote:
         | As much as I love BASIC from a nostalgia standpoint, Logo is
         | still better -- Scratch is basically blocks-based Logo, and so
         | Logo makes more sense as a first text-based language.
         | 
         | There's plenty of Logos out there at varying degrees of
         | complexity as well: Lynx, Terrapin, turtleSpaces etc.
         | 
         | And they don't have static typing!
        
       | ZeroGravitas wrote:
       | This reminded me a little of Hedy language:
       | 
       | https://www.hedycode.com/
       | 
       | It starts off super simple, like:
       | 
       | print something
       | 
       | and then introduces all the fiddly concepts like quoting,
       | escaping etc. 1 by 1 until it turns into python.
       | 
       | The designer had a neat talk about it at the strange loop
       | conference.
       | 
       | One of the themes they talk about is the difference between "easy
       | to learn" and "easy to teach" which I found insightful.
       | 
       | https://www.thestrangeloop.com/2022/hedy-a-gradual-programmi...
       | 
       | https://www.youtube.com/watch?v=fmF7HpU_-9k
        
         | chkas wrote:
         | This does not turn into Python.
        
           | 0x6c6f6c wrote:
           | They were talking about Hedylang
        
             | chkas wrote:
             | I was referring to "This reminded me a little of Hedy
             | language".
        
         | [deleted]
        
       | indymike wrote:
       | This feels a lot like a BASIC and logo had a child and that is
       | not a bad thing. Love the easy graphics, simple syntax, and
       | removing all the punctuation.
       | 
       | Love the a = number input typecast.
       | 
       | End will be a source of bugs. Use endfor endelse endif endwhile.
       | This helps new programmers track nested loops and logic. Yes, end
       | is simple, but end applies to many things, and will end in a
       | pattern where people will start doing this to sort it out:
       | 
       | end # while
       | 
       | Also, inline comments should be ok. Then you get end # while
       | instead of the above two liner.
       | 
       | Honestly, this is a nice little language.
        
         | [deleted]
        
       | dang wrote:
       | Related:
       | 
       |  _Show HN: Particles - the URL contains the whole program code_ -
       | https://news.ycombinator.com/item?id=31883209 - June 2022 (21
       | comments)
       | 
       |  _Show HN: Learn Basics of Programming in 40 Minutes_ -
       | https://news.ycombinator.com/item?id=30136967 - Jan 2022 (3
       | comments)
       | 
       |  _Easylang - An easy online programming language and development
       | environment_ - https://news.ycombinator.com/item?id=29218101 -
       | Nov 2021 (36 comments)
       | 
       |  _Monte Carlo Methods or Why It 's a Bad Idea to Go to the
       | Casino_ - https://news.ycombinator.com/item?id=29217539 - Nov
       | 2021 (70 comments)
       | 
       |  _Show HN: An Easy Programming Language That Runs in the Browser
       | via WebAssembly_ - https://news.ycombinator.com/item?id=28863847
       | - Oct 2021 (9 comments)
       | 
       |  _Blackjack Probabilities, Card Counting - Calculation and
       | Simulation_ - https://news.ycombinator.com/item?id=28025561 - Aug
       | 2021 (23 comments)
       | 
       |  _Show HN: Learn the Basics of Programming in 20 Minutes_ -
       | https://news.ycombinator.com/item?id=27245000 - May 2021 (5
       | comments)
       | 
       |  _Show HN: A programming language and framework for writing small
       | canvas web apps_ - https://news.ycombinator.com/item?id=26779898
       | - April 2021 (2 comments)
       | 
       |  _Show HN: A modern BASIC-like teaching and learning programming
       | language_ - https://news.ycombinator.com/item?id=22841336 - April
       | 2020 (48 comments)
       | 
       |  _Show HN: The program code is in the URL_ -
       | https://news.ycombinator.com/item?id=22266563 - Feb 2020 (5
       | comments)
       | 
       |  _Show HN: A Basic-Like Programming Language That Runs in the
       | Browser_ - https://news.ycombinator.com/item?id=21178687 - Oct
       | 2019 (6 comments)
       | 
       |  _Show HN: A small programming course for everyone_ -
       | https://news.ycombinator.com/item?id=20982002 - Sept 2019 (12
       | comments)
       | 
       |  _Show HN: A few simple games not only for kids_ -
       | https://news.ycombinator.com/item?id=20745142 - Aug 2019 (28
       | comments)
       | 
       |  _Monte Carlo methods - Why it 's a bad idea to go to the casino_
       | - https://news.ycombinator.com/item?id=20359100 - July 2019 (161
       | comments)
        
       | thesuperbigfrog wrote:
       | Reminds me of Logo:
       | https://en.wikipedia.org/wiki/Logo_(programming_language)
       | 
       | Python has a Logo-ish mode called turtle graphics:
       | 
       | https://docs.python.org/3/library/turtle.html
        
         | [deleted]
        
       | anfelor wrote:
       | The best attempt at creating a learnable programming language
       | I've seen is this design document by Bret Victor:
       | http://worrydream.com/#!/LearnableProgramming
       | 
       | It is now ten years old but I don't know if it has even been put
       | into practice? To be fair, it would be a lot of work to include
       | all the IDE features and Easylang comes reasonably close to it
       | already. However, if I could recommend one paragraph it is the
       | one on "Recomposition", which is an extremely clear explanation
       | of why functional programming matters for learnable programming.
        
         | [deleted]
        
         | empressplay wrote:
         | Every so often I re-read Bret's post to see what I can add to
         | our learning environment. We use CodeMirror as our editor so we
         | have pop-over help, color syntax highlighting and an optional
         | autocomplete (optional because feedback from teachers was that
         | it was too distracting).
         | 
         | We have a 'fluid' turtle that allows for the learner to follow
         | execution to a point, although we do need to add in the ability
         | to see which line of code is being executed at any given time,
         | and the ability to control the execution speed better, maybe
         | with a slider.
         | 
         | We're currently implementing (based on teacher feedback) a
         | series of graduated environments where each 'level' unlocks
         | more IDE features and primitives. For example, this is
         | 'artSpace', a 2D environment (we also have a 3D environment):
         | 
         | https://turtlespaces.org/weblogo/?profile=artspace (warning,
         | 40mb load)
        
       | sbergot wrote:
       | Couple observations:
       | 
       | - you should have a code snippet on your landing page
       | 
       | - in your python comparison it is unclear why easylang decides
       | that a is a number.
        
         | chkas wrote:
         | It is similar to the way it used to be in BASIC. a is a number,
         | a$ is a string, a[] is an array.
        
           | u801e wrote:
           | Also similar to perl since $ and [] are essentially sigils.
        
           | johnisgood wrote:
           | That does not make it easier though... you explained just
           | now, and I understood, but where am I to pull it out of
           | (because it is not intuitive at all) if not documentation?
           | Just like with any other languages... Similarly, they will
           | run into languages where arrays begin with 0. Beginners
           | should be taught how to think about it and such, not shove it
           | under the rug. Who is your target audience?
        
             | Jtsummers wrote:
             | > where am I to pull it out of (because it is not intuitive
             | at all) if not documentation?
             | 
             | It is in the documentation. Quoting from the documentation:
             | 
             | > String variables end with the $ character.
             | 
             | The principal problem though is that you're dropped into
             | the first of 4 tutorial/documentation pages, and have to
             | hit "back" (which is unintuitive since I didn't get there
             | from anywhere else on the site) to see the list of
             | tutorials and documentation pages.
        
               | johnisgood wrote:
               | I did not mean to say that it is not in the
               | documentation... What I am saying is that it is not
               | intuitive at all, and it has to be documented for anyone,
               | not just for "beginners to programming" to know. The
               | reason I am saying this is that "counter-intuitive" and
               | "not intuitive" is often mentioned as a reason for the
               | language being more beginner-friendly.
        
               | Jtsummers wrote:
               | To be fair, most of programming is not intuitive.
               | i = 20       # ... some lines later (not modifying i)
               | for i in range(10): # non-intuitive for many - range goes
               | from 0 to 9         print(i)       # ... some lines later
               | (not modifying i)       print(i) # what value should be
               | printed here?
               | 
               | Or a subtle (and hard to spot when not isolated like
               | this) one character difference creating a behavior
               | change:                 i := 20       for i := 0; i < 10;
               | i++ {         fmt.Println(i)       }       fmt.Println(i)
               | i := 20       for i = 0; i < 10; i++ {
               | fmt.Println(i)       }       fmt.Println(i)
               | 
               | And that's with a primitive part of programming. There is
               | no language whose behavior can be fully intuited by all
               | people, beginner or not. Some things will have to be
               | taught or read through documentation and examples.
        
               | chkas wrote:
               | Yes. I should have posted this link.
               | 
               | https://easylang.online/ide/
        
             | chkas wrote:
             | > Who is your target audience?
             | 
             | Beginners
             | 
             | There are tutorials integrated in the IDE, among others one
             | for beginners. The examples are the documentation.
        
       | geenat wrote:
       | Similar but used in production by a lot of htmx people:
       | https://hyperscript.org/
        
         | [deleted]
        
       | azhenley wrote:
       | It looks like a BASIC. Are there any benefits over other
       | educational/games-oriented BASICs?
       | 
       | How does it compare to educational languages, like Hedy?
       | 
       | https://www.hedycode.com
        
         | [deleted]
        
       | pacifika wrote:
       | This is great and thank you for making programming more
       | approachable!
       | 
       | I think some of the numbers would benefit from units. For example
       | colours, size, coordinates etc can all be represented by the
       | number 444.
       | 
       | Therefore `circle 444` could mean a large circle a grey circle, a
       | centred circle.
       | 
       | I had to read the example before I understood the code there is
       | all.
       | 
       | Perhaps a prefix x444, y444, c444, w444 would help?
        
         | shhsshs wrote:
         | I agree, though you can make this argument for any other
         | programming language.                   circle 444         or
         | circle(444)
         | 
         | Named parameters are sometimes nice.                   circle
         | r=444         or         circle(r=444)
        
       | velcrovan wrote:
       | Pyret (https://www.pyret.org) is already filling this role very
       | nicely (browser-based Python-like for use in teaching), and has
       | the advantage of having been designed by people whose careers are
       | devoted to the study of programming pedagogy. It's the language
       | used in the front half of Data-centric Introduction to Computing,
       | which is available online for free (https://dcic-
       | world.org/2022-08-28/index.html). The second half of the book
       | transitions to Python, at which point the reader/student is well-
       | prepared to understand aspects of Python that can be tricky for
       | first-time programmers.
        
         | [deleted]
        
       | pmarreck wrote:
        
         | [deleted]
        
         | pvg wrote:
         | _Please don 't post shallow dismissals, especially of other
         | people's work._
         | 
         | https://news.ycombinator.com/newsguidelines.html
        
           | pmarreck wrote:
           | I shallowly dismissed Python, not their work. So this does
           | not apply.
        
             | pvg wrote:
             | Your original comment was just
             | 
             |  _Python is terrible, so it 's not hard to be "easier" than
             | it._
             | 
             | Which is a shallow dismissal of both things. Plus all
             | shallow dismissals are HN-lame so it very much applies.
             | They are just extra lame when about someone else's work and
             | triple lame when it's in a Show HN.
        
       ___________________________________________________________________
       (page generated 2022-11-19 23:00 UTC)