[isabelle-dev] New Code Generator Target: F#
Achim D. Brucker
adbrucker at 0x5f.org
Sun Aug 28 23:49:28 CEST 2022
On Fri, Aug 26, 2022 at 11:58:17PM +0200, Makarius wrote:
>
> Thanks. From your explanations, I have learned many things about F# and dotnet.
>
> Can you also say what your applications are?
Hard to summarize in a few sentences. My original interest (way back in 2007, when
fiddling with mono was still required on Linux) was driven by the need to interact,
from Isabelle generated code, with Microsoft APIs for which nice packages were only
available on dotnet. Access to Microsoft tooling and APIs is still a big motivation.
England, at least the South West, seems to be in a strong grip by Microsoft, i.e.,
the Uni IT and also local project partners (mostly SMEs, which is likely also a
contributing factor) essentially require that one can interact with dotnet for joint
projects. Positively, there is also a quite strong community of F# developers/companies
(e.g., using the SAFE stack https://safe-stack.github.io/ that allows developing web
applications type-safe in F#) in England ...
Personally, it's more the "I can program in ML and have easy access to all the shiny
frameworks (via https://www.nuget.org/), a reasonable well working package manager/build
systems, and IDE support (e.g., Ionice in VSCode)" that makes it an attractive platform.
A lot of the problems I solve with F# these days are "mid-size" data processing/conversions
tasks (that other people might solve in Python).
The combination of having a strongly typed programming language with pattern matches
and also having access to databases, type providers for web scraping, and parser/validators
for many formats available as libraries is a nice sweet spot. Overall, very similar
to Scala on the Java platform. Also very similar to Scala, F# also has the "dualism" of
larger compiled programs and scripts that can directly be executed.
While there are good web-stacks for F# (that essentially require nearly no JavaScript
programming), good cross-platform UIs for desktop apps did essentially not exists
(respectively, the ones that did exist were mostly generating Node.js/Electron
applications). This seems to change right now - also Microsoft seems to see a
need for a cross-platform UI framework for dotnet.
> Dotnet was once positioned as the next big thing, but recently we have seen
> more excitement elsewhere (even by Microsoft): e.g. Node.js/Electron.
It's clearly not as hyped as node.js/Electron. On the other hand, upgrades of
project across major versions of the underlying framework have been less painless
for F# than for the few node.js projects I am involved with ;-).
Cheers,
Achim
More information about the isabelle-dev
mailing list