HackerLangs
TopNewTrendsCommentsPastAskShowJobs

williamcotton

3,527 karmajoined 15 anni fa

Submissions

The Discoverable Evidence of AI-Assisted Software Porting

williamcotton.com
1 points·by williamcotton·11 giorni fa·0 comments

The Discoverable Evidence of AI-Assisted Software Porting

williamcotton.com
1 points·by williamcotton·14 giorni fa·0 comments

How a new DSL may survive in the era of LLMs

williamcotton.com
54 points·by williamcotton·30 giorni fa·19 comments

Show HN: Algraf, block-scoped, algebraic grammar-of-graphics DSL

2 points·by williamcotton·mese scorso·0 comments

Datafarm: Two Bespoke Languages, Two Runtimes

williamcotton.github.io
2 points·by williamcotton·mese scorso·0 comments

Show HN: Grammar of Graphics CLI tool made in Rust

github.com
1 points·by williamcotton·3 mesi fa·0 comments

Course Hero to Pay $75M to Post University in Copyright Metadata Case

usaherald.com
1 points·by williamcotton·4 mesi fa·0 comments

The Evolution of a DSL

williamcotton.com
1 points·by williamcotton·6 mesi fa·0 comments

The Web Pipe Programming Language

github.com
2 points·by williamcotton·6 mesi fa·1 comments

Show HN: Grammar of Graphics CLI tool made in Rust

github.com
4 points·by williamcotton·6 mesi fa·0 comments

Show HN: GraphQL DataLoader Pattern in Custom DSL

williamcotton.com
2 points·by williamcotton·6 mesi fa·0 comments

comments

williamcotton
·ieri·discuss
I’ve had good luck with this approach:

https://github.com/williamcotton/algraf/tree/main/docs

There’s also some tests in place to make sure some things from the master spec are up to date, eg, error codes.
williamcotton
·14 giorni fa·discuss
Funny enough, I just published this blog post yesterday:

The Discoverable Evidence of AI-Assisted Software Porting

https://williamcotton.com/articles/the-discoverable-evidence...
williamcotton
·17 giorni fa·discuss
The plotting aspect of this seems very similar to:

https://opensource.posit.co/blog/2026-04-20_ggsql_alpha_rele...
williamcotton
·18 giorni fa·discuss
A big part of the motivation was that something like this...

  $ which ggplot
  ggplot () {
          if [[ "$1" == "-f" ]]
          then
                  shift
                  rush run --library tidyverse "$(cat "$1")" -
          else
                  rush run --library tidyverse "$@" -
          fi
  }

  $ echo "one,two,three\n1,2,3\n4,5,6\n,7,8,9" | ggplot 'ggplot(df, aes(one, two)) + geom_col() + theme_minimal()' | imgcat
...is just very slow. Booting R just to run ggplot2 was not cutting it compared to a custom DSL written in Rust!

BTW, that "R on the command line" tool was inspired by:

https://datascienceatthecommandline.com
williamcotton
·18 giorni fa·discuss
I really like to build things that build other things!
williamcotton
·18 giorni fa·discuss
I've always liked the ggplot2 and the Grammar of Graphics approach to plotting so much so that I wrote my own DSL based on it - it is standalone, written in Rust, has WASM bindings (as you can see on the website) and more:

https://williamcotton.github.io/algraf

It pairs well with a related data translation DSL:

https://williamcotton.github.io/pdl

And you can see the two working together here:

https://williamcotton.github.io/datafarm-studio

There's LSPs for both, LSP clients for VS Code, and even language diagnostics for standalone Monaco editors in the browser.

Of note is that the same language diagnostics are exposed via the WASM as via the LSP interface allowing for the same friendly red squiggles to look and work the same in both your browser with Monaco and your editor with the LSP!
williamcotton
·26 giorni fa·discuss
In the last few weeks I've been working on a couple of custom data transformation and chart visualization DSLs that pair well together, as you can see here:

https://williamcotton.github.io/datafarm-studio/

One of the DSLs is:

https://williamcotton.github.io/pdl/

The other is:

https://williamcotton.github.io/algraf/

