In the Wolfram Cloud, we're continuously bringing support for the Wolfram Language and especially Wolfram Notebooks closer to the experience on desktop; see my notes about the 1.50 and 1.51 releases and all detailed release notes, for instance. But catching up to more than three decades of development is a major effort, so there will still be some differences between the two worlds for the foreseeable future. There are also features that have to be restricted in the cloud due to security reasons, e.g. RunProcess (although it is entirely possible to relax certain sandbox restrictions in a Wolfram Enterprise Private Cloud).
We know that it is important to clearly document these limitations and restrictions, so that people know what to expect. Given the vast extent of the Wolfram Language, that is not a trivial undertaking, and it made less sense in the early beginnings of the project. However, things are more stable now and so we made an effort to systematically analyze support for Wolfram Language symbols and notebook functionality in the cloud. We're still working on incorporating this into more official documentation, but I'd like to share some preliminary results already:
- Wolfram Language Cloud Support gives an overview of (most) symbols in the Wolfram Language and whether (and to what extent) they are supported in the cloud, with additional notes about various limitations. The focus of this document is on the support of functions at evaluation time—in other words, the kernel side of things.
- Cloud Notebooks Implementation Notes gives more insights into how cloud notebooks are implemented and what can and cannot be expected to work at the moment. So the focus of this document is on the support of boxes and interactive behavior at rendering time—in other words, the frontend side of things (although there is some overlap between the two documents).
The good news is that 5,157 symbols are fully supported in the cloud, compared to 56 partially supported and 240 unsupported symbols. 132 symbols are restricted by the sandbox in the cloud.
It might be interesting to note that this effort was facilitated by the Wolfram Language itself, particularly WolframLanguageData. That allowed us to categorize functions and distinguish rather quickly between areas that we can expect to "just work" (e.g. basic math functions) and areas that would need a closer look (e.g. notebook-related functionality).
This is just a first step, so please take the information in these documents with a grain of salt. There's certainly a chance we missed something as we worked through thousands of WL functions. Please do let us know if you find any inconsistencies or if you have further questions that we should answer in these documents.
Moving forward, we plan to add some indication for cloud support to individual reference pages, turn implementation notes into proper documentation pages (somewhat similarly to The Internals of the Wolfram System), and also expose this information in WolframLanguageData
.
We hope you find this useful and we're excited to see what you're building and publishing using the Wolfram Cloud.