I mentioned exception handling above, but this is more specifically the problem.
I think it's a hard problem to solve, because the behaviour of older libraries is so varied.
I have sometimes thought that something like a try catch wrapper which pattern matched or tested the value returned would be useful.
There's renv that addresses that point already: https://rstudio.github.io/renv/articles/renv.html
> There's no Django for R.
Nowadays you can integrate R with WebR (WASM) in a web app: https://docs.r-wasm.org/webr/latest/
And of course on the web side you have shiny (https://shiny.posit.co), which now also comes in a python flavour.
Aside -- we tried using dash in our production app and then had to remove it after a month, because these types of frameworks that spit out front-end code are almost never flexible enough to do what you actually need to do in a full app context, and you end up doing more work to fight the framework versus the time-savings from the initial prototype.
But the fact that there's no Django for R means shiny's a dead-end for a production web app.
ambiorix might be what you're looking for.
check it out: https://ambiorix.dev/
it provides: - routing - api generation - templating - web sockets
- when we wanted to build a web app that processes data, it was a lot more straightforward to build both in python, so we can process data within the web servers instead of having to manage multiple stages of infrastructure and different languages. There's no Django for R.
- R will often do something instead of explicitly failing. This is the wrong tradeoff when running a production system, as if you're returning the wrong results to users you may not realize it unless there's an error
- R reproducible builds are worse than python. That's saying something because python is a pretty low bar. But running production systems you can't have builds suddenly fail week over week because one of a hundred packages was updated