Skip to content

Comparison

How Floe compares to other languages in its space.

TypeScriptFloe
TargetJavaScriptTypeScript
Null safetyOptional (strictNullChecks)Enforced (Option<T>)
Error handlingExceptionsResult<T, E>
Mutationlet, var, constconst only
Pattern matchingNoYes, exhaustive
PipesNo (TC39 Stage 2)|> built in
ClassesYesNo
Type overridesany, as, !None
RuntimeNoneNone

Floe compiles to TypeScript, adding stricter type safety and functional features.

GleamFloe
TargetErlang/JSTypeScript
EcosystemHex/npmnpm
JSXNoYes
ReactNoFirst-class
SyntaxML-familyTS-family
PipesYesYes
Pattern matchingYesYes
AdoptionHex + npmnpm

Floe borrows Gleam’s ideas (pipes, Result, strict type safety) but targets the TypeScript/React ecosystem.

ElmFloe
TargetJavaScriptTypeScript
ArchitectureTEA requiredAny React pattern
npm interopPorts (indirect)Direct imports
Learning curveML-family syntaxTS-family syntax
JSXNo (virtual DOM DSL)Yes
CommunitySmallTS/React ecosystem

Floe does not enforce an architecture pattern. You choose how to structure your code.

ReScriptFloe
TargetJavaScriptTypeScript
SyntaxOCaml-inspiredTS-inspired
JSXCustom (@react.component)Standard JSX
npm interopBindings requiredDirect imports
OutputJavaScriptTypeScript

Floe’s output is TypeScript, not JavaScript. This means the output itself is type-safe and can be checked by tsc.