Whenever I see Wolfram/Mathematica stuff like this, I'm not entirely sure if it's incredibly brilliant and will replace all computing as we know it, or completely batshit insane and impenetrable unless you've spent 20 years learning it. Usually I lean towards the latter though, and this is supported by the fact that I've never seen anybody not employed by Wolfram do this kind of thing.
Partly this is because we're so niche still that there just there just isn't a huge audience of developers to write large programs in WL yet, barring exceptions like [0]. I have no doubt that HN readers could do some amazing things in WL if they invested a modest amount of time in learning it.
I got sick of trying to get a price out of them for calls to their API. Not having a 'pricing' tab puts people off from the get-go and dealing with their sales people is a drag: all that technology and they can't even formulate a pricing calculator?!?
Cloud laboratory is so cool. I've also thought you could launch some amazing startups off the back of Wolfram Alpha language. But yeah quite a steep learning curve
It uses raw lists as the data structure for everything (including code) and has enormous math/sci and presentation infrastructure. Every part of the system can easily talk to any other part of the system.
Because of this you can just throw things together and get great results, where in other systems you might need to use external libraries or otherwise have to deal with high-ceremony architecture (I'm looking at you, OOP).
So I think the difficulty for newcomers is recognizing that "there is no spoon" and that you're entirely welcome to just start flying around like this:
You can only "easily" "throw together" things if you have any clue about a) where to find things, and b) how you can make them fit together. The problem with Mathematica is that neither of these is easy. I mean, look at their literal Hello World example:
In any other language, if I wanted to write some text on a graphic, I would find a routine to load an image into memory and another to render text into that memory. That's genuinely easy.
But in Wolfram's case, I'm apparently just supposed to know that there's something called "GeoGraphics" that does this kind of thing, that the text goes in a Style[] block (what?), and "GeoRange -> World" is how you tell it to create a worldmap as a background. WTF. And don't tell me "read the docs", because even if I found this, it wouldn't help me much with the rest:
That's because they were showing off the functionality of GeoGraphics. To do that for general images you would just load an image and place text on top of it, with a function like Overlay or ImageCompose:
That's the same Import you'd use if you wanted to read a webpage through a URL, etc.
You're right that it might not be obvious what to search for, but in this case you would search for "image" or "importing" or "overlaying" and you'd figure it out.
Mathematica uses a 'compositional' model like some other functional languages, as opposed to a 'memory' model like system languages, so that could take some getting used to if your background is system languages.
Sure, but to print ASCII text on the screen one could use any language. What were discussing here is why one might want to choose WL instead of other languages.
See also: http://blog.wolfram.com/2014/08/19/which-is-closer-local-bee...