Show HN: An Easy Programming Language – Built with WebAssembly
easyprog.online
easyprog.online
One of the things I really liked about coding in Lingo (in Director [1]) was the sparse syntax but the code auto-highlighted as you typed. (not common back then) But also auto indented as you typed. It was really easy and fast to program with.
The graphics code reminded me of "hi-res" graphics programming on the Apple computer. Some nostalgia there.
This brings me around to how magical it felt to program things for the first time as a kid, and how there doesn't seem to be an environment for this kind of excitement or discovery anymore.
Maybe just a change of times, like how the first planes and auto-mobiles were created by hobbyists, but those times are mostly gone.
Any notion on what a language like this would be good for? I get the impression maybe similar to my own nostalgia...
[0] https://en.wikipedia.org/wiki/Lingo_(programming_language)
So yes, making an early computer play a simple melody was magical.
1. Turn on the TV and the computer.
2. Welcome to BASIC.
3. Code.
No editor to fire up - just instantly available.My daughters are learning VB.NET at school here in the UK, using Visual Studio for Mac and more recently Windows Visual Studio on a laptop. My eldest is setting break points, inspecting variables, etc like a pro. She loves it. They both started learning with Scratch. Plus there are a slew of virtual consoles out there very much like the home computers of old except faster and far more convenient, plus very affordable kits such as Raspberry Pi. It's never been better.
You have to go downtown, fetch some libraries, visit their documentation stores, check facebook, take a look at your stackoverflow pending events, polish your IDE to work with whatever you've just downloaded, copy-paste some code, refurniture until it works, then refactor until you are satisfied. Repeat forever.
Before, all my turbo pascal adventures were solo missions. Batteries were included. I did not leave the IDE and did not need another book. I did not download additional manuals. It was all there.
I also agree that I don't know which took I would point out to a kid wanting to start today, that would not involve a probably complicated setup.
That being said, I also remember being pretty frustrated that the best I was able to do - lacking resources, books, Internet, etc... - was put a couple of pixels around, and pretend it was a game (and be ashamed of it, even if it was in 1993 or something.)
A kid starting Unity3D today, on the other hand, would probably, (after a few hours lost installing stuff), create a decent-looking game in a few weeks of following Youtube tutorials and stealing art assets all over the internet.
Or is it not even possible ?
Anyway, my questions would be: what kind missions where you doing, entirely solo ?
Do you think the language itself had anything to do with the ease of starting ?
Do you think it would be satisfying to someone to start with something that lets them draw stuff, bounce a ball, etc... in a "limited" language, in a "fake" environment, before diving into the "hard" part, trying to do it by hand, etc...
Never thought I was doing something silly peek/poke'ing memory and using data segments to represent sprites on screen. I was adding numbers to represent pixels on a 16 bit row as soon as I learned how addition worked at school.
Later on, I was using sin/cos to represent motion as soon as I learned how trigonometry worked at school. Along with some bresenham algorithms book I found at a university to draw lines and circles more correctly and effectively.
Some time later, I was visualizing prime numbers and geometric primitives in ways I could only imagine.
Later, I was using derivatives to represent optimal solutions to targeting problems as soon as I learned how differential equations worked.
Later, I was using field equations to represent gravitational pull in n-body simulations as soon as I learned about them.
Then things became more abstract, like visualizing finite automata and abstracting logic circuits.
Until that time, I did not need to leave the editor or download someone's libraries. It was all there. My age of discovery was a continuous experience that spanned over 10-13 years and defined my abilities as a programmer today.
I was never ashamed of "putting two pixels together" or envious of kids that "could make a game in two weeks using stolen assets and unity" - a program that places sprites on screen using easing algorithms and accelerated graphics. More power to them.
type:
console.log ("hello world")
pretty simple
When I was a kid (1984) - it was "plug the computer into the TV, turn it on, start coding (in BASIC)"
Today - a kid would have to first:
1. Start up computer, wait for it to boot (or tablet, whatever)
2. Log in (maybe)
3. Start up browser.
4. ???
That's where they would be - they'd have no concept of "dev tools" or what it is for. Long before then, they'd be sucked into some other time waster most likely. It would take an adult to show them what and where dev tools was, and then it's a long hard slog from that point.Back in 1984 - it really was much simpler. Ok - well, from zero you'd have to read the manual that came with the computer, but most of the manuals jumped right into coding in BASIC, and could get you going quickly.
Then there was the plethora of computer programming magazines that you could purchase:
https://archive.org/details/computermagazines
...and today, most of them available; oh if we only had that resource back then!
But we did have a lot - plus books, BBS's (for the lucky with a modem and phone), user groups...
Today, it is nowhere near as easy to start out - not for someone with -zero- knowledge. However, if they can get over that hump - then a grand world can open for them, with the right mentoring...
If you say the main problem for kids is to use a browser on a computer in the first place, than I really doubt those kids could just start coding in basic on a computer in 1984.
And since most do use chrome, or are able to download it - and are also able to press F12 (most kids I told this, could) ... they could immediately start digging into the code of any website. Just changing colors of elements, rearranging ... and then finding out how to do the same with code.
Also, there is Scratch, Lego Mindstorms, etc. etc. the barriers have never been lower. The only problem might be, that it is too much choice and easy to get lost and loose interest, but any dedicated kid can jump into it.
Today? You may get a manual describing the computer, but that's it---how to set it up and turn it on (if that). The software comes preinstalled and if you want manuals, it's off to the Internet (either Google or Amazon).
I've been using Firefox since the days of Mozilla, and I didn't even know about F12 (then again, I haven't done any serious web development since 1999 so perhaps it's not surprising).
It is true that people don't generally ship code written in devtools, but then most of the programs shipped on the Commodore 64 were not written in basic. (Unless you count hundreds of peeks and pokes as basic.)
I do miss the immediacy of the programming experience, but I also think the correct modern day analog of that is the browser.
The browser is exactly what I had in mind when I said "you have to learn a stack of languages". Sure, okay, console.log() gets you "hello world", but so does "echo" so maybe I placed the bar too low. Still, getting into the modern web experience requires you to learn HTML + CSS + Javascript and how they relate and interop.
Fast forward a little bit from the BASIC days to Visual Basic. Back then you could write a desktop application with a GUI, controls, a window, and needed one language and one environment. I don't see how the browser world is easier or more approachable than that.
We've built an explicitly Visual Basic-like programming environment for the web - it's got one language (Python), drag'n'drop design, built in database, actual working autocompletion - the works: https://anvil.works.
Would love to hear what you think!
Also, if you want, you can write GUI in the browser without html/css, with the canvas element. There are frameworks for that, not sure how mature they are, though.
No you didn't, it was built into the VB editor; you just dragged and dropped elements into a window frame, then edited callback functions. You didn't have to leave VB at all or learn any other language or framework.
In 3rd grade I had a logo class, but I didn't get it right away because I didn't have logo at home. When I learned the "break" command from a friend, and some other command to show the code, I started printing every program I could. I didn't understand it, but it was like I found a secret world.
I tried to show my son how to program something, and it took so many things to even get started in every environment we worked in. By the time you got some code out, a lot of effort was expended on non-productive things. Things that he stumbled over just to get to the code.
With the Apple, there was literally nothing in between you and the code.
I found out about lo-res graphics from a friend and made my own animations by drawing the screen (I used graph paper to map out my drawings) and I was able to draw black over parts of it and then draw something else. I figured this out on my own from experimenting.
You can't experiment and "guess" through coding today, it's too complicated. Oh well, rant is over.
I agree with you - learning programming was more fun in the past. It can be used as a first text-oriented learning language.
I also like to use it myself to write simple games.
a = 11
if a = 10
Great way to set someone up for failure when they switch to any C-like language!I personally have experienced people finding it easier to grasp a construct such as a := 1 or let a = 1. The way most programming languages assign values to variables conflicts with the notion of equations, which is familiar to a lot of people by the time they learn to write programs.
(Dartmouth BASIC required a LET keyword, Kemeny and Kurtz being mathematicians after all. Bill Gates might have made it optional in Microsoft BASIC to save typing and possibly one byte of memory.)
I sort of miss Smalltalk's left-arrow though.
Also, one bit of criticism: if it's not too late I'd also re-think the name. "Easyprog" is going to make any newbies really frustrated when they can't figure something out and the site is just mocking them: "lol, you can't figure it out and it's so EASY!".
Other than that, I think this is a great project - really well done, and it has a lot of potential to me really great learning tool.
I am also not yet satisfied with the name - so if you had a suggestion ...
Also there's https://futureofcoding.org which has a growing community of language and tool designers focused on live-coding languages. There's a good number of projects being developed by members there.
It's a good decision. You've created an easy to follow programming language, built a wonderful interface, provided excellent instructions.
People often forget that the essence of the code (the spirit of that code) is driven by the vision (and passion) of a single individual. Sometimes (but rarely) more than one person shares this vision.
I have literally seen 100s of programming languages on HN and quite frankly, they are mostly copy/paste of existing languages built around the same mindset of others - providing no real advantages to their target audience.
The target audience for https://easyprog.online/ide/ is different. The cost of entry (in the manner you have built this) is much smaller than other options for beginning coders.
You've done a nice job with this! I very much like that you wish to continue to control the direction until it can establish itself in some way.