Most of use use IO.inspect/2, pry, :observer, :recon, and Phoenix dashboard for that.
> if you deploy to Kubernetes then there is a lot of overlap with Beam/OTP for deployment management etc.
These things are complementary. Releases are great for multi-stage docker builds. Libcluster is nice for allowing different containers to talk to one another without any messaging glue. Supervision can crash and restart at a sub container level.
Yes you can also get breakpoints and some interactive debugging with the VSCode plugins. But its just not even close to the full interactive debugging of e.g a fully supported lang in Jetbrains. This is very much down to personal preference and I know that there is very powerful debugging and tracing facilities in Beam/OTP
For me, debugging was always too slow in JetBrains. I don’t know if it was a result of the IDE or the language (Python) but I would always end up using print statements instead.
With elixir reloading a single module is fast because of the functional architecture so I can at least drop down into the REPL instead.
Most of use use IO.inspect/2, pry, :observer, :recon, and Phoenix dashboard for that.
> if you deploy to Kubernetes then there is a lot of overlap with Beam/OTP for deployment management etc.
These things are complementary. Releases are great for multi-stage docker builds. Libcluster is nice for allowing different containers to talk to one another without any messaging glue. Supervision can crash and restart at a sub container level.