-
Question: using F# as a base language instead of a custom ML dialect might make adoption easier? or what are the advantages of using a custom dialect? Thanks for this amazing project! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Most languages are designed for the kind of offline development that's common: they have compilers and build systems and package managers that download libraries onto a filesystem, and to deploy them you bundle them with their dependencies, webserver and a runtime into a container and put then on a cloud server somehow and connect to a DB. So the path from typing a keystroke is very very far from being in production. So that means in practice that all languages are designed for a specific niche, and no language was designed for the darklang niche (trace-driven/deployless web backends). That niche means we need features like:
So F# for example was designed for the niche of a general purpose functional language in the .NET ecosystem. Which means it has some great features such as C#/CIL integration, but brings with it a build system, package system, and runtime that make it inappropriate for our niche. A similar but targeted argument could be made about Python, Rails, Node, Go, Rust, etc. Now we could just do something like pretend it's F#, by making the system closer and renaming some libraries. But then people would wonder why their existing code doesn't work, why they can't reuse libraries, why they can't integrate with C# code, etc. |
Beta Was this translation helpful? Give feedback.
Most languages are designed for the kind of offline development that's common: they have compilers and build systems and package managers that download libraries onto a filesystem, and to deploy them you bundle them with their dependencies, webserver and a runtime into a container and put then on a cloud server somehow and connect to a DB. So the path from typing a keystroke is very very far from being in production.
So that means in practice that all languages are designed for a specific niche, and no language was designed for the darklang niche (trace-driven/deployless web backends). That niche means we need features like: