I wish R had an audience outside of academia, because there's a lot to like about it as a Python alternative. While the obsession with pipes wouldn't translate well to most languages unless you're a psychopath trying to wean a new programmer onto Bash, you've got generally decent syntax and in many was a more pleasant take on the mixture of C-like trappings on a basis of Scheme than JS. Its C API is reasonably pleasant, too.
I've heard bad thing about R in comparison to Python. Don't know if they are true, but I've heard bad things consistently, both IRL and online.
say R continues to do quite a few things better which is why Python hasn't made R redundant.
Does it? The only real problem I have with Python is all the different versions. Plus I think the community is so much larger for Python than for R.
I have never used Python for Data Science, but I can't imagine it being very hard to do so. At the end of the day whatever you are going to be doing for Data Science is just going to be some kind of equation/function.
I can imagine using something like Julia or Fortran if speed is really important but you also need something for data science/simulations.
think beginners would be better served learning Python with numpy or scipy instead of R
I concur. Numpy is excellent and is strongly typed. It also tends to push the newb into procedural designs. Dicking around in Python building AI models didn't really teach me programming. Building something using mostly Numpy did teach me programming.
Rust just feels like a failed C++.
So true. I feel like there is a desire for a simple and fast OOP language that is not being met. Simple doesn't mean easy here btw. I would say a functional language might meet this requirement but I've never really done much with anonymous functions. I also get the impression Functional languages are not simple.
C++ and Rust both fail this for basically the same reason. C++ fails because it is overcomplicated and bloated, though it is fast and it is built on a pretty good framework of C. I think Rust fails because it is extremely complicated and the extra complexity doesn't add very much. If memory issues are a big deal in C++ you can just use a special type of pointer and be fine.
The one thing Rust has going for it is some of the people who make crates. A couple people have made some really great crates that allow people to do stuff.