Remix.run Logo
prmph 3 hours ago

I want a language with:

- the memory, thread safety, and build system of Rust

- the elegant syntax of OCaml and Haskell

- the expressive type system of Haskell and TypeScript

- the directness and simplicity of JavaScript

Think coding agents can help here?

artpar 10 minutes ago | parent | next [-]

I tried that over a month

except '- the directness and simplicity of JavaScript'

https://github.com/artpar/guage

But somehow the language feels so foreign. it can obviously do hello world, but I don't have a real use case

PS: the "Pure symbols only" is no longer true, most symbols have been converted to English names

and, the "days" you see there in the markdowns are "claude code sessions", not actual days

embedding-shape an hour ago | parent | prev | next [-]

All of those things have been built before, you're even referencing existing languages that have those "features". Parent seemingly was asking for people to build something completely novel, that doesn't have any FOSS code available that done that thing before.

And yes, LLMs/agents can help you do it for sure, I'm currently building the lisp of my dreams in my freetime, and already have compiler, interpreter, UI framework and some other things already done in a way I'm happy with.

viraptor an hour ago | parent | prev [-]

You have conflicting requirements there - expressive type systems are not direct and simple. And elegant is subjective.

But seriously though: have you tried to see how far you can get with the design right now? You can start iterating on it already, even if the implementation will lag.

prmph an hour ago | parent [-]

I do not have conflicting requirements. Expressive type system ARE direct and simple.

Expressive power is the ratio how strongly/clearly you can encode invariants to with complex and ceremonious the syntax of it needs to be.

See how JS, a language usually seen as a middling/mediocre language, can distill the basic good parts of OOP into very direct and clear idioms? I can just create an object literal and embed simple methods on them that receive the "this" pointer and use it. The constructor would be just a regular function. None of the cruft of standard OOP.

See how you define an enumerable union in TypeScript? Very simple. And yet I can think of many major languages that do not have this, certainly not with a lot of ceremony and complexity.

And I can go on.