Good things to say about FunScript:
- seems to be entirely unrestricted (I could not even locate a license file)
- has some very talented people hacking on it (but not as the day job)
Why would you be interested in WebSharper instead? The quick answer is that it actually gets used a lot more, and is known to work quite well on large projects (I will cite FPish and CloudSharper as the ones we have been using it on at IntelliFactory), there is a team working on it day-to-day, and you can get actual support. It has been in use longer and it might have more issues ironed out, and it definitely supports a larger portion of F# standard library out-of-the-box.
NOTE: Tomas pointed me to a FunScript way of doing the following in the comments. Jon Harrop sites problems with using
[<Inline "Math.sqrt($x)">] let sqrt (x: double) = sqrt x
That being said, I believe we have made quite a few mistakes in the past, including:
- hiding sources (it is open-source now)
- mismanaging the community - actually I am reading books now on how to facilitate an open-source project community better
- making it too hard to get started and not giving enough documentation
(presently we are writing manual chapters at our github repo) and preparing a website update
- trying to provide all library bindings ourselves - TypeScript is definitely a great idea and we will add support for it (have a working prototype for 0.8 but need to upgrade to latest TS - same as FunScript
- attempting to solve too many problems at once, and not focusing on important problems first. This leaving us with a large and somewhat difficult to change codebase
- some engineering mistakes in organizing code or designing APIs
If you feel like making more suggestions, please do..
People also typically bring up licensing and how the output code looks like as problems. I do not think those are show-stopper issues:
- License (AGPL) - it is actually free for open-source use. If you need to close your app, but cannot afford the listed license fees, just talk to us and we can work out a deal. Note that having this license might be annoying but it is essential for securing funding and commercial support for the project - for it to have a future.
I also privately think both WebSharper and FunScript make this fundamental mistake - using F# quotations. I think the future is simply not there. There is exciting stuff going on with projects such as ASM.js and Emscripten, and I strongly suspect the future successful project in this area will provide a much more compatible CLR implementation on top of JS, plus perhaps some specialized optimizations for functional code as F# produces. I have seen a few CLR-to-JS compilers, but am not sure which is the best today. I tried writing one myself and hope to come back to it, it certainly was challenging and interesting. The key is to stop thinking of such projects as source-to-source compilers and start treating JS for what it is, portable assembly.