EYG: A Programming Language for Humans

(crowdhailer.me)

53 points | by crowdhailer 4 hours ago

10 comments

  • Panzerschrek 1 hour ago
    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.

    • viceconsole 46 minutes ago
      Your three examples historically were successful in achieving widespread usage, and in the case of SQL, shows no sign of disappearing.
      • Panzerschrek 32 minutes ago
        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.
        • himata4113 5 minutes ago
          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.
  • veqq 1 hour ago
    EYG's structure editor is amazing, not letting you create syntactically invalid code etc.
  • teo_zero 47 minutes ago
    I thought "makers" all used Python. What's the friction that EYG is supposed to remove?
  • saghm 1 hour ago
    > 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

    • pmontra 1 hour ago
      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.

  • invalidOrTaken 3 hours ago
    Interesting stuff. I do like the taxonomy of "computer work", where it's one part logic cognition, and one part ticky-tack details.
  • desireco42 3 hours ago
    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.

    • desireco42 2 hours ago
      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.

  • prologic 3 hours ago
    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.
    • sodapopcan 3 hours ago
      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...
    • pasquinelli 3 hours ago
      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.

      • petra 1 hour ago
        // 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.

      • saghm 1 hour ago
        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"?
      • tolciho 2 hours ago
        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.
      • Brian_K_White 2 hours ago
        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...

    • nine_k 2 hours ago
      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.

    • zem 3 hours ago
      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.
  • gulugawa 54 minutes ago
    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.

  • ctkqiang96 2 hours ago
    interesting......
  • z0ltan 3 hours ago
    [dead]