Please describe your proposed solution.
Key Points
- This project will produce Wolfram Language code that is part of the ExternalEvaluate framework: <https://reference.wolfram.com/language/guide/ExternalInterpretedLanguageInterfaces.html>
- Here is an example of a client library, which has links to GitHub and other relevant pages for code review: <https://reference.wolfram.com/language/WolframClientForPython>
ExternalEvaluate:
A powerful feature of the Wolfram Language is that it allows users to evaluate code in other programming languages, returning the results to a Wolfram Notebook. We have implemented this feature for several languages, including Python, NodeJS, Julia and Ruby.
Client Library for Haskell:
The Wolfram Client Library for Haskell will allow Haskell programs to directly integrate Wolfram Language capabilities. Connect either to a local Wolfram Engine or to the Wolfram Cloud (or a Wolfram Enterprise Private Cloud).
Implementing these two features for Haskell should be a relatively straightforward project, but Wolfram does not have the experience with Haskell, so we will be working with Tweag on this project.
Supplemental Information:
<https://wolfr.am/wolfram-language-haskell>
Please describe how your proposed solution will address the Challenge that you have submitted it in.
The Developer Ecosystem challenge has the following information about Cardano attracting developers: “Cardano attracts high-calibre Developers and developers have ample resources to work on platforms that suit their interests:”
- Developer productivity: IDE's, scripts to automate stuff.
Integrating Haskell into the Wolfram Language will help provide additional tools for Haskell development.
Once we have an initial Haskell integration, we can focus on providing additional resources to use Haskell within Wolfram Notebooks as an IDE environment.
In the future, this Haskell – Wolfram Language integration will allow us to explore working with Plutus.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
The main challenge is the Haskell portion of the project; however, we will work with Tweag to execute that portion of the project and reduce project risks.