4 ms·
Ideas for funding further development of a domain-specific language (DSL)?
During the last ~10-ish years, I have been working (as a continuous side-project) on developing a domain-specific programming language, focused on making it easier to write a certain class of fluid dynamics simulations.
After a 8-month sabbatical, I am finally getting close to the point where I have a decent compiler for this language. Even at this earlier stage, the compiler is a joy to use (and I am trying to do as much "dog-fooding" as possible, in parallel to improving the compiler).
I want this to be an open-source project but, at the same time, I would like to find out ways to keep working on it and sustain myself and my family.
Target audience: By my estimates, this new language may be useful (for research, or at least for teaching) for ~1000 people working in this field (assuming that they will accept some small amount of learning, of course). It might also be relevant to a few HPC hardware-vendors, because I am generating accelerator-aware code from one of the backends -- I am fine if they use my code to showcase their hardware, as long as they give something back :). It might also be interesting for people who are just curious about this field.
So, my questions are:
(1) What are some possible revenue-streams for supporting the continuous development of a programming language, while keeping it open-source? I think I demonstrated by now that I am willing to work on this for free. However, it would be nice not to worry also about a "real" job.
The open-source part is quite important, because (more than funding) I want people to use this language. Also, I hope to attract some developers for things like IDE integration, making amazing (Elm-style) error-messages, etc. I am also doing my best to cover these areas, but worrying about these things is no longer a one-man job.
(2) Which open-source license would you recommend in this case?
P.S: I plan to submit another message here soon, to announce the official release.
- JoeyBananas 5y agoThe GPL license is a way of forcing potential commercial users of your compiler to "give something back."
- xrs_hpc 5y agoThank you for the suggestion. GPL was, indeed, my first choice, but I have a (maybe inaccurate) impression that commercial users tend to dismiss software based on it, even for GPLv2, unless it is a project with a lot of traction, such as the Linux kernel. Currently, my favorite is the Mozilla Public License (MPL) 2.0, discussed e.g. here: https://fossa.com/blog/open-source-software-licenses-101-mozilla-public-license-2-0/ https://fossa.com/blog/open-source-software-licenses-101-moz... Any opinions are welcome, thank you again :).
- stevenalowe 5y agoUse it to solve a domain problem and sell that
- xrs_hpc 5y agoGood point, thank you! I was also thinking of bundling some advanced examples (with in-depth, step-by-step explanations) in a video course. Do you think this might sell? NOTE: I did my best to prepare a decent documentation website for the users, so I am not planning to hide anything from them. But this idea of creating advanced problem-specific applications doesn't sound bad.