I did it! I have try to code my first OTP applications following most of the recommendation of the documentation (and the French book Erlang programmation was a great help).

One of those applications became an opensource project: grinderl. I did blog a bit about it in this blog post, and now it has evolved from the all-in-one-module code to a small ongoing project (hosted by googlecode). To do that I used:

  • application/supervisor/server/fsm/event … all the generic modules: not complicated
  • eunit: simple enough, and tests should be compatible with the test_server application
  • dialyzer: wow! it can save a lot of time, especially because Erlang has no type system: a MUST.
  • appmon: great and easy to see your supervision tree
  • debugger: I still prefer to write message in the console … please don’t tell that to anybody!
  • edoc: I learned how to use it, but sadly it didn’t teach me to write good documentation…

I may like to have a look at cover and profiling tools, I may want to learn about Erlang port, but I guess the two main points I missed are:

  • mnesia: looks so great!
  • release handling: this is a tricky part of OTP application distribution I think!

And for the last one, I hope the sinan built system can help me (Eric Merritt promised us a high level user documentation soon).

My only regret is that I haven’t found a complete tutorial to go through all the steps of transformation of an Erlang program in an OTP application release. And that’s too sad that I don’t feel able to write one!