Has anyone here used the Wolfram Language? How discoverable is it? How does debugging work? What about state management? All the demos are small, stateless calculations. What is it look like when you want to build long-lived, stateful systems - say a robot that builds an internal map as it moves.
It's OK. Debugging is doable, but it's a bit awkward IMO. In terms of discoverability, well generally the documentation is among the best you will find anywhere and it's all inter-linked and full of examples, so that's a strong point. You can build programs with state, it mostly a functional language but it doesn't enforce purity or anything.
It is certainly capable enough that building something like what you're describing wouldn't be hard, but my experience is that it really isn't that great for that kind of usage (part of this is the readability, more on that in a sec). I think of it more as a "query" language... I tend to find that it works best if you use it by building up a few fundamental entities (say, symbolic equations or data) and then analyze them (transform data, plot, solve equations etc). In this usage it's pretty amazing, but whenever I try to do something like in a "real" programming language it is miserable. For instance, I once implemented GMRES in it and jeez it was absolutely miserable. On the other hand, I can do pure wizardry with stuff like data processing and visualization.
Basically, as long as you stick to composition of built-in functions, it's wonderful. When you want to do something from scratch though, that's when the suffering starts. It's also really easy to shoot yourself in the foot performance-wise... the language is very flexible in terms of allowing many different programming styles. Typically, however, only the functional-style implementation is really performant. For instance, you can use traditional indexed loops just fine, but their performance is generally at least an order of magnitude slower.
One other thing that drives me nuts about it is readability. It suffers from the same issue as Lisps with parenthesis overload, except for WL it's all braces and square brackets. If you put in good spacing and let the autoindent do its thing then it is pretty readable, but a lot of people don't. Somebody elsewhere linked this image http://indiegames.com/2014/03/10/wolfram%20example.jpg , which is a pretty good example of how it can be really awful. And writing code that looks like that is pretty widespread in the community, though it has gotten better in the past couple years.
Tl;dr I think it's pretty sweet, but I wouldn't use it for what you ask for. Your tastes may differ, though.