virt-v2v
elm-ts
virt-v2v | elm-ts | |
---|---|---|
4 | 2 | |
69 | 301 | |
- | - | |
8.7 | 0.0 | |
6 days ago | over 1 year ago | |
OCaml | TypeScript | |
GNU General Public License v3.0 only | 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.
virt-v2v
-
Two Years of OCaml
In virt-v2v we eventually enforced that every module file also has a corresponding interface file: https://github.com/libguestfs/virt-v2v/blob/master/check-mli...
-
Why and How We Retired Elm at Culture Amp
You can look at the project yourself: https://github.com/libguestfs/virt-v2v I've been writing OCaml for 20+ years and C for 40 years.
-
Multicore OCaml: April 2021
I develop in OCaml from time to time, and it's pretty practical. Separate compilation, makes small-ish binaries that most people wouldn't know weren't written in C/C++, easily call out to C if you need to. We steer clear of the more complex language features like functors because they confuse most programmers.
Here's an example of one very widely used production application: https://github.com/libguestfs/virt-v2v/tree/master/v2v
-
Traversing nested data-structures in various languages
XPath is the real killer feature for XML. I don't think it's possible to use it in this particular example, but in the more generally useful cases where you want to pull (eg) all subnodes with key matching a particular string, XPath is great.
Here's it being used in real code (search for "xpath_"):
https://github.com/libguestfs/virt-v2v/blob/master/v2v/parse...
https://github.com/libguestfs/virt-v2v/blob/master/v2v/parse...
elm-ts
-
Why and How We Retired Elm at Culture Amp
> By that time, TypeScript had grown to be capable enough (and developer-friendly enough) to balance much of what sold us on Elm originally: a usable type system, good-enough error messages, etc. React had baked in some more useful state management primitives that roughly matched Elm’s “batteries included” state management.
if you like the ideas in elm but don't want to commit to it I'd encourage you to check out elm-ts (https://gcanti.github.io/elm-ts/) It has a little bit more boilerplate than elm (I find elm to be quite verbose already!) but a better experience for individuals and teams overall, I would say. It's a good example of how "TypeScript had grown to be capable enough (and developer-friendly enough) to balance much of what sold us on Elm originally: a usable type system.."
-
Flame: A PureScript front-end framework inspired by the Elm architecture
FWIW this post is about PureScript, not Elm. The library is an implementation of the Elm Architecture in PureScript. Elm is a language. The framework that goes along with it is called "The Elm Architecture". The Architecture can be implemented in any language. Here's an implementation in TypeScript: https://github.com/gcanti/elm-ts
What are some alternatives?
eioio - Effects-based direct-style IO for multicore OCaml
purescript-flame - Fast & simple framework for building web applications
ocaml-multicore - Multicore OCaml
Elm - Compiler for Elm, a functional language for reliable webapps.
nested-data-structure-traversal
rxjs-hooks - React hooks for RxJS
specter - Clojure(Script)'s missing piece
fp-ts-rxjs - fp-ts bindings for RxJS
loom - Concurrency permutation testing tool for Rust.
fp-army-knife - 100% 🪖 code covered Functional programming 🔪 army knife
ocaml-aeio - Asynchronous effect based IO
purescript-concur-core - Concur UI library for Purescript. Core framework.