The syntax/formatting reminds me of Lingo [0]. But also Logo and Basic.
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...
Some of it was that early PC's didn't come with any software other than a BASIC interpreter. So you had to write a little program (or type one in) to get it to do anything, and you weren't comparing your accomplishments to professionally-written programs that you could just download.
So yes, making an early computer play a simple melody was magical.
In the past you fired up an editor and the tools were built in and ready to use. Im thinking back to BASIC. Today you have to download and understand a stack of tools and languages before you get anything printing on the screen.
Windows comes with vbscript built in. MacOS has Applescript, Python and a bunch more out of the box. Plus incredibly high quality languages, libraries and IDEs are just a few clicks away.
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.
How about this framing: back then, an IDE was called a "microcomputer" and you couldn't just download it for your existing personal communications device; you had to go to the store and buy it as a physical piece of hardware. We have it so much easier today!
Not necessarily true :( Python is pretty out of the box in my opinion. There is setup involved if you want to create proper dev environments but you can avoid it also. Always love how easy it is to jump straight in and start coding something.
Fire up your python IDE and make a bouncing ball. Nowadays programming feels a lot like an MMORPG. You can't do a solo mission, lest you will get stuck behind some bushes unable to move.
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 share the overal nostalgia here (I learned BASIC on an Amstrad 6128 with nothing but a book and some teenage summer nights to waste.)
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...
Had the exact same experience with C= 64 and the guidebook that came with it.
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.
But it really isn't - not for a kid without any knowledge of programming.
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:
...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.
When I got my first computer in 1984, I hooked it up to the TV, turned it on, and was dumped immediately into BASIC. The computer also came with a thick manual that not only described how to set up the computer, but how to program in BASIC, with lots of examples.
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).
The difference is, there just wasn't much the computer could do. Programming it was one of its main purposes. A modern computer is an actually-useful-in-everyday-life item.
I do. Allmost exclusively for anything js related (except node).
Works pretty good since they made saving files stable. Seriously, it is pretty good nowdays. You can do debugging, and when you find a error - you just fix it there instantly, without the need to change enviroment.
To be fair, s/he was responding to "Today you have to download and understand a stack of tools and languages before you get anything printing on the screen."
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.
> 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.
Agreed - the browser leaves much to be desired as an accessible dev platform, and the web as a whole is even worse! (Why do I need to learn HTML, CSS, JS, Python, SQL and React/Redux/Bootstrap/Flash/SQLAlchemy just to get started?! And that's not mentioning Webpack, AWS, shell scripting...).
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.
Well," Back then you could write a desktop application with a GUI, controls, a window, and needed one language and one environment. " you still had to learn the different gui frameworks and how they work.
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.
> you still had to learn the different gui frameworks and how they work.
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.
Ah ok, I never used VB.
I experienced that with Delphi ... and much more elaborate with Adobes Flex(or more beautiful, but less clean, with Flash), which is pretty dead nowdays unfortunately and I have not found a replacement. Any tool which tried to do this for HTML has been horrible so far.
Because when I was a kid, and I turned on my Apple computer, I found I could start coding right now... I mean right now. Write and run. No apps, no compile, no editor, nothing. It was just a bizarre and wonderful thing.
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.
The automatic formatting was nice, but I found a few times where I seemingly couldn't type; the formatter would just reset and ignore the key. For example I had "exit .." and couldn't hit enter to put the dots on the next line. New people probably won't understand why they can't press enter.
Thank you for pointing that out. When you press Enter, everything is parsed, including the current line. The current line will only be accepted if it is syntactically correct. Normally this works quite well, but for beginners this can be a real problem. With "Ctrl-R" you can see the error. I need to think about how to improve this.
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.
Perhaps it's C that is weird for confusingly allowing you to assign within a logical expression. At least clang (and possibly other compilers) warn you because they assume you meant to write '=='.
(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.)
All I see is "Loading ..." and when looking at the console I see things like "Content Security Policy: The page’s settings blocked the loading of a resource at https://easyprog.online/games/easyw.js (“worker-src”).".
I like it, it is very well made and organized. I jumped to Monte Carlo methods and examples clearly explained what it was. I think this is great layout for teaching. Thank you for making it.
I really like this. Could you make the page load with the first demo code pre-loaded? I sat there looking at the code and hitting "run", checking the browser console to see if there was any error. Then I realised I had to press "load" first and then "run".
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.
This is literally not a concern. There's a very large community of hobbyist programming language designers and I've never heard an instance of someone poaching another's language and running with it as their own.
/r/programminglanguages (17.5k subscribers) is a good start. They recently launched a directory of projects (50+) the group is working on: https://www.proglangdesign.net which also links to their IRC and discord servers.
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.
I wonder why you think someone else copying your work is a risk. I'm aware that some people stuff their GitHub profiles by forking projects and rewriting the author information, but I don't think that influences the original project's reputation in any way.
> I intend it when it reaches a certain spread - I don't want anyone to change that a little
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.
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)
[1] https://en.wikipedia.org/wiki/Adobe_Director