[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)