[HN Gopher] Easylang - An easy online programming language and d...
       ___________________________________________________________________
        
       Easylang - An easy online programming language and development
       environment
        
       Author : thunderbong
       Score  : 89 points
       Date   : 2021-11-14 16:21 UTC (6 hours ago)
        
 (HTM) web link (easylang.online)
 (TXT) w3m dump (easylang.online)
        
       | dang wrote:
       | Recent and related:
       | 
       |  _Monte Carlo Methods or Why It 's a Bad Idea to Go to the
       | Casino_ - https://news.ycombinator.com/item?id=29217539 - Nov
       | 2021 (56 comments)
        
       | z3t4 wrote:
       | How do you distribute programs ? For web the program could get
       | it's own web URL or let you download a .htm file.
       | 
       | What are the dependencies to run a compiled program on Windows
       | and Linux ?
        
         | chkas wrote:
         | You can make web apps, for that you need a web space. Or you
         | can install the programs locally in the web browser storage
         | with the code runner - that's a PWA (progressive web app).
        
       | abraxas wrote:
       | This is quite nice indeed. Personally I'm fond of the Colour
       | Maximite II as a teaching tool but this is nice as it requires no
       | additional hardware.
        
       | lifthrasiir wrote:
       | I like that strings and arrays (not their individual elements)
       | are marked with `[]` and `$`, just like BASIC. Beginners tend to
       | have a shorter attention span and can't easily reason that some
       | names defined earlier are arrays or strings, so that would be
       | easier to understand for them as long as you disallow names that
       | only differ by those markers (and give a helpful error message,
       | for now Easylang doesn't seem to do that though).
        
         | chkas wrote:
         | This is because numbers are automatically converted to strings.
         | This makes many things easier.
        
       | icedata wrote:
       | Reminds me of Logo as well (I worked for the top producer of Logo
       | implementations). Would be interesting to read some comment on
       | its lineage from the designers.
        
         | ModernMech wrote:
         | This is the author: https://news.ycombinator.com/user?id=chkas
         | 
         | They've posted about Easy lang a lot here, you can read through
         | their history to learn more. That it reminds you of Logo is no
         | accident!
        
         | chkas wrote:
         | That's me.
         | 
         | I am a computer science teacher and have developed a teaching
         | and learning programming language with an easy-to-use browser
         | IDE. There are several tutorials integrated - from a
         | programming course for beginners to recursive programming.
         | 
         | The programming language and IDE run entirely in the browser,
         | there is no communication with the server after the web page is
         | loaded. Since it is designed as a PWA, it also works offline.
         | 
         | This language has a very simple structure: There are numbers
         | and strings as data types, arrays of these data types, and
         | arrays of arrays. Unlike Python, it is statically typed and has
         | explicit end-of-block delimiters.
         | 
         | Since the language is kept very compact, it suits beginners on
         | the one hand, and the browser environment on the other. The
         | environment loads quite fast, and the IDE is also able to parse
         | and format the code up to the current line on every "enter".
         | The language is written in C and runs using WebAssembly.
         | JavaScript is used for the graphical user interface and
         | graphical output.
        
       | ModernMech wrote:
       | Easy lang comes up on HN every so often. I really wish it were
       | open source, I feel like it would get more traction.
        
         | chkas wrote:
         | It is open source.
         | 
         | https://github.com/chkas/easylang
        
           | ModernMech wrote:
           | Oh glorious day! Thank you! What caused you to finally make
           | the jump?
        
             | chkas wrote:
             | I also felt that it would get more traction :-)
        
       | pjfin123 wrote:
       | What do you think the the future of learning to program is?
       | Something like this or repl.it for beginners to not have to
       | understand the environment?
        
         | karmakaze wrote:
         | So many things that go from initial concept, to full
         | implementation, then thinned out, and back to a full
         | implementation in a new technology. A good example is from
         | centralized mainframes and terminals, to desktop computers,
         | then client-server, then thin client, rich client, and finally
         | rich client in a web browser with centralized app hosting on a
         | cloud server.
         | 
         | The future of programming environments could be the 'browser',
         | not as in web, but the Smalltalk kind. There wasn't concepts of
         | source files, and edit/compile/run weren't so distinct.
         | Producing 'an executable' was merely saving the environment
         | state. A platform that could work like that adding recent
         | advancements like versioning and remote collaboration could be
         | powerful and easy to use. Deployment could also be a very not-
         | so-different thing than saying run that image on up-to-N
         | concurrent hosts configuration.
         | 
         | One thing that I'd like to see attempted differently is
         | removing the 'procedural' style so prevalent that it's barely
         | even noticed as a choice. Immutable datastructures makes lots
         | of things simpler. Not rebinding values to named 'variables'
         | can also eliminate classes of bugs and sources of confusion.
         | This can be done badly as in XSLT where you end up using
         | recursion for the simplest things. There can also be better
         | ways like the functional style that's gaining some adoption,
         | e.g. map, filter, take_while, drop_while. Basically changing
         | our thoughts into starting values, ending values, and
         | transformation expressions in a declarative style, rather than
         | the nitty gritty of pretending to be a CPU combining registers,
         | loops, conditions etc.
        
           | galaxyLogic wrote:
           | I used to program in Smalltalk and as it faded from
           | popularity I wondered why. It seemed so much better in many
           | ways.
           | 
           | Now I think the problem with the image-based programming is
           | that while it is easy for a single programmer it makes
           | collaboration more difficult. Why? Because it is very
           | difficult or impossible to "merge" two or more images.
           | 
           | My changes might work when added to a default virgin image,
           | but there is no such thing as virgin default image when every
           | Smalltalk provider has their own and multiple versions of
           | them. Any image is as good as any other.
           | 
           | The ability to change anything in the image really means the
           | ability to depend on any fact about the current image. If you
           | apply your changes in an environment/image where any one of
           | those facts no longer holds you will get unpredictable
           | results.
        
       | indymike wrote:
       | This is like a simplified BASIC in a jupyter style format. Fun,
       | and worth working on.
        
         | qnsi wrote:
         | it reminds me of LOGO. Not sure if people are still learning
         | it, but I learned it in school in 2000's and it got me hooked
         | on programming
        
           | empressplay wrote:
           | They are :) It's not as huge as Scratch is but our Logo
           | interpreter gets a reasonable amount of traffic, enough to
           | make it worthwhile to develop, anyway
        
           | ochrist wrote:
           | There's also this for the BBC MicroBit:
           | https://makecode.microbit.org/
        
             | mmoskal wrote:
             | I'm one of original devs of the above.
             | 
             | I guess the main difference between MakeCode and most other
             | kids learning environments is that it starts with a real
             | language (TypeScript) and then exposes a subset of it
             | through graphical blockly interface (while allowing usage
             | of both). Having a real language makes it easier for more
             | advanced users to create libraries, which can be exposed
             | (as blocks which map 1:1 to functions) to less advanced
             | ones. It also doesn't place an artificial ceiling on user's
             | abilities.
             | 
             | The library approach in micro:bit is mostly used for
             | interfacing external hardware, but in
             | https://arcade.makecode.com/ it allows for the entire 8-bit
             | game engine to be implemented in-system.
        
           | tingletech wrote:
           | I learned logo in school in the late 70s. It was on the
           | computer apple had given to our school.
        
             | allcentury wrote:
             | Where was this?
        
           | gfodor wrote:
           | Ironically just this week, I put my four year old in front of
           | an apple 2 emulator running apple logo, and he was far more
           | engaged and interested than any of the modern "kids learn to
           | code" toys of today.
           | 
           | Even the "updated" logos I found sucked because they throw
           | you into a notebook not a repl. For young kids, a repl is way
           | less overwhelming and confusing, because you're "talking to
           | the turtle." Even the error messages are better: "I don't
           | know how to X." The kid loved seeing the turtle talk back.
           | These notebook oriented ones kind of lost the original thesis
           | of logo form Paepert.
        
             | empressplay wrote:
             | If you might be more interested in a modernized version of
             | Apple Logo, you should check out https://turtlespaces.org
             | -- I too grew up with Apple Logo and thought it would be
             | great to create a 3D version of it. It has a REPL just like
             | the original, and the 'I don't know how to...' error
             | messages too!
        
       | fouc wrote:
       | From the name I was expecting a readable lang, perhaps drawing
       | inspiration from ruby.
       | 
       | The only thing that makes this an easy lang is apparently based
       | on the Dennis M. Ritchie quote at the top of the documentation -
       | "A language that doesn't have everything is actually easier to
       | program in than some that do"
        
       | shoto_io wrote:
       | Great and fun tool! I'm going to feature it in our morning issue
       | at www.shoto.io
        
       | spicybright wrote:
       | Eh. I don't like the terminology of "installing" programs into
       | the runner. Having to explain what a VM is with programs to run
       | in it before you even start coding is what turns beginners off
       | from learning.
        
         | chkas wrote:
         | You don't need the "Code runner" to code. The Web IDE is enough
         | for that. With the "Code runner", which is a PWA, you can save
         | programs locally and run them offline.
        
           | spicybright wrote:
           | Well I need to install code to run the examples though. IMO
           | you need to see and run example code to copy from in order to
           | learn.
        
         | [deleted]
        
       ___________________________________________________________________
       (page generated 2021-11-14 23:00 UTC)