I found this elm-inspired language on my research on vibe coded languages:
I know there have been various attempts to recreate other elm-lang-like languages and I have also personally updated the elm-compiler with claude code to produce optimized code and to tweak the language itself.
{ model | value.sub.sub.sub = 1 }
-- or
{ model | value.sub.sub.sub <- \x -> x + 1
-- or
{ model | value.sub.{
value = 1, value = 33
}}
in order to reduce boilerplate code … maybe this could be an extension for the next version of elm ![]()
However #1, AI makes it quite simple to reason about language concepts instead of dealing with compiler and syntax details. If you check some other resources of the sky-language, the developer seems to be right. When AI becomes a developer it is better to use languages that give you more guarantees and better compile time errors. Not a Python fix that breaks something else somewhere. Elm could become more dominant, if it would also compile to nodejs with access to the file system …
However #2, what is also interesting about the sky-language is, that it does not deal with the idea of “defining” a single program that runs on one machine, where you have to hardwire a communication a database, program the database, etc. It is more about infrastructure. So what I was thinking about, was if we could reinterpret programming similarly. If I think about a program, then distribution is particularly of interest for me, but there is lots of stuff and effort that I have to program in order to establish a communication between nodes, how data gets serialized, synchronized, etc. I was just thinking, could something like this, not also be handled by an elm-like language or by the next version of elm, since there is a new release
I was thinking about something like this, if you define a chat app:
type alias Model =
{ settings: Persistent Settings
, editor: Shared Eventual (Lww String)
, users : Shared Eventual (AddWinsSet UserId)
, messages :
SharedPersistent Causal
(Sequence MessageId Message)
}
During compilation, you can specify one or multiple communication options and the compiler chooses one that fits to your definitions about consistency, etc. Thus, programming is still about single programs with a “single-threaded logic”, but the result would be distributed with guarantees.
I am just thinking out loud ![]()