Not to be mean, but you don’t know what you are talking about. If you are relatively new to R or new to programming, it’s easy to take your position that R is just a statistical software environment, but it’s incorrect. R is an atypical programming language, for certain. It has warts and oddities. It’s also incredibly expressive and elegant for many exercises. If you’ve got the basics of R down, but want to learn more about programming in R, I encourage you to read both of these books:
https://nostarch.com/artofr.htm
http://adv-r.had.co.nz/Introduction.html
Here’s some specifics to counter each of your points about what R is capable of:
You can make webpages in R using rmarkdown, shiny, whiskers, and probably a dozen other packages. Those first two examples use bootstrap for html and css by default, and there is even a materialize package if you want that styling. All from within R.
While R processes data in memory, it’s possbilibe to use .Rdata files to save state of many tables basically representing a database. This probably impractical for very large datasets and/or collaborating with more than a couple other people, especially if you have frequent write access needed. SQL databases are definitely a better option for storing data, but doesn’t mean R can’t.
R is a fully capable programming language. If it wasn’t, there wouldn’t be this wonderful ecosystem of packages to accomplish most any programming task you can think of. R has support for both object oriented and functional programming paradigms. R has an abundance of included, native data structures; some common to other languages like lists and vectors, others only supported through external packages like matrices and time series. R provides an expressive language that enables creation of Domain Specific Languages (DSLs) like ggplot and dplyr that make programming for certain contexts, plotting and data wrangling respectively, much easier. R has functions, closures, and namespaces (environments). Not every programming language is the same, but R is certainly capable of accomplishing many generic programming tasks.
Now for me... what do I choose not to do in R?
I choose not to write new libraries for APIs that don’t exist in R, but are well done in python. I’d rather just use the work of someone else to reduce my workload. I have written API wrappers before when the python equivalents were poorly done or were missing critical components that I needed. I used the httr and jsonlite packages to do so. I don’t write MVC applications in R. I’d probably choose Django in python or Rails in ruby if I wanted to do something like that. I have built simple REST API services using the R packages plumber and Rserve. I really like plumber, but it makes me want to use flask or quartz in python instead for the plugin ecosystem (flask) or asynchronous performance (quartz).
I hope anyone who read this far got something out of my rant.