For elixir, well, if you're willing to relocate for south west France, DM me ;)
For elixir, well, if you're willing to relocate for south west France, DM me ;)
Is this just because people forget which platform they’re on? Is it because they don’t remember what’s in their profile? Or is there some other way to DM people that I don’t know about?
Parent is fairly trivial to contact if you can use Google.
Poster’s Web site has no official contact info. Yes, I’m sure I could keep digging and find a way but I don’t consider that “fairly trivial”.
that itself is a huge turn off for many developers who don't speak French. You will face discrimination even if you speak fairly fluent level. Not to mention the insane income/corporate tax brackets.
Unless you operate directly with the French market, there is little to not reason to move there to do a startup or start a career there.
Many young French citizens have left it and they are not coming back. Brain drain is very real there.
Are you speaking from personal experience? Just curious because I am aware of this reputation but haven’t experienced it directly myself.
I have zero trouble developing on linux.
Building GUI or non-GUI software works fine. I use Rider and work on web systems, a handful of scrapers that feed some data I collect, as well as various small GUI systems.
I think F# might have _the highest number of viable ways_ to build a GUI application if that's what you're looking for.
You can go the fable (F# -> JS transpiler) route and use any of the js tools (electron, nodegui, etc). The popular one's (react, preact, svelte, etc) have type definitions that folks have already written.
F# works with most of the dotnet gui libraries just fine, though I don't know for sure the story about winui, but from people I know working on production systems using it, they recommend to avoid it. So you've still got WPF, etc.
For the newer cross-plat stuff, there is Avalonia, Uno Platform, Xamarin (with the natives) or the newer version MAUI.
---
The thing here is that there aren't really limitations to almost all of the things I've listed above. Transpilation targets work fine, as do the dotnet targets. Almost every one of these also has "Elmish" frameworks (Functional Reactive Programming state management) suited for the purpose:
* React -> Elmish + Feliz * Avalonia -> Avalonia.FuncUI * MAUI -> Fabulous etc
---
I've never felt constrained building GUIs in F#, other than some of the dumpster fire that was Xamarin.Forms and the Xamarin build tools (native targets never gave me any problems that I can remember).
I took a partial Fabulous 1.0 (Xamarin Forms) application that I had only worked a couple days on, and out of anger with Xamarin build tools lifted and shifted to a react-native application. Almost my entire elmish (view-logic layer) was preserved, and I just had to change the view elements out from Xamarin.Forms elements to React Native elements.
---
I don't work with F# too much in an official capacity these days, but it's a decent tool to have as a default.
To give a high-level overview of what we are doing, we call a series of APIs which can provide current-state metadata about a SaaS platform. We poll those APIs on a schedule and diff the results over time, providing to our customers a view of this change over time. So our work is to schedule these API calls, wait for the results, persist the results to storage, and then identify the deltas. Once this is done, we load into our presentation layer for customers to interact with.
We run an independent process per customer and use OS permissions to isolate these from one another, and plan to containerize these processes for further isolation. Customers each get a local ZFS dataset and a separate blob storage container. Isolation is a big deal for us, as the permissions we require to call these APIs for our customers end up being a de-facto global admin (this is a limitation of the SaaS vendor, not us). The dataset-per-customer model allows us to lose a single (and backed up, so not really single) encryption keyfile to forget everything sensitive from that customer.
This last paragraph only emphasizes that the language is not the most significant consideration for our work. We could probably orchestrate the API calls as effectively in shell pipelines. The diffing process is a bit hairier, and my current focus.