A programming language halfway between Basic and Pascal, with old-style REPL and Logo-like turtle graphics.
7thaccount · 18h ago
Although simplistic it does remind me of my dream for a simplistic command driven language that actually does the tasks I want in a simple manner. I'm not thinking of tcl either, but if powershell was a lot faster and included support for a lot more things kind of like the graphics language mentioned here. Calling out to the Microsoft GUI tools is such a pain and not worth it given the glacial performance.
WillAdams · 17h ago
I've actually been using OpenPythonSCAD for this sort of thing:
it lets me rough out an algorithm (see the section on arcs in: https://github.com/WillAdams/gcodepreview/blob/main/gcodepre... ) interactively, seeing the result on-screen --- then once I have the rough concept, I can re-write it in Python, retaining this interactivity.
EDIT: next step is to work up a batch file which has me running OpenSCAD on a series of files to output .png and .svg files to read them back in and place the output at the appropriate places in the document.
jerf · 13h ago
This seems a very surprising combination of technologies to turn into a visual prototyping language. Do you have a blog post or something on this topic that might expand on this workflow?
- Python was added to it which finally got me the ability to write out files _and_ mutable variables (programming this w/o them was an interesting intellectual challenge and resulted in a quite stilted programming style)
- G-code is the _lingua franca_ of CNCs, so modeling that seemed a natural fit
- DXFs are imported by many CAD and CAM applications, so supporting them was a no-brainer
- LuaLaTeX is the current (La)TeX implementation, and I've been using/learning TeX since first checking out a copy of _TeX and METAFONT_ from the local college library
Maybe the most important context is what my first project on my Shapeoko 3 entailed: https://community.carbide3d.com/t/locking-register-calipers-... --- drawing in Macromedia Freehand, making a one character font in Fontforge, doing V-carving using F-Engrave, then the balance of the CAM using MakerCAM (a Flash file formerly known as PartKam).
Glad to answer any other questions you might have! I'm hoping to have a project ready for a "Show HN" before 4 July.
7thaccount · 15h ago
Nice setup to solve a problem. Seems like something I would do :)
WillAdams · 15h ago
Thanks!
I kind of wish that I could find some tool like to Jupyter Notebook which would work for my needs, but I always run into some odd limitation.
chrisbrandow · 16h ago
This really resonates for me. I have been thinking for sometime that it would be much more useful than scratch, if we could have a simple programming language with a simple canvas next to a text/console output, both of which were separate from the editor.
And ta da!! You’ve done it.
I really think this is wonderful.
xunil2ycom · 17h ago
So, basically Logo.
RHSeeger · 13h ago
That was my first thought; that it looks like a version of Logo; which holds a fond place in my heart from younger years.
mdaniel · 18h ago
Seems to be GPLv3 https://github.com/chkas/easylang/blob/394e29a44458ac67f8483... although I think the line right above that stating "All rights reserved" is actually incompatible with GPLv3 which is designed to grant rights, not reserve them. I am not lawyerly enough to know what the story is with that "must contain a built-in function" clause.
Kind of sad it's not self hosted yet :-D
n2d4 · 18h ago
"All rights reserved" no longer means anything anymore. In the past, you had to state that you want to reserve copyright, but now this has become the default even if you say nothing.
Either way, this does not conflict with GPLv3; if the author decides to reserve all rights, and then use their reserved right to license the work under a certain license like GPLv3, that is totally fine. Notably, the phrase "All rights reserved" does not recapture any rights that you don't have. It is the same logic under which you're allowed to license your own GPLv3 code under a proprietary, non-FOSS license, but that doesn't revoke the GPLv3 license itself.
ornitorrincos · 17h ago
I'm more worried on the advertising clause, which would afaik make it gpl-incompatible for anyone else. (and probably also unfit for osi defined open source)
ModernMech · 16h ago
> Kind of sad it's not self hosted yet :-D
Self hosting a language is only really a useful exercise if the language is designed for writing compilers. Easylang doesn't seem to be intended for that, so there are always better things to spend one's time on, as there's an infinite amount of work that goes into making a language, and writing a compiler is not a trivial task. There are better ways to stress test a language.
jcmontx · 13h ago
It's like a DSL for graphics, really really cool!
WillAdams · 6h ago
If that is what one wants, then why not Logo, or METAPOST, or TikZ?
bn-l · 19h ago
Who is this aimed at? Kids? If so it is unbelievably far off the mark.
hyperhello · 18h ago
It’s probably just aimed at scratching an itch of the person who designed it. Often when I see “for kids” I see a simplification of what adults would think. Here I see…JavaScript without brackets and parentheses.
bn-l · 15h ago
If it is designed for kids then it is off the mark.
mike_ivanov · 14h ago
Depends on the kind of kids. I find the approach perfect for the 10-15 years old age group.
lukaslalinsky · 18h ago
It has a similar vibe to the BASIC I was starting with at around 10-11 years old. When I first saw this, I was thinking it could be a good first language for someone who is actually eager to learn more, but doesn't need to be exposed to the realities of the IT world.
gus_massa · 17h ago
I made a somewhat similar project for My daughter when she was 8 or 9 y.o. It was a turtle that has to turn instead of using absolute coordinates like in this article.
mike_ivanov · 14h ago
There are 3yo kids, 5yo, 15yo ... 50yo kids. All are different. Don't judge by your own inner kid age.
istjohn · 17h ago
Why do you say that? It seems like a great halfway point between Scratch and Python.
delusional · 18h ago
How come? When I was learning HTML 20 years ago it was all angelfire sites and w3schools. This seems like a reasonable analogue to that. It doesn't have to be for all people in an age group.
chrisbrandow · 16h ago
Why?
James_K · 18h ago
There are people who don't know how to program, not necessarily because they are young, but because it hasn't been relevant in their lives yet.
SoftTalker · 14h ago
This is most people, and it will never be relevant in their lives ever.
Is it just a re-branding as Tiki?
Anyway, the author does AoC every year in it: https://easylang.online/aoc/ which I admit I have referenced during my own attempts.
Looks like it. The source link at the bottom of the page goes to https://github.com/chkas/easylang
https://news.ycombinator.com/item?id=32319578
A programming language halfway between Basic and Pascal, with old-style REPL and Logo-like turtle graphics.
https://pythonscad.org/
paired with:
https://www.blockscad3d.com/editor/
it lets me rough out an algorithm (see the section on arcs in: https://github.com/WillAdams/gcodepreview/blob/main/gcodepre... ) interactively, seeing the result on-screen --- then once I have the rough concept, I can re-write it in Python, retaining this interactivity.
EDIT: next step is to work up a batch file which has me running OpenSCAD on a series of files to output .png and .svg files to read them back in and place the output at the appropriate places in the document.
but I've written a fair number of posts on it at:
https://forum.makerforums.info/search?q=gcodepreview
and it has come up a few times at:
https://community.carbide3d.com/search?q=gcodepreview
and on the OpenSCAD mailing list --- that latter might need to be extended back in time to encompass: https://github.com/openscad/openscad/issues/2017
EDIT: also see my post history here, and this post might be what you are asking after?
https://news.ycombinator.com/item?id=44108440
Reasons for the technologies:
- OpenSCAD affords 3D modeling
- Python was added to it which finally got me the ability to write out files _and_ mutable variables (programming this w/o them was an interesting intellectual challenge and resulted in a quite stilted programming style)
- G-code is the _lingua franca_ of CNCs, so modeling that seemed a natural fit
- DXFs are imported by many CAD and CAM applications, so supporting them was a no-brainer
- LuaLaTeX is the current (La)TeX implementation, and I've been using/learning TeX since first checking out a copy of _TeX and METAFONT_ from the local college library
Maybe the most important context is what my first project on my Shapeoko 3 entailed: https://community.carbide3d.com/t/locking-register-calipers-... --- drawing in Macromedia Freehand, making a one character font in Fontforge, doing V-carving using F-Engrave, then the balance of the CAM using MakerCAM (a Flash file formerly known as PartKam).
The over-arching name of the project is "Design Into 3D", so also see: https://willadams.gitbook.io/design-into-3d/programming and you may find the (very early) Tugboat article: https://tug.org/TUGboat/tb40-2/tb125adams-3d.pdf of interest.
Glad to answer any other questions you might have! I'm hoping to have a project ready for a "Show HN" before 4 July.
I kind of wish that I could find some tool like to Jupyter Notebook which would work for my needs, but I always run into some odd limitation.
And ta da!! You’ve done it.
I really think this is wonderful.
Kind of sad it's not self hosted yet :-D
Either way, this does not conflict with GPLv3; if the author decides to reserve all rights, and then use their reserved right to license the work under a certain license like GPLv3, that is totally fine. Notably, the phrase "All rights reserved" does not recapture any rights that you don't have. It is the same logic under which you're allowed to license your own GPLv3 code under a proprietary, non-FOSS license, but that doesn't revoke the GPLv3 license itself.
Self hosting a language is only really a useful exercise if the language is designed for writing compilers. Easylang doesn't seem to be intended for that, so there are always better things to spend one's time on, as there's an infinite amount of work that goes into making a language, and writing a compiler is not a trivial task. There are better ways to stress test a language.