‹ BackHN Continuity

Thread

Evolving programming languages in the AI era

139 points · 99 comments · pjm331

  1. spankalee · · focus · HN ↗
    This part:

    ---

    - Correct by construction: the language makes invalid states or programs hard or impossible to express.

    - Statically established: types, proofs, and static analysis establish properties before execution.

    - Runtime-enforced: memory management, isolation, capability boundaries, and other runtime enforced properties.

    - Empirically validated: program validation through tests, property-based testing, and fuzzing.

    ---

    Along with being familiar, so it&#x27;s easy to generate, is a huge part of why I&#x27;m building Zena: <a href="https:&#x2F;&#x2F;zena-lang.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;zena-lang.dev&#x2F;

    I don&#x27;t have the AI-first rationale put into the public docs well just yet, but I mention some of it here: <a href="https:&#x2F;&#x2F;zena-lang.dev&#x2F;guide&#x2F;why-zena&#x2F;#familiar-to-humans-and-to-agents" rel="nofollow">https:&#x2F;&#x2F;zena-lang.dev&#x2F;guide&#x2F;why-zena&#x2F;#familiar-to-humans-and...

    along with a doc in the repo on this topic: <a href="https:&#x2F;&#x2F;github.com&#x2F;elematic&#x2F;zena&#x2F;blob&#x2F;main&#x2F;docs&#x2F;design&#x2F;ai-first-language.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;elematic&#x2F;zena&#x2F;blob&#x2F;main&#x2F;docs&#x2F;design&#x2F;ai-fi...

    In short, the more deterministic, automated, checks the better. AI can deal with a pedantic language. I intend to add statically verified structured concurrency, units of measure, contracts, and eventually more and more formal methods into the language so it can be a familiar TYpeScript-like base with as many static guarantees as we can fit in.

    I also think that fine-grained isolation, which Zena gets via Web Assembly, is critical for limiting the capabilities of generated code and the blast radius of bugs, vulnerabilities, and non-aligned behavior.

    I do have an optimistic hope that a language also optimized for humans, readability and simple semantics especially, has value in the future, even when most code is generated. We&#x27;ll see about that.

    1. demibabs · · focus · HN ↗
      A programming language for agents seems ill-conceived in my opinion.

      Agents will naturally be bad at it due to a lack of examples.

      1. abletonlive · · focus · HN ↗
        &gt; bc agents will naturally be bad at it due to a lack of examples.

        Can we please as a community stop parroting these false premises as a basis of every argument against doing anything new? It&#x27;s plainly obvious to anybody that uses LLMs on a regular basis that it&#x27;s not true.

        1. demibabs · · focus · HN ↗
          It seems plainly obvious to me that an agent trained on zillions of TypeScript examples is going to be better at TypeScript compared to novel langs.
          1. hnedeotes · · focus · HN ↗
            It might seem obvious but in truth is not - to be honest, a strictly typed language where models can play adversarial competitions against a strict compiler&#x2F;linter does have advantages, as mentioned in the article itself but that&#x27;s not related to training size, the advantage is exactly that it can generate synthetic useful data due to compiler&#x2F;linter guarantees - regarding training size as long as some logic showcasing the constructs exists that is all that is needed. If you have 2 correct examples for each feature or language construct then the probability of the a LLM learning it and applying it is very much guaranteed, if you have thousands of diverging uses of patterns and constructs in the training data (with a lot of bad examples or wrong uses) a LLM might, I dare say will, actually perform worse, since the probabilities of what particular variation being the &quot;correct&quot; one to use are all over the place.

            What can happen is sometimes patterns that are unique to certain languages aren&#x27;t surfaced and so can&#x27;t be &quot;learned&quot; but that is a different case, since you can add examples - or patterns that go beyond syntax (threaded code, process isolation, interaction between different modes of resolution, etc) where you need the agent to be able to understand and plan higher-level logic.

            I wrote CSSex as a css pre-processor (similar but not the same as SASS&#x2F;SCSS) and my &quot;boss&quot; at the time fed the existing cssex files to GPT (+2 years ago) and it was able to write CSSex just as fine as if it was writing something that was present in its training data set. It never introduced syntax bugs, the bugs it introduced were all relative to complex cascading styles rules in an existing large (for a definition of large in webapps) codebase, rules interactions (CSS), browser quirks, and complex logic to do what we &quot;humans&quot; wanted (or him in this case) and so on.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.