Hacker News new | ask | show | jobs
by JohnBerea 1754 days ago
Why is this a new programming language, instead of just a library for existing languages?
2 comments

Maybe people who want to program radio shows mostly don’t know a general-purpose programming language, and making them learn one would be overkill?
I would argue that the learning curve for learning a programming language and a well-written purpose-built library versus a domain specific language is virtually the same. If the target is someone that has zero experience programming, their process will likely involve a lot of cookbook copy-paste at first, then tweaking the recipes, and then once they have some confidence of how the steps fit together and some inferences about the causal model behind it, they may start to piece together their own recipes.

A lot of complex domain specific libraries are practically languages all their own even though they are just sets of APIs inside a general purpose language (think OpenGL, CV libraries, ML and scientific Python libs, etc.). Knowing Python doesn't put you at too much of an advantage over someone who doesn't when it comes to applying PyTorch. The advantage of a library is that the learner can eventually expand beyond its capabilities and compound some of their investment and capability versus a DSL that puts you at the mercy of what the author is willing to add / implement.

DSLs seem to come from a mindset that someone won't have to learn much in order to be dangerous, which is almost never the case. The bigger leap seems to be between things like:

- GUIs that are fully guided / wizard type setups

- GUIs that are somewhat drag and drop (can have similar challenges to free-form text, but at least you know what tools are available to you)

- Text that is guided (e.g. a configuration file that is completely filled in, but has a lot of comments and can be tweaked

- Free-form text wherein you are starting from a blank canvas and need to have some ideas in your head about what is possible and what tools you have at your disposal (programming)

I notice it's written in OCaml, so maybe you can use it as a library from OCaml?