EYG: A Programming Language for Humans
Posted by crowdhailer 10 hours ago
Comments
Comment by Panzerschrek 7 hours ago
We have a lot of examples for this, like COBOL, SQL, Visual Basic.
Comment by shuwix 5 hours ago
Yet BASIC was literally a first stepping stone for small kids into the World of programming. Most of what we have now is because some 6-7yo kids in 80's and 90's had BASIC and could figure out stuff by themself, without external help.
Comment by broken-kebab 1 hour ago
Comment by viceconsole 7 hours ago
Comment by Panzerschrek 7 hours ago
Comment by bazoom42 2 hours ago
The intention of SQL was to be used by domain experts rather than computer scientists. I’d say it have been successful at that.
Comment by nylonstrung 1 hour ago
Comment by crowdhailer 6 hours ago
Comment by pjmlp 4 hours ago
Comment by himata4113 6 hours ago
Comment by bazoom42 2 hours ago
Comment by seanmcdirmid 6 hours ago
Comment by crowdhailer 6 hours ago
Comment by esterna 1 hour ago
Though you might argue that the "programming language" part was rather accidental
Comment by nylonstrung 1 hour ago
Comment by esterna 21 minutes ago
I sincerely think there are lots of unlearned lessons in studying Excel.
Comment by ModernMech 58 minutes ago
Comment by pjmlp 4 hours ago
Comment by ModernMech 34 minutes ago
For example: I would say that 1-based indexing is pretty much required for a language targeting non-developers; Excel, SQL, R, Matlab, Cobol, Mathematica, Lua are all 1-indexed and all target non-developers. Most PL devs refuse to do this citing how unnatural it is for themselves to reason about, and how Dijkstra was right about the beauty of 0-based indexes. Sorry, but all that is irrelevant when you're trying to convince a non dev that "Actually it makes a lot of sense that the first thing is called 0". They hear that and they tune out because it asks them to abandon their familiar assumptions too early, and they're unwilling to do that on promises of it getting better.
So the first problem people have in making languages for non-developers is they make it like Python, because Python is considered an easy language for beginners. Big mistake, because then you've only appealed to people for whom Python is appealing. Those are not the people we're trying to get with a non-dev language, and besides we already have Python for that.
You look at the top languages used by non devs and you can see that they appreciate aspects of languages that devs do not, so that's why devs fail so regularly at this. But there are some success stories you point out.
Then there's of course the biggest example you forgot: Excel. And it's not a surprise this one is always forgotten by programmers because despite being a programming language it doesn't follow typical programming language conventions, and as a design artifact it sits well outside the design hornet's nest that is the C/C++/Java/Javascript/Python which comprise most of mainstream programming.
Finally there is LOGO - This one is often missed, but it's a lisp-like language that allowed small children to program complex applications like differential physics coursework which grad students find difficult to program, and they're able to do it simply by reframing the program into something they are familiar with like their own body rather than abstract concepts like integration.
They called this "body syntonic reasoning" and it was impressive because the language itself contained the pedogogical framing to enable this. If it hadn't and just said "Here's what a for loop is, now write programs!" it wouldn't have worked. This shows you in order to get non-developers to code, you have to approach them with an uncommon level of empathy for how they thin, and I don't know if most lang developers are up to that task.
Comment by looksjjhg 4 hours ago
Comment by oceanician 1 hour ago
"Cucumber lets you write automated tests in plain language."
I wonder if has been integrated with ClaudeCode yet?
Comment by veqq 8 hours ago
Comment by crowdhailer 6 hours ago
Comment by teo_zero 7 hours ago
Comment by crowdhailer 6 hours ago
Comment by sebastianconcpt 1 hour ago
Comment by invalidOrTaken 10 hours ago
Comment by crowdhailer 6 hours ago
Comment by prologic 10 hours ago
Comment by sodapopcan 10 hours ago
Comment by nine_k 8 hours ago
They just use spreadsheets.
Many of the lofty sounding concepts of programming were invented to make things simpler. Show them from a right aspect, and they are quite approachable to a non-engineer.
Comment by pasquinelli 9 hours ago
> My hypothesis
> Developers deal with two broad categories of work.
> - Describing the logic of the problem they are solving using language constructs like if, loop, var etc. > - Working with computers to run those problems using constucts like $PATH, /var/tmp and AWS.
> There are a lot of humans who can do the first work fine but don’t have the time to master the second category. I call these humans “makers”.
the idea seems to be to make an end-user programming language for makers. makers want to make not ask ai to make, and they are capable of writing code, actually, it's just all the computer plumbing that's too much of a pain.
a sophisticated programming language to write personal software that cuts out the computer plumbing would be something i'd love. i'm not fully clear how that would be done, but i like the thought.
Comment by tolciho 9 hours ago
Comment by pjmlp 4 hours ago
Comment by saghm 8 hours ago
Comment by klez 6 hours ago
Comment by petra 8 hours ago
It probably changes from person to person, some people are just interested in seeing how their idea comes to life and maybe does something useful in the world.
Comment by Brian_K_White 8 hours ago
It was a "RAD, rapid application development system basically the proto ms access. The idea was the user is a dentist or lawyer, not a developer, but needs to make their own software because at that time almost no canned software existed yet.
The doctor or florist or whatever could make their own database-backed application without writing a line of code. Just draw screens and define screens and fields and report formats.
No language at all, since no code.
We are talking trs-80 model I here...
Comment by EvanAnderson 46 minutes ago
Comment by zem 9 hours ago
Comment by crabbone 3 hours ago
I've worked quite a bit with scientists who mostly use Python for their programming-related tasks. To me, it seems that the reason to work with Python has very little to do with the qualities of the language, rather the tools and the community around it. There's nothing specially intuitive or helpful about Python when it comes to doing scientific stuff, not anymore than, say, in PHP or Lua etc. languages from the same general category (which we don't see used in the same setting). It's the libraries / tools like NumPy and Jupyter that make the difference.
From just looking at EYG, I can't tell if it's a good match for the problem or not. But, really, the language design doesn't seem to play an important role in this context. If it somehow manages to win popularity among the people it's trying to engage -- great! But, unless one has an army of "evangelists" and the marketing budget rivaling GDPs of smaller countries, the success seem to be completely random and unpredictable (with quite low success rate).
Comment by saghm 8 hours ago
Forget sympathy for the machine; the real reason we need programming languages that prevent issues because we should have sympathy for the poor humans who are incapable of reasoning about anything but the simplest code without hitting the limits of their hardware. I'd argue that for virtually all humans (whether developers or otherwise), the brain is like the world's worst runtime for code imaginable. The maximum memory is absurdly low (how many variables can you really remember at once?) and prone to corruption that makes C look like a heaven-sent solution to undefined behavior (how many parents of multiple children do you know who never accidentally call kids the wrong name? my average length between calling one of my cats by the name of the other is like, a day at most), and the speed is laughable (time for a single division operation is on the order of entire seconds).
The widest integers in the world will not stop us from writing buggy code, and I think we have bigger fish to fry than BigInts
Comment by pmontra 8 hours ago
> how many variables can you really remember at once?
and our brain being a bad runtime for programming:
I started programming on a Sinclair ZX81 with 1 kB of RAM. I wrote my program on paper, reasoned about it by tracing variables on paper and eventually I typed in the program on the keyboard and run it. That was much better than typing line numbers and BASIC commands directly into the REPL.
Of course I had bugs and the actual values of those variables surprised me. They still do but I have a much wider view on the software now, usually a couple of 100x50 columns of code side by side. The ability to follow the values is not much better, but values are seldom the important matter, at least in web development, backend and frontend. It's more about the control flow and the data structure. That's more similar to the organizational issues of many other human activities. This goes there, that goes into that other place. My old 1 kB computer programs had little space for organization.
Comment by renox 4 hours ago
Comment by Alisaqqt 4 hours ago
Comment by desireco42 9 hours ago
Anyhow, will enjoy discovering EYG as well.
Comment by nylonstrung 1 hour ago
Comment by desireco42 9 hours ago
Potentially I could make a version without curly braces or some weird syntax and it could be compiled in IR and still be same language :).
Kind of like MS and VB and C# haha.
I like what you did so far, I will keep an eye, maybe help if I can.
Comment by crowdhailer 5 hours ago
apply ├── int_negate └── 5
Comment by gulugawa 7 hours ago
I strongly agree with the approach of making programming more accessible with a simple, deterministic feature set.
Comment by z0ltan 9 hours ago
Comment by ctkqiang96 9 hours ago
Comment by v3ss0n 5 hours ago
Comment by ModernMech 14 minutes ago