I generally don't think it's a good idea to develop a language for non-developers. It was tried before multiple times and the end goal has not been achieved. Sooner or later one realizes, that professional developers are still necessary, even for languages initially designed for "normies". But such a language is typically not good enough for them, it lacks necessary abstractions, flexibility, performance or something else.
We have a lot of examples for this, like COBOL, SQL, Visual Basic.
They are widespread, but not among "normies", but professional programmers. That's what I call a failure, since they were initially designed to be used by non-programmers.
I would love having the capability of just writing json-esque SQL that has the most basic type checks, alas we live in purgatory with weird build systems to validate queries.
I'm not sure "normies" is the right grouping. I think that is too broad some people are artists and some people just aren't that curious to try. I think a better group to target is "makers" I think that's anyone with enough ambition to at least try and fix a plug or change a lightbulb.
Because we call someone using a programming language a programmer. But certainly many professionals who arent full-time programmers write Excel formulas or queries.
The intention of SQL was to be used by domain experts rather than computer scientists. I’d say it have been successful at that.
By your logic ... BASIC is useless.
By your logic ... people are born a programmers.
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.
I don't think this is the logic of the parent, and BASIC wasn't a non-developer PL at all. It was simplified but followed those days' programming practices, and one may say was closer to raw assembler than most today's high-level languages
So you’re saying everyone should stop doing what they’re doing bc someone failed at it in the past? If something doesn’t interest you or motivate you it doesn’t mean it’s not worth doing
It’s reactive programming in a functional style. I wouldn’t call it functional reactive programming though because that’s usually used to describe more robust languages like older versions of Elm before TEA.
How can you say that when millions of non-programmers are using AI to write programs all of a sudden? The problem isn't with non programmers it's with the languages they've been given are usually written by people who are keen to write languages that conform to their sensibilities rather than the programmer's.
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.
> 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
Thankfully I learnt to program back in the days where languages could go both ways, or even better you could explicitly set the lower and upper bounds.
Thus as programmer I never agreed with him.
And it isn't as if programmers of some famous 0 based index languages don't do indexing errors all the time.
Bringing a sound and totally inferred type system, including of all effects. Is the main dimension. It also aims to improve the friction around managing dependencies.
I believe this was a separation that existed in the role of programmer (logic cognition) from coder (details) in the early days of computing. I previously read a good post about this but can't find it now.
> Sympathy for the machine only exists in developers. They will happily explain why integer overflows need to happen. The average human response to integer overflows is “WTF, that’s not how numbers work”. We have BigInt and 99% of the time the WTF response is the correct one.
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
> 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.
I'd argue that using a pencil and paper (which is a totally reasonable thing!) is not really your memory at that point. Augmenting our hardware with peripherals is a useful technique, but it doesn't fundamentally change the constraints; like in "regular" hardware, you're now paying even more per cycle with the equivalent to looking up on an external disk.
I'm not sure I can remember any time I messed up by using a 64-bit int rather than a BigInt. I can remember plenty of times I should have either just used saturating add/subtract or was trying to compute something that was basically nonsense regardless of what integer width or operation I was doing
Functional programming paradigms? Matching? Complex syntax? Sorry but either I've missed the point, or you've lost me. If we're trying to create tools for non-Developers to build software, this isn't it. You can pretty much already just ask Claude/Codex/whatever and it'll build you a thing™ and it'll probably work. You don't even need to read the code.
I have to admit, it's kinda nice to read a comment that's simply complaining about programming language design again. For a second I thought there wasn't even going to be mention of AI, but alas...
I would say that if you get the syntax and docs right functional programming paradigms and matching can be very intuitive for non programmers. you don't have to build up a mental model of variables versus objects and passing by value or reference.
> 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.
AppleScript "English" was designed to be intuitive and easy to understand (or so claimed various manuals), but boy howdy did I spend a lot of time trying to figure out exactly what "English" it did accept.
500 million years ago a former colleague created "Electric File Clerk" which became profile which became filepro which technically still exists today.
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.
Aside: I support a court who uses a FilePro-based application that dates back, at least, to the mid-90s. I don't have to deal with the actual app-- just the underlying Linux boxes that run it. It seems reasonable.
In the filepro circles there is a famouse bit of history about a large user that once tried to migrate off of it, because obviously it's crap because it's ancient... and paid some shop to rewrite their existing filepro app in some current db framework, I think an oracle product but I don't remember, and they consumed some large amount of money and years, and in the end failed. The client sued the consultants and it actually went to trial and the lead developer of filepro at the time was called to testify as part of the whole thing.
Point was just, this old thing is certainly old and not exactly natural to integrate with anything else today, but, there must be something there such that it does the job people actually need doing, and even spending millions of $ and many man-years on the most bestest-currentest-modernest-kool-kidsest systems somehow fails to deliver a equivalent actual real world functionality the users already had, let alone better.
As magical as new frameworks undeniably are, there's always just something a bit out of touch, like they make the most sense to the developer of the framework and not the user of the framework.
BTW, when you say "former colleague" are you referring to _the_ (non-fictional character) Howard Wolowitz?
I don't much care for the show the namesake character was featured in, but between knowing the name from the lore of the TV show and being adjacent filePro I think it's pretty cool to actually talk to somebody who knew him.
Didn't we invent the word "devops" specifically for the combination of work of development and ops? How did we get to the point where we now need a word for "development without the ops"?
That's still not what this is about. Take the example in the article: people who don't write code 100% of the time but have to think about mechanical and electrical engineering consideration for most of the time. You don't describe that as DevOps.
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.
The Op identify well the problem and the idea of the solution but the implementation is typically dev oriented.
A good example of the actual tool is FoxPro and similar (even better than MS Access based on the ideals of the article) and I observed being actually used by occasional "developers" that need more than Access/Vb/Excel.
I'm on the hunt for it with https://tablam.org but the main major pain point is to bring the actual UI. You can go anywhere with syntax and such, is how you connect to the rest where the magic must prove is real.
Millions of people learn and practice functional reactive programming every day, without considering themselves software developers.
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.
Surprisingly, I've met non-programmers who easily learned languages considered "strange" or difficult to understand by professional programmers (Forth is even somewhat popular among astronomers, but I've also met people using Prolog for their programming needs, even J).
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).
So I poked around... this is really interesting. So you take language in text and make IR, but also could be made IR directly. That is very interesting.
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.
I have a few weird syntax I've worked on in the past so this is definitely possible. Currently only the textual representation and structural editor are in the repo. The most different I have done is a layout where the AST was presented like a file tree.
I think you created a potential platform for experiments with different language syntax ideas. It is rarely that people want to change how integers are represented and such, mostly it is syntax. So this lets me and others try things out.
I don't understand your reasoning; LLMs and programming languages are different things. Like humans, LLMs use programming languages as tools, so the existence of LLMs doesn't obviate programming languages.
I generally don't think it's a good idea to develop a language for non-developers. It was tried before multiple times and the end goal has not been achieved. Sooner or later one realizes, that professional developers are still necessary, even for languages initially designed for "normies". But such a language is typically not good enough for them, it lacks necessary abstractions, flexibility, performance or something else.
We have a lot of examples for this, like COBOL, SQL, Visual Basic.
Your three examples historically were successful in achieving widespread usage, and in the case of SQL, shows no sign of disappearing.
They are widespread, but not among "normies", but professional programmers. That's what I call a failure, since they were initially designed to be used by non-programmers.
I would love having the capability of just writing json-esque SQL that has the most basic type checks, alas we live in purgatory with weird build systems to validate queries.
What is json-esque SQL?
I'm not sure "normies" is the right grouping. I think that is too broad some people are artists and some people just aren't that curious to try. I think a better group to target is "makers" I think that's anyone with enough ambition to at least try and fix a plug or change a lightbulb.
I am quite sure that plenty of Excel users know BASIC and SQL.
Because we call someone using a programming language a programmer. But certainly many professionals who arent full-time programmers write Excel formulas or queries.
The intention of SQL was to be used by domain experts rather than computer scientists. I’d say it have been successful at that.
I think this has less to do with design flaws of SQL and more to do with normie users historically not touching databases and query engines directly
SQL is a real programming language with a super high ceiling if you need to write scalable queries.
I think this is a point I should make more clearly. And there are more examples of programmable environments. Excel being one.
By your logic ... BASIC is useless. By your logic ... people are born a programmers.
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.
I don't think this is the logic of the parent, and BASIC wasn't a non-developer PL at all. It was simplified but followed those days' programming practices, and one may say was closer to raw assembler than most today's high-level languages
Not only were COBOL, SQL, Visual Basic market successes, as mentioned by others, now non-developers are even using plain English with AI agents.
So you’re saying everyone should stop doing what they’re doing bc someone failed at it in the past? If something doesn’t interest you or motivate you it doesn’t mean it’s not worth doing
There is one example that succeeded and became the most widely used programming paradigm on the planet: Spreadsheets
Though you might argue that the "programming language" part was rather accidental
And interestingly using Excel resembles pure functional programming in a lot of ways
It’s reactive programming in a functional style. I wouldn’t call it functional reactive programming though because that’s usually used to describe more robust languages like older versions of Elm before TEA.
And it has array programming features, logging, and (time-travel!) debugging all intuitively graspable for most non-technical people.
I sincerely think there are lots of unlearned lessons in studying Excel.
And that is without counting on Lambdas, VBA, Power Query.
How can you say that when millions of non-programmers are using AI to write programs all of a sudden? The problem isn't with non programmers it's with the languages they've been given are usually written by people who are keen to write languages that conform to their sensibilities rather than the programmer's.
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.
> 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
Thankfully I learnt to program back in the days where languages could go both ways, or even better you could explicitly set the lower and upper bounds.
Thus as programmer I never agreed with him.
And it isn't as if programmers of some famous 0 based index languages don't do indexing errors all the time.
EYG's structure editor is amazing, not letting you create syntactically invalid code etc.
Thank you. I have some new editor features I hope to share once the package management is improved.
I thought "makers" all used Python. What's the friction that EYG is supposed to remove?
Bringing a sound and totally inferred type system, including of all effects. Is the main dimension. It also aims to improve the friction around managing dependencies.
I wonder what you think of Gherkin/Cucumber?
https://cucumber.io
"Cucumber lets you write automated tests in plain language."
I wonder if has been integrated with ClaudeCode yet?
Interesting stuff. I do like the taxonomy of "computer work", where it's one part logic cognition, and one part ticky-tack details.
I believe this was a separation that existed in the role of programmer (logic cognition) from coder (details) in the early days of computing. I previously read a good post about this but can't find it now.
> Sympathy for the machine only exists in developers. They will happily explain why integer overflows need to happen. The average human response to integer overflows is “WTF, that’s not how numbers work”. We have BigInt and 99% of the time the WTF response is the correct one.
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
About your question
> 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.
I'd argue that using a pencil and paper (which is a totally reasonable thing!) is not really your memory at that point. Augmenting our hardware with peripherals is a useful technique, but it doesn't fundamentally change the constraints; like in "regular" hardware, you're now paying even more per cycle with the equivalent to looking up on an external disk.
This part is very bad, 99% of the time if you overflow a 64 bit variable it is because you did the wrong computation, not because you need BigInts..
I'm not sure I can remember any time I messed up by using a 64-bit int rather than a BigInt. I can remember plenty of times I should have either just used saturating add/subtract or was trying to compute something that was basically nonsense regardless of what integer width or operation I was doing
It already exits, it's English to prompt AIs to implement the details.
Functional programming paradigms? Matching? Complex syntax? Sorry but either I've missed the point, or you've lost me. If we're trying to create tools for non-Developers to build software, this isn't it. You can pretty much already just ask Claude/Codex/whatever and it'll build you a thing™ and it'll probably work. You don't even need to read the code.
I have to admit, it's kinda nice to read a comment that's simply complaining about programming language design again. For a second I thought there wasn't even going to be mention of AI, but alas...
I would say that if you get the syntax and docs right functional programming paradigms and matching can be very intuitive for non programmers. you don't have to build up a mental model of variables versus objects and passing by value or reference.
from the article
> 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.
AppleScript "English" was designed to be intuitive and easy to understand (or so claimed various manuals), but boy howdy did I spend a lot of time trying to figure out exactly what "English" it did accept.
Nowadays it would be coupled with a LLM and be much flexible in what it could accept as English sentences.
500 million years ago a former colleague created "Electric File Clerk" which became profile which became filepro which technically still exists today.
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...
Aside: I support a court who uses a FilePro-based application that dates back, at least, to the mid-90s. I don't have to deal with the actual app-- just the underlying Linux boxes that run it. It seems reasonable.
In the filepro circles there is a famouse bit of history about a large user that once tried to migrate off of it, because obviously it's crap because it's ancient... and paid some shop to rewrite their existing filepro app in some current db framework, I think an oracle product but I don't remember, and they consumed some large amount of money and years, and in the end failed. The client sued the consultants and it actually went to trial and the lead developer of filepro at the time was called to testify as part of the whole thing.
Point was just, this old thing is certainly old and not exactly natural to integrate with anything else today, but, there must be something there such that it does the job people actually need doing, and even spending millions of $ and many man-years on the most bestest-currentest-modernest-kool-kidsest systems somehow fails to deliver a equivalent actual real world functionality the users already had, let alone better.
As magical as new frameworks undeniably are, there's always just something a bit out of touch, like they make the most sense to the developer of the framework and not the user of the framework.
BTW, when you say "former colleague" are you referring to _the_ (non-fictional character) Howard Wolowitz?
I don't much care for the show the namesake character was featured in, but between knowing the name from the lore of the TV show and being adjacent filePro I think it's pretty cool to actually talk to somebody who knew him.
Didn't we invent the word "devops" specifically for the combination of work of development and ops? How did we get to the point where we now need a word for "development without the ops"?
That's still not what this is about. Take the example in the article: people who don't write code 100% of the time but have to think about mechanical and electrical engineering consideration for most of the time. You don't describe that as DevOps.
Sure, but that doesn't seem anywhere in the realm of "I need to know what's on my $PATH or how to set up a security group in AWS"
// makers want to make not ask ai to make,
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.
The Op identify well the problem and the idea of the solution but the implementation is typically dev oriented.
A good example of the actual tool is FoxPro and similar (even better than MS Access based on the ideals of the article) and I observed being actually used by occasional "developers" that need more than Access/Vb/Excel.
I'm on the hunt for it with https://tablam.org but the main major pain point is to bring the actual UI. You can go anywhere with syntax and such, is how you connect to the rest where the magic must prove is real.
Millions of people learn and practice functional reactive programming every day, without considering themselves software developers.
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.
Surprisingly, I've met non-programmers who easily learned languages considered "strange" or difficult to understand by professional programmers (Forth is even somewhat popular among astronomers, but I've also met people using Prolog for their programming needs, even J).
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).
Ha, very interesting. I just started using Gleam last week or so... I knew about it and loved Elm back in the day.
Anyhow, will enjoy discovering EYG as well.
So I poked around... this is really interesting. So you take language in text and make IR, but also could be made IR directly. That is very interesting.
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.
I have a few weird syntax I've worked on in the past so this is definitely possible. Currently only the textual representation and structural editor are in the repo. The most different I have done is a layout where the AST was presented like a file tree.
apply ├── int_negate └── 5
What if you just put the file tree in the AST... and hashed it all?
https://gist.github.com/conartist6/7dd40697140965ee343de93b9...
I think you created a potential platform for experiments with different language syntax ideas. It is rarely that people want to change how integers are represented and such, mostly it is syntax. So this lets me and others try things out.
https://www.roc-lang.org/ is worth checking out if you are interested in a modern Elm-inspired lang
This is cool. I'll give it a try
Good luck. I look forward to hearing about future progress.
I strongly agree with the approach of making programming more accessible with a simple, deterministic feature set.
interesting......
why this why we have llms? thats totally usless. I think all new programming langugaes are ueless right now with advancement of LLMs.
I don't understand your reasoning; LLMs and programming languages are different things. Like humans, LLMs use programming languages as tools, so the existence of LLMs doesn't obviate programming languages.