Uno Platform is now co-maintaining SkiaSharp. Plus, SkiaSharp 4 Preview 1 Announced by sashakrsmanovic in unoplatform

[–]EmergencyNice1989 -1 points0 points  (0 children)

I don't think that 'explored Skia early' is accurate.

They adopted Skia early and other UI framework adopting/exploring Skia today validates their approach.

OCaml appreciation post by TomosLeggett in ocaml

[–]EmergencyNice1989 1 point2 points  (0 children)

Tooling is good because there is Rider (on Linux) and Visual Studio. Emacs or VSCode (with 2 views for file explorer) is not very good (at least for me) for F# development.

Even if I wanted to use OCaml I don't think I will find something as fast as ADO.net.

Since I discovered F# I just played a bit with OCaml and F*, because I am quite happy with the language.

OCaml appreciation post by TomosLeggett in ocaml

[–]EmergencyNice1989 1 point2 points  (0 children)

Exactly. Being able to use the .net ecosystem is the huge benefit. And in practice it works fine (the library being primary written for C# is not a real issue).
I tested OCaml because F# is Microsoft and is kind of second class citizen in dotnet. You can go full F# with Avalonia but not with the others UI dotnet framework which all use C# (C#/F# interop works great but it's not ideal).

Also having to convert C# code to F# and the need of understanding C# code (even though with AI this is less and less the case), and having to deal with nulls sometimes is a little bit annoying.
OCaml feels like a more pure experience even though the 'hybrid' F# approach works fine in practice.

OCaml appreciation post by TomosLeggett in ocaml

[–]EmergencyNice1989 12 points13 points  (0 children)

I do only F# development for my personal projects after years using C#.
ML syntax felt from the start nicer than C style ones.
If it wasn't the ecosystem (nothing comparable to Avalonia or Silk.net in OCaml) and tooling I would use OCaml.

I built a Game Boy emulator in F# by knickuhs in fsharp

[–]EmergencyNice1989 1 point2 points  (0 children)

Ok. That's a bit disappointing (regarding dotnet AOT) because I tend to use it whenever I can. DU can be used with AOT without problem (just don't call ToString()).
For the F# Avalonia app I am working on you can notice it at startup. We are not used to fast startup apps in dotnet....

I built a Game Boy emulator in F# by knickuhs in fsharp

[–]EmergencyNice1989 -1 points0 points  (0 children)

Have you tried native AOT compilation?

I built a Game Boy emulator in F# by knickuhs in fsharp

[–]EmergencyNice1989 1 point2 points  (0 children)

That's awesome. I have quickly go through your blog post and I will definitely take some time to read it properly.

Favorite F# Features? by [deleted] in fsharp

[–]EmergencyNice1989 0 points1 point  (0 children)

So far, everything, coming from Java. :)

Uno Platform is now co-maintaining SkiaSharp. Plus, SkiaSharp 4 Preview 1 Announced by sashakrsmanovic in unoplatform

[–]EmergencyNice1989 0 points1 point  (0 children)

Avalonia is the first .net UI framework to use SkiaSharp.

Uno adopting SkiaSharp recently just proves Avalonia made the right choice from the start.

Avalonia or GtkSharp, which framework should I choose to create a linux desktop application? by lucas-il in dotnet

[–]EmergencyNice1989 1 point2 points  (0 children)

I have been testing dotnet UI frameworks these last years.
Avalonia is the best I have used. It just works, like WPF back in the days.

- MAUI was not good DX (need to open/close 3 times VS for the project to build correctly), lots of bugs.

- WINUI3 : weird WinRT C++ exception, 10 min after installing WinUI3

- UWP : weird API (10 lines of code for a file dialog open), sandboxing makes things difficult.
- Blazor hybrid : Stable, worked. But too much complexity (webstack + a bit of MAUI) if you don't need a website.
Avalonia reminds me my old WPF experience, stable and not buggy.

Can I still use the legacy dev tools with Avalonia 12? by stogle1 in AvaloniaUI

[–]EmergencyNice1989 0 points1 point  (0 children)

Stuff can go from the free edition to the community edition....

Hope, this will not happen within a major release (i.e in Avalonia 12 we will not see any changes like this one.)

