I find it's great for prototyping certain types of ideas (more abstract/mathematical in nature) because there's a wide range of useful and complex functions that allow you to piece together ideas quickly, iterate/change, and test them. It's quite powerful in that respect.
Sometimes I have an idea and don't want to dig around dozens of libraries, dependency chains, etc. to piece some proof-of-concept test together, nor do I want to attempt to implement everything needed from scratch because that could require a large time investment (and fail conceptually).
Some similar efficient prototyping workflows can now be accomplished in Python using Jupyter/JupyterHUB, at least for me.
Any of my successful prototyped ideas immediately left the Mathematica ecosystem to be implemented using other technology stacks.
I've used it to test and prototype calculations and algorithms.
The Stackexchange page for Mathematica is pretty amazing, and quite a good community.