Ask HN: Turning a research paper into a startup, but it's written in Matlab
The problem is it's written in Matlab. I don't know much about startup business and I have zero experience in deploying Matlab code to the web so my major concern is the license cost and developers available to hire.
I can come up with three ways after a quick look at Matlab's portfolio:
1. Run Matlab Production Server on AWS as a microservice. But the licensing cost of Matlab Production Server is "contact us". Scary.
2. Use Matlab Compiler to convert it to another language. I worry about runtime dependencies of the compiled output and there might be a hidden pitfall when deploying it.
3. Rewrite it in Python/numpy. We are fine with rewriting it and it might be easier to get developers, but we might run into a reproducibility problem.
Does anyone have a similar path? What is the best practice to deploy a matlab research on the web?
Thank you in advance.
[1]: https://www.featool.com
As for Python, it is also a bet and compromise with the following specific criteria:
- Fast and easy to develop in (as I as a bootstrapped solo-dev have to do everything by myself)
- Reasonably simple to translate to from Matlab code
- Good and easy to use client side GUI functionality
- Easy for other users to use (as I want as many users a possible to use the functionality and potentially be able to write extensions themselves)
- 3D Visualization libraries (VTK, ParaView)
with this in mind my choices were:
1) Python
2) Julia
3) (Object) Pascal
4) Web stack (Javascript + webassembly)
I almost initially chose (Lazarus free) Pascal due to its IDE, fast compilation, and easy deployment but eventually I found the fixed pixel based GUI placement not ideal (although there are probably workarounds for that). Although using a web stack would be ideal from a user and sales perspective (with no installation), my impression of web programming is "messy" and I'm afraid that for CAE simulation apps this approach would freeze the computers completely (Electron!). Although I initially thought Julia would be ideal as the syntax was very close to Matlab, it seems to become more and more complex as it matures and my impression is that there still isn't a good way to deliver (pre-)compiled client side apps which is my requirement. So all in all I felt that Python probably the best compromise. It is still a bet, but with the "Matlab engine" you can call Matlab in the background so port bit by bit. In your case though with a (web) server-client app you might fare better with Matlab/Octave.
Tech-stack aside, I've found the hardest part is the non-techy bits, especially sales, marketing etc. which I still haven't figured out.
Best of luck!
https://www.mathworks.com/help/dsp/ug/generate-c-code-from-m...
Build your website however you wish, then call the C code (e.g. C# P/Invoke interop if you use .NET, Python CFFI, FastCGI, etc.)
Starting a business is scary. Contact them, figure out the cost, and figure out if it's worth it to rewrite it in a freely licensed language.
You can also go self-hosted while you are in customer acquisition mode?
If the cost of a software license is scary, then I can assure you labor costs are much worse. You can rewrite now or rewrite later, but hiring devs is a ways away :)