
DevotionGeo
What is your opinion about Caramel, the OCaml compiler with Erlang backend?
Most Liked

ostera
Thanks! Happy to be here
OCaml and Reason arenât at the scale of TypeScript or Elixir, but they have a loyal and caring community
Oh boy it is!
I actually started making a type-checker for Erlang, as I wanted to really understand what were the hard parts about it. I chose to cram in a well-typed language into Erlang and try to get the same program out of Erlang afterwards, and thus Caramel as an OCaml to Erlang compiler was born.
The next milestone Iâm working towards is actually recovering the type information from the generated Erlang programs to verify that the compilation is sound.
I think anyone dealing with complex state machines should seriously consider this. Having a type-level representation of your business domain logic can be incredibly useful to rule out illegal representations, making them entirely unrepresentable, and having a tool tell you pretty much instantly if youâre about to do something you shouldnât do.
Rapid prototyping and fearless refactors on large codebases are two other things that I really enjoy in OCaml, and that you would be able to get through Caramel as well.
Well, yes it does! OCaml is a highly expressive language, and building type-safe DSLs in it for specific problems is fairly common amongst the more idiomatic users. Check cmdliner as an example, or fmt.
In addition, the OCaml module system is by far the most powerful (and still type-safe) one Iâve seen put to production, so it should help with code reuse, enforcing codebase conventions, and large-scale refactors as well.
Indeed, thereâs a lot of tradeoffs being made here. For example, the OCaml object system (OOP support) will not be supported in the current compilation mode. Same goes for other features like first-class modules (treating an entire module of code as a value), or mutability.
I am however experimenting with ways in which some of the existing ecosystem codebase that is not trivially translatable can be made usable from within the BEAM by means of generating NIFs. We do have a lot of type-information to guide this process
Hope this helps

davearonson
Sounds sweet!

rvirding
I think the idea is very good. I donât have any feeling for how popular OCaml is so I donât know if it will bring more users into the Erlang Ecosystem.
And I must say that personally I think implementing languages is a lot of fun.
Popular General Dev topics










Other popular topics










Latest in General Dev
Latest (all)
Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /js
- /rails
- /python
- /security
- /go
- /swift
- /vim
- /clojure
- /java
- /haskell
- /emacs
- /svelte
- /onivim
- /typescript
- /crystal
- /c-plus-plus
- /tailwind
- /kotlin
- /gleam
- /react
- /flutter
- /elm
- /ocaml
- /vscode
- /opensuse
- /centos
- /ash
- /php
- /deepseek
- /zig
- /scala
- /html
- /debian
- /nixos
- /lisp
- /agda
- /sublime-text
- /textmate
- /react-native
- /kubuntu
- /arch-linux
- /ubuntu
- /revery
- /manjaro
- /spring
- /django
- /diversity
- /lua
- /nodejs
- /slackware
- /c
- /julia
- /neovim