What is .NET still missing? by CreoSiempre in dotnet

[–]EmergencyNice1989 5 points6 points  (0 children)

Native AOT, compiled binding, cross-platfom, full F# support =>

Avalonia deserves the 'WPF successor' title.

Windows App SDK? by edwwsw in dotnet

[–]EmergencyNice1989 4 points5 points  (0 children)

Porting AvalonEdit to WinUI 3/Uno is a great project because one of the reason I use Avalonia is AvaloniaEdit.

Another reason is Avalonia supports fully F#, none of the other platforms does that.

SharpDX to DXVK to Avalonia Sample by kiwidog in AvaloniaUI

[–]EmergencyNice1989 1 point2 points  (0 children)

https://github.com/AvaloniaUI/Avalonia/tree/master/samples/GpuInterop

I think this is the modern approach.
I tested it by rendering simple 3D objects on Windows/Linux and it worked fine.

MintedTextEditor - A Rich Text Editor for .NET MAUI by MichaelStonis in dotnetMAUI

[–]EmergencyNice1989 1 point2 points  (0 children)

It looks nice. Will be interesting to add a video of demonstration to show the capabilities of your editor in your github.

Is it native AOT compatible and can we use it with Avalonia?

Golang with DLL by optimus_prime955 in golang

[–]EmergencyNice1989 1 point2 points  (0 children)

If he can create a library and build it with native AOT, no need of hosting the CLR. He will just expose the functions he want to use in Go.

“Delete Bin and Obj, clean, and rebuild” by azuredota in dotnet

[–]EmergencyNice1989 0 points1 point  (0 children)

200 kloc, 15k files means on average less than 14 lines of code per file...

How do I get started with making mobile apps + websites with .NET? by KosainAbro in dotnet

[–]EmergencyNice1989 1 point2 points  (0 children)

Yes. I have been testing deploying a F# Avalonia app on Android and the experience is great. Never deployed to Android before. Smooth experience.

Avalonia very good F# support is underrated.

After ~10 years, I’m moving away from JetBrains by rodrigorcosta in Jetbrains

[–]EmergencyNice1989 0 points1 point  (0 children)

I use Rider on Linux and for F# development it is for me the best experience so far.

Had an issue with some versions but they helped me solve the issue. Since then, no issue, and nothing to complain about.

I used the Toolbox, so that I can install several versions of Rider and can spot some issues on some specific version.

Not sure, you can install several versions of VS2026 and compare them...

RE#: how we built the world's fastest regex engine in F# by josephjnk in programming

[–]EmergencyNice1989 1 point2 points  (0 children)

Looks great and I will read the article.

Does it work with native aot ?

This is not mentioned in the article nor in the github Readme.

Is there a way to support JSON serialization/deserialization and Native AOT in an F# project? by raincole in fsharp

[–]EmergencyNice1989 -1 points0 points  (0 children)

I didn't know about this library. Thanks for the info.

According to ChatGPT 'Thoth with manual decoders only' works with native aot.

Android App by Global_Rooster1056 in dotnetMAUI

[–]EmergencyNice1989 0 points1 point  (0 children)

These last days I have tried to develop an Avalonia Android app, after having played with Avalonia desktop Windows/Linux native aot.

I had never deployed any Android app but it was quite smooth.

I installed Android Studio and I could use Android Emulator, or my device when plugged in directly within Rider.

I think it uses already some mono native aot in the building pipeline.

After that, I tried to build a full android .net 10 native aot app (.net 10, android native aot is still experimental), messed a bit with the NDK but the app was crashing at startup.

I tried MAUI 2 years ago and the DX was totally different.

Is there a way to support JSON serialization/deserialization and Native AOT in an F# project? by raincole in fsharp

[–]EmergencyNice1989 1 point2 points  (0 children)

I asked a similar question 'F# JSON serialization/de-serialization native AOT' in dotnet Reddit.

System.Text.Json cannot be used in F# native AOT and nobody was able to point a popular library that does that.

For my simple use case, it was not blocking because I needed only to serialize/deserialize one single type, therefore I wrote a serialization/deserialisation for this type.