Full LSP that is built into the binaries and compile to CLI and WASM. Full LSP support in the Monaco text editor npm packages that use the same static analysis crate as the VS Code LSP client.

Native GIS with GeoJSON and Shapefile support for both languages.
williamcotton
·29 giorni fa·discuss
>So really, if you want to do something you'd normally use a DSL for, you should be talking to your AI, and telling the AI to encode it into computer-speak. Binary files, libraries, programs, composeable piped applications. The AI can take what you think and turn it into a regular old computer program, just as easy as you would write a DSL. But you don't need a DSL to do this; the AI can already program.

I use LLMs to write DSLs that I write all the time! What else is an LLM doing when it is stringing together a bash pipeline than coordinating a number of DSLs? jq is what, 15 years old? I see LLMs using it all the time. Who knows, maybe there are a few more tools that have yet to be made that will further bridge the expressivity gap between human language and computers.
williamcotton
·mese scorso·discuss
[dead]
williamcotton
·mese scorso·discuss
[flagged]
williamcotton
·mese scorso·discuss
Legibility has a time and place, for example, global health data around pandemics.
williamcotton
·mese scorso·discuss
Well what if you take on an extremely ambitious project like writing a programming language complete with DAP step debugging, a full LSP, etc, etc?

That takes a lot of quality time to just figure out the right syntax and semantics, let alone having to figure out how all of these complex pieces fit together!
williamcotton
·2 mesi fa·discuss
> However, the process was far more important than the product (again!). Not every whimsy needs to become a reality.

I mean, I get it, there's different kinds of people out there with different motivations, goals, spare time, etc.

But there's also a process of product design that I think the author is overlooking.

Lately I've been working and iterating on a number of DSLs, projects that might be a total waste of my time because they end up being poorly conceived or not very useful compared to a general purpose language!

I'm also working on a video game that is basically Magic: The Gathering meets StarCraft with Civilization style hex-grid conflict. It could be a total bust and entirely no fun to play (it's hard to tell if it's fun by itself because I enjoy working on the game while testing out the play patterns). It would suck to spend a couple of years on this if it's no good.

I very much enjoy the process of trying to figure out the best syntax and semantics for a new DSL or the process of iterating on gameplay elements when working on a game. The destination is also less important. I don't really expect anyone to use my DSLs or play my video games. I'm ultimately doing it for my own enjoyment.

Saying this, I am interested in the overall architecture and I've definitely learned from my mistakes, especially with creating DSLs. Like, having a TypeScript language server with a Rust runtime has some issues. It's kind of better to build the language server into the runtime so you're not maintaining multiple parsers, and depending on the language features, an additional pseudo-runtime in the language server.
williamcotton
·3 mesi fa·discuss
> It all makes a strong case for universal grammar, IMO.

What about through the lens of the Norvig-Chomsky debate?
williamcotton
·3 mesi fa·discuss
One-shot converted my game from a 2D board to a 3D board along with all entities and animations. Sold!

https://github.com/williamcotton/space-trader/commit/0859c65...
williamcotton
·3 mesi fa·discuss
Space Trader!

Imagine mixing Magic: The Gathering, StarCraft and Civilization’s hex grid combat.

There’s multiplayer but I haven’t put the server anywhere yet.

Check out the introduction here:

https://github.com/williamcotton/space-trader/blob/main/docs...

Clone the repo:

  npm install
  npm run dev
There’s maybe a couple of other games called Space Trader so if anyone has any suggestions for a new name, I’m all ears!
williamcotton
·3 mesi fa·discuss
So what's the legal issue here?

How does the chardet achieve this? Explain in detail, with shortened code excerpts from the library itself if helpful to the explanation.

The prompt is explicitly requesting the source!
williamcotton
·3 mesi fa·discuss
"Just a few weeks ago a SOTA model was shown to reproduce non-trivial amounts of licensed code[0]."

That LLM response is describing a specific project with full attribution.
williamcotton
·3 mesi fa·discuss
[dead]
williamcotton
·3 mesi fa·discuss
What about trade secrets, breach of contract, etc, etc?