Introducing Tweet-a-Program
blog.wolfram.com
blog.wolfram.com
See also: http://blog.wolfram.com/2014/08/19/which-is-closer-local-bee...
[0] Emerald Therapeutics: http://emeraldcloudlab.com/
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:
https://www.youtube.com/watch?v=CnuquqR7QOQ
The language itself is simple, I think. But I could see how the APL-ish/functional aspect of it could seem abstruse to new people.
GeoGraphics[Text[Style["Hello!", 150]], GeoRange -> World]
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:
"Hello World"
or even:
Hello World
which are both quines. The only reason you need to know about Style and GeoGraphics is for making a prettier, but still small, Hello World example.
img = Import["c:/blah/blah.jpg"];
ImageCompose[img, Rasterize["HELLO"]]
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.
I think the power of it is really undervalued - using all the knowledge of the wolfram-alpha engine to create objects? Such a neat idea! Imagine if Google built a similar language based on their search engine data - the kinds of programs people could build and might accidentally build just playing around boggle the mind.
In what sense? If you mean traditional business software, maybe.
If you mean real systems programming, OS drivers and such, only when an OS vendor integrates it into their SDK.
That is how C and later on C++, pushed away all the other alternatives for systems programming.
I experienced the same feeling when I got to work in Smalltalk back in 1996 and a few years ago started gathering information about Lisp machines and the systems developed at Xerox PARC.
The impression I got was that this project is an inventor's dream, which he has obviously obsessed over for some time, and it is an impressive feat, it just comes across as self centered and I have trouble understanding who might use the language and why..
https://www.wolframcloud.com/objects/051a4cda-5c0e-423b-8872...
I don't think there's another language you could use to do that in ~5 minutes.
By running this code:
CloudDeploy[
FormFunction[
"text" -> "String",
Classify["FacebookTopic", #text, "TopProbabilities"] &,
"JSON"
],
Permissions -> "Public"
]
I get a web form that can be used to enter arbitrary text and have social media topic inferred on it:https://www.wolframcloud.com/objects/0cda973b-8e12-43d7-a9d3...
Try something like "I just had the most amazing meal at Four Burgers today".
In previous versions the data stuff was not impressive, but with the recent versions it's starting to come into par with the rest of the language.
Earlier, someone tried doing similar things with another calculator: http://www.hilarymason.com/blog/a-quick-twitter-bot-bc_l/