ionide-vscode-fsharp
Feliz
Our great sponsors
ionide-vscode-fsharp | Feliz | |
---|---|---|
16 | 20 | |
836 | 519 | |
0.4% | - | |
8.7 | 6.1 | |
14 days ago | 2 months ago | |
F# | F# | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ionide-vscode-fsharp
-
Is there a modern IDE with good support for OCaml?
I'd love to see something similar to Microsoft's Ionide project or for JetBrains to invest in IDE support.
-
Why OCaml?
> Pretty good, https://ionide.io
It pains me to admit it because I really like F# but, with due respect to the developers, Ionide and its related projects are the most unstable toolchain I've ever used.
Spend half a day reloading the editor because the extension keeps hanging on non-trivial MSBuild only to discover that the formatter has truncated in half one of the files you worked on due to a soundness bug. (OCaml's editor support, in contrast, is quite stable.)
Rider is the best editing experience I've had with F#, by far.
The DarkLang project was originally written in OCaml and was recently ported to F# (https://blog.darklang.com/new-backend-fsharp/)
> How much work would it take in term of code rewriting?
There are definitely code changes required, but I think those are quite manageable as concepts mostly map 1:1 from OCaml to F#.
> can it compile to native code?
Yup, https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...
> how good is the language support experience in vscode?
Pretty good, https://ionide.io
(but I personally prefer JetBrains Rider)
> any reason not to do it?
Compilation speed, some OCaml language features?
-
How to get a non-broken F# development experience?
I know it's a recurring topic but it's reaching a high level of pain *again* (see NET SDK 6.0.400 and 7.0.100 previews don't currently work with Ionide).
-
The Case for C# and .NET
I don't disagree but it owes a lot of that to OCaml. That said, since we're talking about C#, F# and VS Code I'm gonna talk about a pet peeve I have. If you open a C# project in VS Code when the "Ionide" (basically the F# plugin for Code) is installed then Ionide thinks it's a F# project and will open some F# stuff after a few seconds (or prompt you to setup some F# stuff in its gitignore). The root cause has been identified (plugin activates when it sees a ".sln" file), a PR have been opened and rejected with no mention as to why (https://github.com/ionide/ionide-vscode-fsharp/pull/1401) and the developers behind it are frustratingly non-communicative about it, closing issues about it (https://github.com/ionide/ionide-vscode-fsharp/issues/1701). Usual rules about OSS maintainers apply, they don't technically owe us users anything ... but man it feels like we're being trolled by now :D
-
Rust Is Hard, Or: The Misery of Mainstream Programming
F# doesn't have a hard dependency on vscode. Resources from MS will obviously encourage using MS tooling, but ionide [1] is really good. The lsp+neovim workflow is not as good but getting better.
-
Perf Avore: A Rule Based CrossPlatform Performance Based Monitoring and Analysis Tool
Perf Avore was developed on VSCode using the ionide plugin and dotnet cli.
-
A few newbie questions
I was on .Net 5 but same issue on 6. I tried the fix here- setting FSharp.dotnetRoot explicitly in settings.json and so far it seems better.
-
Web Scrapping with F#
Once we have our dependencies ready, we can start digging in with the code in VSCode using Ionide, Rider or Visual Studio.
Feliz
-
Exploring a foreign F# codebase
NOTE: You can try this with the Feliz codebase, which is larger and has multiple .fsproj files. But as you will find out, the project structure is laid out just like we've seen here.
-
What do people use for REST APIs and Web Development now?
Feliz to create react apps, the most mature option.
-
F(#)ront-end Experience like Re-Frame (clojure(script))?
The Feliz DSL https://zaid-ajaj.github.io/Feliz/ looks fairly similar to Reagent or there's Fable.Lit https://fable.io/Fable.Lit/ which is more like jsx in that you write the html directly, adding active components via interpolated string mechanisms. There is a VS Code add in that gives you html+css syntax highlighting and auto complete inside your F# files.
-
OCaml programmer with some noob F# ecosystem questions
Feliz is a DSL for React, and paired with Vite give a hot reload experience that's close to the same as JS/TS, even the React dev tools work fine. Nobody has a ready to go package/template up right now but there's little stopping you from creating a NextJS app.
-
"redesign" of my Terminal.Gui.Elmish Project
It means it's similar to the Feliz DSL used to build React web apps: https://zaid-ajaj.github.io/Feliz/
-
Exploring The F# Frontend Landscape
Feliz
-
Minimalistic fluent api in C# to create complex reactive Avalonia applications
I'm curious to see how this goes, F# seems to excel at these type of DSL's (e.g. Feliz, a react DSL is a joy), a big part thanks to type inference and list comprehensions which are a game changer for that pesky conditional rendering.
-
F# and WebAssembly
if you've ever used Feliz or Avalonia.FuncUI then this DSL will make you feel at home, it's less verbose than the original DSL and gives you basically the same benefits, in the case of Fun.Blazor is slightly less performant but it is a viable alternative
-
Fable is a compiler that brings F# into the JavaScript ecosystem
Along with Fable highly recommend a look at Feliz. A joy to work with and its ViewEngine can also be separately used w/ Giraffe if you enjoy the syntax:
-
Using lit-html with F#
In fable-land we have been using react historically by a few reasons either using fable-react or feliz the main one is that react's programming model (i.e. functional like style) is an awesome fit for F#
What are some alternatives?
fable-react - Fable bindings and helpers for React and React Native
elmish - Elm-like abstractions for F# apps
Fable: F# |> BABEL - F# to JavaScript, TypeScript, Python, Rust and Dart Compiler
Fable.Lit - Write Fable Elmish apps with Lit
awesome-fable-react-native - An awesome list about to use Fable with ReactNative 🧚♀️
playwright-dotnet - .NET version of the Playwright testing and automation library.
Sutil - Lightweight front-end framework for F# / Fable. No dependencies.
Avalonia.FuncUI - Develop cross-plattform GUI Applications using F# and Avalonia!
purescript - A strongly-typed language that compiles to JavaScript
proposal-pipeline-operator - A proposal for adding a useful pipe operator to JavaScript.
sutil-and-web-components
fs-components