Wolfram Technology Conference 2020: Stephen Wolfram's Keynote Address

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone and welcome to the 2020 version of the wolfram technology conference i am pleased and honored to introduce stephen wolfram hi there okay well welcome to the 31st year of our annual technology conference and first time it's been virtual it's a shame to um not be able to see people in person but it's good that uh a bunch of additional people are able to attend because it is virtual so it's been um about uh it's been a little over 32 years now since we launched mathematica and uh it's hard to believe but i think we have even more to discuss today than we ever have done any previous year um it's kind of like after 32 years haven't we finished everything yet uh no actually the more we build the further we can see the further we can go the faster we can go uh there are a lot of long-term projects that we've been working on some of which are just now coming to fruition and i'll be excited to tell you about some of those things and there are some projects that are shorter term that have been started even in the past year or so that are coming to fruition that i'll also be able to tell you about so i'm going to talk about some several different kinds of things here um yes i'm going to show you lots of new technology that's coming particularly in version 12.2 which should come out in the next month or so but i also want to talk about kind of the big picture of what we're doing and what we're trying to do and about the very important role that uh you and our community can and should play and what we're what we're trying to do well this time last year we had uh just released version uh 12.0 let me arrange myself here oops and i want to okay we had just released version 12.2 2.0 um and uh let me make that bigger um and um we released this actually in april of last year we were about halfway through the 12.1 development cycle 12.1 was released in um uh march 18th of this year um and actually last year last october it took me four hours to go through the features that were upcoming in 12.1 um so i'm going to try and go much faster here today um let me mention the highlights of 12.1 because what came out in the final 12.1 was a bit bigger than what was in the uh the preview that i showed you so um uh there were a total of um um 182 new functions in that point one release which is a pretty remarkable thing that a point one release um ends up with 182 new functions um this is uh just a a list of those those new functions um the uh so i wrote about this um at length as i want to do here um and you can you can find all sorts of different things about the different uh features of 12.1 that i wrote about back in in march of this year so it was a very um uh very impressive collection new functionality a big effort to get it out right in the middle of an emerging pandemic um just to make things even more exciting but after 12.1 came out in march of this year we decided to do something we hadn't done before which is to have a release that was a pure uh polishing release so three months later we brought out version 12.1.1 june 17th and the main thing about 12.1.1 was that it had a thousand bugs fixed in it um the oldest one was documentation bug actually from 1993 uh the oldest code bug was from the year 2000. and here's a here's an image that i made as a oh gosh these are all coming out too small um here's an image that i made as a kind of a a tweet image to illustrate our uh various bugs of different severities that got fixed in that release okay so what happened in the three months since june um i should explain that we always have a big pipeline of new stuff coming there's some projects that have been running for years um others that uh that are quite new um and if you've been watching our live streams uh you will have seen a lot of this sausage being made you will have a lot seen a lot of the designs for the things that are coming in version 12.2 uh being developed and beyond to our point to actually we've so far done about 400 of these live stream design review meetings um it's uh we founded a very productive way to work not least because we have a terrific group of people who tune into these live streams and give us suggestions and real-time feedback and that's been really helpful and in version 12.2 you'll see a bunch of things that was suggested by people on our live streams actually uh come to fruition and be released as a as a piece of the product so we're we're very happy about that well okay let me give you kind of a um um a bit of a summary of of what's coming in 12.2 uh there are at current count a bit over a hundred new functions all finished in the past six months um it's kind of an interesting uh a set of data points um in the one year between version 12.0 which had 278 new functions and version 12.1 there were 182 new functions accumulated in the six months since version 12.1 we've accumulated about 100 new functions that will go into 12.2 so a sign of what feels to me like it's acceleration and that's what we see in terms of the count of number of functions just to recap of some of the things that were new in 12.1 things like the data structure functionality that came out of our compiler project uh asymptotics as a way of doing a new level of symbolic analysis things to do with data set and its formatting and table view things like cross hatching of graphics a kind of whole calculus of annotations approach to dealing with annotations in in graphs and images and all sorts of other things uh things in sort of functional programming and symbolic programming like splice and operator applied and so on a lot of stuff to do with geocomputation meets geometry being able to treat geographic uh things using our geometrical computation uh capabilities things like external identifier and wiki data data as ways to reference uh canonical external uh kinds of entities uh things about molecular structure ocr we in 12.0 you might know that we introduced a lot of capabilities around uh molecular and chemical computation uh also in 12.1 external storage capabilities and also sort of first classing our paclet system for releasing for the distributing kind of additional functionality for the system okay so what's there in 12.2 so what i'm going to do i'll consider this a bit of a spoiler for what's coming later but i want to give you some some indication of some things then i'll talk about a bunch of other other kinds of topics um so in 12.1 we started on video uh putting video as a first-class kind of thing in world language um there's a lot more of that in 12.2 although it's and it's very strong there although still not finished there in geocomputation we've got things like vector maps we've got a big effort in spatial statistics we've got more in synthetic geometry uh drawing euclid figures drawing molecules we've got a new effort in biosequences for dna and proteins and making all of that computable we got a bunch more hardcore math of things like function properties more asymptotics a bunch of new algorithms we've invented more on convex optimization we've got a big new pde partial differential equation modelling framework um also things of machine learning ability to make custom layers and finer control of of the kinds of things that we can do and compilation and so on um also actually deployment to external devices and such like we've got another big area is remote batch cloud jobs and also some some cool and perhaps unexpected user interface capabilities that's kind of the the coming attractions of version 12.2 all right i want to talk about that um uh in in much more detail later but first let's talk about some other things well um of course there's been a pandemic and we've been kind of um uh trying to do our part let me see what's this no that's not what i wanted okay we've been trying to kind of do our part uh to support the world in this um unusual uh uh event and um uh since we're a data company from the very beginning we were curating and deploying in computable form on the web data about the pandemic we've been doing that every day since the pandemic uh started and i think people have been finding that very useful we have a variety of different kinds of kinds of data we've also been doing um lots of computational essays by people in our community and ourselves about what's going what's uh what one can do with that data um and and uh a variety of other things here that are directly kind of um uh providing sort of computable support for pandemic um related uh analysis so uh i must say i i started off from uh really trying to study the epidemiology of the pandemic and the decided that it's a lot harder than one thinks and there's a lot of data one doesn't have a lot of conclusions one can't make and much that i think is still mysterious about what's going on but let's not talk about the science of that here right now but another very practical thing that we did was simply uh providing um uh resources for universities and so on um to uh make um to make our products more readily available in these kind of virtual times that's been particularly leveraging our cloud technology and in terms of providing access to mathematical online and that's been a very successful program another thing that we've been doing um just recently for this school year is providing some home-schooled courses which are just about to start up uh for students who are um not able to be um in the schools they would usually be in um we also uh another uh quite different kind of thing people can't do lab experiments as readily um in uh in these times and our system modeler product line has um uh had found lots of use in being able to do virtual experiments um that can be done uh uh without being being physically there so there's also the at the research level of um studying the pandemic um lots of use of our um technology and i'm looking for there we go um and uh here's some here's actually a word cloud of of uh papers this year that have cited our technology and you'll see um all kinds of different topics covered here and there's a there's a cluster somewhere here for epidemiology and covert and so on i'm not sure i can find that cluster and all of the other a there's a covet 19 cluster and there'll be other ones here for uh for various kinds of um epidemiology and so on but it's been nice to see our technology used um not only for epidemiology but also for things like fluid flow studies and so on related to uh to the pandemic um you know in all the bad things that happened with this pandemic there are also some things that um uh it's nice got pushed to happen uh i've been doing myself a number of kind of public service kinds of things one thing i started uh pretty early in the pandemic um was a um a weekly kind of um uh science and technology q a for for kids and others which we've been live streaming and um uh i've at least been having a lot of fun with it um we can we've uh have a bunch of sort of podcast episodes here from it um and i think it's um it's helped make me a bit of a better explainer of all kinds of things and all kinds of strange questions that come in so that's been something that uh that has been a productive thing that that's come out of this of course this is a good time to have a a geo-distributed company we have such such nice offices in places like illinois and the uk and so on it's a shame that they have been so abandoned but uh we have been a geo-distributed company for uh for 30 years now um and that's been something which uh uh has meant that we've been able to continue to be productive through these times um i myself have been a a remote ceo now for 29 years and people used to say what a crazy thing to do um uh but uh in these times doesn't look quite so crazy and they were like you were ready for this all along okay well so nobody expected this pandemic and um but uh another thing that was very unexpected for uh for me personally that happened in this past year um for um uh um uh the um um uh was um the um uh was the our physics project um another very that was another very surprising thing in in my life so to speak um and uh as as uh some of you may may know um well a year ago at a technology conference last year um i i said i was going to work on this and um indeed i did and it turned out better than i could ever possibly have imagined um it's uh exciting both for the physics of what it's brought and for a bunch of applications um that it's provided and also for a bunch of metal lessons that i have learnt from the very doing of this project and the fact that it was possible to do it well so by way of backstory as as uh many of you may know i used to do physics when i was a kid and i but i've been so out of the business professionally for about 40 years now and uh for those uh who may be here who knew me back in the day uh uh yes i'm i'm sort of back again now um i mean i've been in those intervening years i've been sort of alternating between uh basic science and technology about five cycles i think so far um but uh back back in the day 40 years ago i was very interested in fundamental physics and worked a bunch on that and then kind of got involved in what i saw as being something in a sense more fundamental than that in going beyond the kind of uh the sort of mathematical models and so on that we've developed and had been developed in in fundamental physics and trying to see what are the sort of most fundamental models that we can make of things and so on and that um uh led me into studying uh computation and programs and so on as sort of a a more fundamental substrate for the ways that one can build up models of things and and sort of from that effort spun off uh the things that um uh in complex systems research and so on even if that particular field didn't work out entirely as i might have might have liked it to it was a nice thing to kind of spin off from those early studies but um the real sort of question uh that that i was interested in at that time was okay if we're going to take um uh programs and computation as sort of the foundation for how uh things work what does the typical program actually do and um for those who who are not um aware of this let me let me just uh bring up a few a few kinds of things here so if i uh what i got interested in were some sort of very simplest possible kinds of programs so this is a cellular automaton just a line of black and white cells and here's a rule that says what the next color of a cell will be after it has a particular arrangement of cells on the previous step so if we if we run that um uh that rule for for a few steps we'll get um this kind of pattern here we're just starting off with one black cell at the top there and it's very simple rule and we get very simple behavior do the same thing here and um we can run that again and uh again we'll get very simple behavior so the question that i first sort of asked um about in the in the early 1980s was okay so these simple programs produce very simple behavior but is that true of all simple programs if i just look at all possible simple programs of this type for example uh what kind of behavior will they all produce and so these days it's very easy to do that computer experiment um here's here's the result and we see that each one of these pictures corresponds to a different program a different rule and we see that many of them produce very simple behavior maybe some of them produce these nested fractal patterns and so on but um kind of pointing this sort of telescope into this computational universe of possible programs the most remarkable thing that i saw back in 1984 or so um there's actually i saw it earlier than that but i didn't realize what i'd seen until about 1984 was this thing that i call rule 30. and if we uh if we go here go down here and let's let's just um look at rule 30 here's here's the rule that it has and let's just um run that rule let's say we run it um for 400 steps here just starting off from that one black cell at the top and i should have typed 30 there um then um this is the behavior we get and oops what did i just do the um so single black cell at the top very simple rule yet the behavior we get um is far from simple in fact for example if we look at the the center column of cells down here for all practical purposes it seems completely random so this is really for me was a very remarkable thing a very kind of intuition breaking kind of discovery kind of my all-time favorite science discovery that in this computational universe of possible programs even a program as simple as this can sort of effortlessly produce great complexity in its behavior and i think that's sort of a a a fundamental result and a fundamental fact about the way the computational universe and abstract programs work and it's something that over the years since that time i've done a lot to try to understand the consequences of that kind of uh of that scientific discovery and over time that sort of gave me a whole new way to think about all sorts of kinds of science in fact um eventually it led to this big book that i wrote called the new kind of science which tried to apply that kind of what um what i discovered from sort of exploring the computational universe of possible programs to all sorts of different kinds of systems in nature and to modeling all sorts of kinds of things from biological growth to fluid flow to lots of other kinds of things like that and by the way it's been a really nice thing to see because historically uh they've been about for about 300 years there was kind of this dominant idea that if you wanted to make models of things mathematical equations were the place to go and i would say in the last probably 20 years or so there's been a real transition towards when a new model is going to be made of something the vast likelihood is that it will be a model made in terms of programs not in terms of equations and that's a that's a big deal that after 300 years we've managed to get in in only 20 years a real transition to new models being made primarily in terms of programs um and that's for me an exciting thing um it's also by the way when we look at the sort of computational universe of possible programs it's also a great place to mine technology from to find these programs that do interesting and useful things and just like we find interesting useful materials in the physical world we can kind of mine these programs to use them as algorithms for things that we try to to to do but in uh when i wrote new kind of science one of the use cases for the kind of methodology that i was developing um of exploring the computational universe and simple programs in it one of the use cases was can this be applied to fundamental physics to a theory of our whole physical universe and i wrote about 100 pages about that in in the nks book and i figured out quite a bit about how that might work and i was pretty pleased with some of the results i got um and uh but i didn't i didn't uh i i only viewed it as kind of a use case for my main methodology and didn't really take it as far as i could have done at that time unfortunately even though the in a sense the market found the idea of modeling with simple programs really interesting for many areas of science and technology and engineering and and so on in fundamental physics there was very much of a we've been doing mathematical equations now for a few hundred years they're working just fine for us thank you very much we don't need anything new and uh so the result of that was that i basically didn't end up working on um uh on developing the fundamental physics directions of uh new kind of science um instead i worked on little things like wolfram alpha and then welcome language and so on and um building our whole sort of computational language uh vision um and so i was i was very happy to do that but then about uh a year and a half ago um i well a couple years ago i made a little bit of a minor methodological breakthrough and thinking about sort of fundamental physics and a couple of um young physicists uh told me you know you just can't leave this stuff undone you just have to go and push forward and uh and try and see whether it really works to think about fundamental physics and in these kinds of terms and so we did um and uh it's worked out just great well i i thought it would be a lot harder than it actually turned out to be i mean i thought that um we would sort of see we might be able to get to the first kind of 10 to the minus 100 seconds in the evolution of the universe and then we'd be fighting with this phenomenon of computational irreducibility we kind of can't foresee what the consequences of our computation will be much faster than just running them we'd be fighting with computational instability and we wouldn't be able to see uh much past that um but the um uh the big surprise is that in fact we have been able to go a lot further than that um in fact uh we've been able to see that from this from these very simple underlying ideas and very simple underlying framework we're able to reproduce uh for example the two great pillars of 20th century physics general relativity and quantum field theory and that's that's a really exciting thing and uh what we found is that from a model that is just outrageously simple we're able to go and kind of uh progressively check off more and more aspects of what we know in physics um and it's it's going just spectacularly well i mean let me i'll just give a very rough walkthrough of of what's uh uh what's what goes on here and i'm going to talk about this some more on thursday evening for people who are interested basically one of the key ideas is to think sort of underneath space and time what are they made of so to speak and usually when we think about space for example you don't think what it's made of we just think it's some manifold and we can place a point wherever we want that's been kind of the idea last couple of thousand years um the the idea that we start from is something sort of more computational imagine that there are just atoms of space just points and uh imagine that we have this kind of structure that um represents space that is just a bunch of these points and all we know is how these points are joined to each other they're joined like a in a network or in fact in in general in a hyper graph and so then what we say is that's sort of the structure of space now the way that this that time uh works is that at every moment we're looking around in this hyper graph and we're saying there's some simple rule that we might use that can rewrite a piece of the hypergraph to some other form and we just apply that over and over again and just like in the case of something like rule 30 we can go from a very simple initial condition very simple rule and we build up these very complicated structures these structures uh end up on a very large scale having properties that can be very much like the space that we're used to seeing it's kind of like what happens in fluid dynamics when you start off from that sort of microscopic molecular dynamics of a bunch of molecules bouncing around and then a large scale you see considerate continuum fluid mechanics in our case instead of getting continuum fluid mechanics from these atoms of space kind of um interacting what we get is einstein's equations for the structure of space-time so that's that's already quite exciting one another thing that happens is that as we look at kind of this rewriting of hypergraphs in terms of these simple rules one of the things that's sort of inevitable is that there are many possible ways that that rewriting could happen and that means that instead of thinking about a sort of single history for the universe we're thinking about this whole kind of multi-way graph of possible histories for the universe and it then turns out that this multi-way system um actually reproduces the things we expect in quantum mechanics and in fact right now we're we're the the uh sort of close to having some kind of formal proof of the exact equivalence of of our multi-way systems to things like um categorical quantum mechanics and so on which kind of nails the uh nails the case shut so to speak in terms of the equivalence of our models um in that case with quantum mechanics we can already see many kinds of things that um uh that correspond and we can uh um and so on one of the things that's really nice is for example we end up in this kind of multi-way uh graph we end up having something which is kind of the equivalent when we kind of slice space time in time slices we get space when we slice the multi-way graph in time slices we get something that isn't space but it's a bit like space it's a thing we call branchial space it's a space of branches uh it's a sort of a map of quantum entanglements between different quantum states and one of the things that i think is is really cool is that the uh the kind of the behavior of pods behavior of gd6 in physical space and the einstein equations that govern how physical space work um what the precise analog of those equations in branchial space is none other than the feynman path integral for quantum field theory so in a sense if one was wondering for these two pillars of of 20th century physics um which have had a hard time sort of being knitted together um what we've discovered is that actually in some sense they are the same theory except one operates in physical space the other operates in branchial space so a lot of things that um a lot of things coming out of this a lot of really really interesting physics and mathematics one of the things that's been been particularly interesting to me is that a lot of approaches to um uh to mathematical physics of the more abstract particularly the more abstract ones uh they seem to all be kind of connected to our approach to physics it's almost as if we have this kind of rosetta stone for all of these kinds of very abstract mathematical physics a little bit like what happened back in the 1930s when turing machines were invented there'd been these other approaches like combinators and lambda calculus and general recursive functions and so on to the idea of computation but once one had sort of the concreteness of turing machines one could kind of see how all these pieces fit together and i think that's what's happening with with our model of physics um and kind of uh approaches to the to mathematical physics well it's um there is one kind of amazing if embarrassing point about this whole uh model of physics you can say what's the sort of fundamental data structure of the of the universe according to this model of physics well ultimately it's basically a symbolic expression um and that's sort of embarrassing because i've been thinking about symbolic expressions for 40 years now and they're the foundation for wolfram language they're the foundation of of snp the precursor to that um and there's something i've been thinking about for a very long time and for various reasons i never really imagined that uh that one could be thinking about a a symbolic expression with 10 to the 400 elements that would represent our universe i was always hung up on the idea that symbolic expressions should be built to mean something rather than be purely structural kinds of things but now what we realize is that that same idea and many of the issues that come up there um are the things that we can use to build kind of this fundamental data structure for physics well and it turns out just as cellular automata a sort of minimal idealizations of parallel computation so these new models that we have are kind of minimal idealizations of computation where it's where things happen without space without time asynchronously and with arbitrary kind of connectivity and structure and so it turns out that not only are these things interesting models for physics they're also interesting models for lots of other kinds of things um and then many other applications that are emerging uh one of the ones that i've been looking at quite a lot is a bulk theory of meta mathematics a kind of theory of how mathematics grows and how the network of all possible theorems of mathematics is laid out in kind of meta-mathematical space um there's also uh the possibility for a new kind of approach to uh theories of biological evolution um there's also a um a new approach to thinking about distributed blockchain that's coming out of this and in general one of the things that's sort of really remarkable is that a lot of the issues about physics have direct analogues and distributed computing things like the uncertainty principle in physics direct analog in in um in the way that things work in the non-commuting of operations in distributed computing and so on and a lot that can be learned from 20th century physics for example that can now be applied to distributed computing and vice versa well another thing to say is that this project of ours um really wouldn't have been even conceivably possible um without uh uh without wolverine language i mean that that's what that's what basically made this project possible um and uh we've uh uh we're making all the code uh for the project uh directly available there it is it's a that's a those are all function repository functions um that you can use to run um all these different aspects of our models um it's uh we've also been we've been treating this as a very open uh science project we've been kind of doing the science both the both the science itself and the way we've been doing the science is i think a different and sort of take on what's possible so we've been uh live streaming um uh everything we've been doing and building hundreds and hundreds of hours of um uh of live streamed archives in fact i'll show you one thing here let's see yeah this is kind of cool this is actually makes use of our uh our new um video capabilities all of these live stream uh archives were processed with the new video capabilities in um in wolfram language um we're also making available all of the notebooks that have contributed to this project going all the way back to 1994 um and it's really cool for me to be able to take a notebook that i produced in 1994 and just start it up and run it um i mean that to me is a is a great sign of longevity and stability of our language um that uh that that's possible and um well okay so so there's lots going on with our physics project there's a whole group that's uh forming around it and we're doing all sorts of study sessions for people who are interested uh we collected the um uh the kind of the launch documents of um uh for this project in a um in a physical book here we go this is the physical book there we go actual physical book um it actually looks really nice it's it's uh these um these images um produced with with wolfram language and without graph capabilities and so on um come out uh really nicely there but in any case it's um i view our physics project if nothing else as a fantastic use case for orphan language and uh a fantastic sort of endorsement of the computational approach to everything i mean it's kind of it's computation all the way down and we can really see that now well but in a sense even the bigger story than sort of how physics works is this whole story about uh computational language and about describing the world computationally at all levels not just at the level of fundamental physics and this is kind of a mission that i've been on for the last 40 years or so to ask the question we have this now this sort of paradigm of computation what can we do with it and it's a paradigm that eventually affects everything in our way of thinking about basically everything so you know in a sense i have a certain point of view now about kind of how the the science of this and the philosophy of this fits together i mean on the one side we have the computational universe with things like rule 30 and all of the kinds of models that we have of fundamental physics where there's this kind of ocean of computational possibility all of these different systems even with very simple rules that do all these very very complicated things that's that's sort of the power of computation uh kind of the the that we can see throughout this computational universe that's kind of thing number one thing number two is what we humans think about the actual kinds of objects that we discuss the things that we talk about in our human languages and so on that's sort of thing number two and i think one of the big challenges is to make a bridge between those two things to find a way to sort of connect the what we what we think about with the sort of ocean of computational possibilities that exists and in a sense i've spent most of the past 40 years trying to build such a bridge and that bridge is the computational language that we've created with wolfram language it's a bridge that tries to connect what's sort of computationally possible with the things that we humans think about and giving us a way to kind of form our thoughts in such a way that they can be connected to this kind of computational capabilities in a sense it's kind of um you know what what is the idea of of a computational language it's it's it's not like a programming language a programming language is something which just sort of tells a computer step by step what to do the idea of a computational language and and often languages is the only example of such a thing um is it's a language which tries to describe everything in the world computationally it tries to describe whether the thing you're describing as as a piece of an algorithm something abstract whether it's a physical thing about a movie or a or a location on the earth or whatever else um all of these things we're trying to describe them computationally we're trying to have a way to uh to take those things and have a precise symbolic computational representation of those things and to do that we have to build into our language a lot of knowledge about the actual world and a lot of knowledge about computation and that's what we've been trying to do for all these years in in language and one of the things that we get at the end of this is a language that is not only something that is relevant for explaining something to computers it's also relevant as a way to focus what we humans are thinking about so as you kind of think in computational language you're kind of casting your thoughts into a definite form that has a kind of computational structure and that's a that's a really important thing to do in a sense there's a story behind there's an old story of doing this like 400 years ago uh people were when they thought about mathematics they were still thinking in terms of describing mathematical concepts in ordinary natural language words but then this idea got invented in mathematical notation and suddenly there was kind of a streamlined way to describe what you wanted to do in mathematics and that um and that was um that was something that really opened up the capability of using mathematics as a way to think about things and a way to communicate about things and what that led to the invention of mathematical notation led to the development of algebra and then calculus and basically led to the creation of kind of the mathematical sciences which have for for many hundreds for several hundred years kind of dominated the approach to doing science and later engineering and and so on well in a sense what we're trying to do with our computational language is to provide a notation for representing things computationally and that's something that then allows us to kind of think in computational terms to kind of make our thoughts concrete and computational um and then to build from that and just as mathematics and mathematical notation built the mathematical sciences so we can expect that this kind of computational language and the way of representing our thoughts computationally can build kind of the computational x for all fields x actually not just sciences kind of for any field we can imagine and we can expect a computational version of that field and i view sort of computational language as a critical piece of making things making the notion of computation concrete enough that it can actually be applied and built on to create those kinds of approaches to things and well it's um in order to kind of make this computational language really work as i say one has to build a lot of knowledge and essentially intelligence uh about the world and about things into the language we have to sort of create this this repository of computational intelligence um that we can then apply in in different purposes well it's um uh it's kind of the you know i've kind of viewed the idea of the sort of computational paradigm and our kind of computational language as a way to make that concrete as kind of the future of thinking about almost everything and um it's um you know it's it's a practical thing that's that's actual software and technology but um but more than that it's sort of a big stack of ideas which are very powerful um with which people can do amazing things as as many of you well know so one of the questions that um uh that i'm sort of interested in is how do we really spread this in the world at large um we have um sort of tremendous potential with the computational paradigm and our computational language to unlock new opportunities both in terms of subject subject matter and in terms of who has access to that subject matter and those capabilities and there's sort of a big vision of what we can do with the kind of computational paradigm and computational language the question is how do we get there and what i've kind of increasingly realized is how hard it really is i mean there's a big thing that i realized over the past year from our physics project um it's not one of these things that's just going to happen and quickly i mean our physics project i think if we hadn't had the good fortune to start doing it in the past year would probably not have happened for 50 years um it's uh something you know i i talked about it 20 years ago i told millions of people about it nothing happened for 20 years i think that we could we can absolutely expect that nothing would have happened for 50 years except for kind of a fortunate set of circumstances and um well if we look at kind of the vision of computational language which we've steadily been refining over the years um it's uh it's some aspects of that uh we've kind of seen uh be be really absorbed comparatively quickly but the bigger picture i think is still a long way from being absorbed i mean it's it's uh you know even something as straightforward as notebooks took about 28 years before it was sort of uh copied and absorbed and people people said this is a this is now a mainstream thing um it's but there's a lot more and um uh to understand i think one of the things that's been sort of a an unfortunate paradoxical thing is that the further we go in developing this kind of vision of computational language the faster we can go and the further away we get from what we have readily been able to get absorbed in the world at large i mean it's it's worth realizing that wolfram language has now existed for nearly half the time the digital computers have been around and you know lots of lots of amazing things have been done with it including by many people here um but there's uh there's an awful lot more that some sort of a a true absorption of computational language is capable of doing for the world and i you know i kind of suspect that sort of left to its own devices we will see the sort of discovery of notebooks type thing happen for many of the other ideas we've had maybe 50 years maybe a hundred um and uh maybe more um and it's it's always fun i mean i i find a lot of fun to kind of bring artifacts from the future in to achieve things today i mean i kind of almost see myself as specializing in that and i encourage other people to do it it's really a lot of fun um but i think it's kind of a responsibility to the world um to uh to have people more generally understand what's possible and to move things forward uh at faster than sort of inexorable pace at which it's it will otherwise happen i mean i think that um uh it's kind of like how should one best kind of uh move things forward taking an idea like this and making it practical well the first thing is just build the technology and build it as well as possible and uh uh obviously i've i've tried to build the best possible vehicle for doing that and um i'm pleased with what we've been able to build with our company over the past 34 years i think we've managed to create a kind of rather spectacular engine for innovation i think we've become over those years more and more of an outlier in the technology industry i mean you know we're an independent private company which many people see as having kind of a simple-minded view of business in which we kind of make things and sell them at sort of modest consistent prices to people who use them i mean we're we don't we haven't followed the kind of pretending to give everything away but make money behind the scenes by some other scheme or something we've taken a very sort of old-fashioned and simple-minded view of a business which allows us to kind of align the things that we are really uh trying hard to do in terms of innovation with the kinds of things that um that i think our true customers are interested in well having said that uh we've been working very hard to sort of make our technology as widely um available and accessible as possible whether it's making you know free wolf now for website the cloud basic free site free wolfram engine for developers free will from engine on raspberry pi's you know having site licenses at all sort of all major universities and increasingly being able to having our technology available um through other companies and other products not only intelligent assistance but also productivity tools and so on i'll talk a bit more about that later but um for me i i think it's fair to say that our our company is is mostly a mission only a business by necessity i mean we've tried to sort of optimize everything for innovation sort of the opposite of most technology companies most technology companies uh most of the employees are on the commercial side and only a minority or in r d where the exact opposite most of our employees are in r d um rather than on the commercial side but you know in the end we kind of see ourselves as creating a seed a seed that for kind of a community to grow with to to help sort of introduce this whole paradigm shift that uh that sort of computational language can provide to the world at large i mean we we are definitely trying to do our part um but we need help i don't think our company is well optimized as i've said to uh uh we're well optimized to create things to innovate um but we're not um uh um we're not optimized to um uh uh for um uh to to to be kind of trying to scale up this process of of speeding up the hundred year sort of uh absorption of ideas so i think um uh it's um uh you know i think that um uh we we kind of really need our community to help take this these ideas forward and i know many of you have done lots of things along these lines which is terrific but i've i've sort of realized particularly this year and particularly as a result of our physics project how much more there is to do and how little will happen if we don't really make efforts to get things to happen it's um it's it's really uh um it's um it's something that um uh that requires kind of more of an intellectual movement than just uh what a company like ours and particularly a company that's really optimized for innovation uh can can muster and we we're so uh the question is in a sense how can people help with this well there are things to do at all levels from the small to the large um some of them people may not realize are worth doing and maybe i'll mention a few of them so you know very basic thing if your organization has a site license for our language make sure people actually get our technology make sure people can actually get our technology and if there's a problem with that let us know and do things like share what you've done with computational language with your co-workers with other people with your organization and um uh when you see people who should be using computational language tell them that and help them do it and when you see other software that should be connecting to to wolfram language for example tell the people who make that all the software that that kind of connection is useful and tell us as well and maybe something can actually be made to happen you know it's um you know there's a there's a sort of big category of small things which is to make sure that people actually know that people are using our technology one of the things that is quite frustrating to see is lots and lots of people use that technology to do lots and lots of kinds of things lots of people do wonderful things with our computational language and they say well that's nice but we you know we don't need to we're not going to show that to anybody maybe they think their code isn't really good enough maybe they think something else but they don't kind of show it to people but it's really important as a way to kind of spread these ideas that people know that people are doing things along these lines for example it's like list dwarfing language on your resume you know it's it's a it's an unfortunate thing that people think oh i'm using a computational language i'm using this thing maybe i'm using it through mathematica um you know i learned three lines of java code so i'll list java on my resume but i won't list both language on my resume that's unfortunate it's unfortunate for us it's unfortunate for the future it's unfortunate for the people and it's a mistake and it would be nice if if people understood that it was a good thing it's um it's also people use us all the time to do research um they often don't cite us they should it's um maybe when mathematica first came out 30 31 years ago uh it wasn't so obvious what you should do with kind of software and so on it is obvious today and uh people should when they use our technology in their research papers and so on they should cite us in fact when i was working on the physics project i decided i'm going to figure out what's a good way to cite uh our technology and so on and i realized that that individual functions are really a good thing to cite um and that's a that's a good way of explaining what you're doing um particularly if you if you have a piece of uh of of computational language right there um showing what's going on i mean this kind of show your code is an important idea this goes along with the kind of you know back in the days when mathematical notation was first coming about some people didn't show their mathematical notation they wrote what they were talking about in latin nobody can understand it today other people actually started using mathematical notation and that's something which is a transportable idea that other people can really understand and this is a kind of show your code um type uh type type um uh encouragement and and just like with mathematical notation there's better produced coding as worse produced code the better produced it is the better it will communicate to other humans the computer might not care but the humans will but um so we're actually making it easier to cite individual functions now you'll find on every function page in documentation you'll find this this uh this box showing uh the standard kinds of citations that are that exist there and actually we're going to we're going to do something which we hope all people will find useful which is if you cite us we'll cite you um and provide a a place for sightings of um of wealth and language on the web which hopefully will lead people to find papers it turns out my one of my observations is when you find a paper that does cite open language it's usually one of the really good papers in the particular field that it's that it's about so i think that our sightings uh uh database might might help people to find those good papers so it's um i mean it's always also disappointing to see places out in the world where where we know we have really good things to to contribute and where people just are like oh we didn't know that existed and um in a sense it's it's it's fun when you show people that gosh we have this thing look we have this website look we have this capability and people are like oh that's really cool but it's also like but it would be really nice that people knew about this in general uh like for example why aren't we used more in wikipedia we have tons of material from you know our 13 000 free demonstrations which uh produce pictures and so on which we've set up from a licensing point of view so that they can be clipped out and put in wikipedia or all of those functions with all their examples and all of the kind of online things that you can do with wolf and alpha turns out we just discovered that there's this one guy who's been basically systematically taking down things that people put up about uh um about our uh resources on wikipedia it's kind of unfortunate that with our whole community one guy can basically take down uh all the stuff that we're putting up um i mean that's the world of um that's the wild west of um of these things i suppose but it's unfortunate and i think it's not a good statement about what we're seeing in terms of of energy from our community and it's something that um from the point of view of what we're trying to do in uh in creating uh sort of the the seed of innovation behind bringing sort of computational language into the world it's pretty unfortunate um if we don't see uh uh if if um uh to to not feel that we're getting um uh support in those ways it's um you know as i say i think it's it's both an important responsibility in the world to kind of bring this paradigm that that uh that we understand to people but it's something that is also as i say fun to do whether it's in person explaining stuff to people whether it's writing papers about how to use computational language whether it's organizing workshops at professional conferences whether it's starting a github project um to uh with with um with wolfram language code and so on um and it's um or whether it's by doing uh bigger things like writing books and so on i tried to provide a template for how people could uh uh could easily produce kind of awful language based books and i think a few people have been doing that but it's many more could and should i think it's not so much about writing a book about how to use wolfen language to do x it's more about how you can do x using computational language where the book is really about doing x and the computational language and wolverine language and the whole sort of computational language presentation of things is really just a piece of kind of the um uh the the um um a piece of kind of the exposition of what one's doing rather than the main focus of what one's doing the main focus is you're explaining some topic and you're using computational language it's kind of the future of how to explain things you're using that as the vehicle for part of your explanation and by the way i i uh you know at this point we're very keen that people use wolfram language as the term to describe what we're what we're dealing with in our computational language rather than mathematica mathematica is a great thing and if you're doing mathematical kinds of things it's a fine thing to use as a description but the fact is that's been one of the things that has been part of the kind of story of oh i thought your thing only did math and as the years have gone by that's a um uh the the the kind of the concept of computational language and the things we've been trying to do have i think expanded far beyond that and it's important to be able to communicate that and to not have people uh immediately think oh it's math you know math was the last 400 years now we've got computational language that's the next however long let's make sure that we can distinguish those things you know it is funny because i've been around long enough fortunately or unfortunately that i've been able to see how lots of ideas and things have developed in the world and there are certain things that are just completely inexorable it's it's it could not happen any other way i mean this is what i saw with kind of the way that the idea of using simple programs as foundations for models of things that was inexorable that that would have to be a thing that happened um so it's also inexorable that the whole idea of computational language the whole ideas about computational essays as ways to explain things the whole idea of sort of a symbolic representation of the world and so on this is all completely inexorable there is no question this is this is the way things will happen the whole ideas of symbolic programming and so on um however uh left to its own devices without our community to push it forward it might take a hundred years um and uh uh but it is um it's some um it's something that uh um uh it's it's nice to know that one is kind of on the right side of history and that um and that these things will inevitably eventually happen the the fun is to be part of the of the front lines of actually making them happen because that's kind of the um uh uh you know for the for most people this is all sort of ideas from the future um and it's it's uh uh it's it's really it's kind of it's always fun to bring those ideas in to the to the world today and it's also an opportunity for people to kind of become leaders in this sort of computational future um it's something which many people who are here today uh know well and it's something which is sort of a tremendous personal and organizational opportunity for people and intellectual opportunity for people to to actually establish things in this in this kind of frontier that i think is sort of inexorably moving in this direction okay well i said i was going to show you some new technology and i will get to that but first i want to talk about sort of how to access our technology so let me um go back to that and so there are many ways to kind of access computational language welcome language um start off with the desktop there's things like wolfram desktop which is um uh uh like mathematica starts as a as a desktop thing um it's part of what we call wolfram one which is the kind of the future of how we intend to deliver things it's a combined desktop and cloud product that lets you access things and use things both directly on your single desktop computer and in the cloud um and sort of the the the um number one kind of access method um in that mode of working in the world from one mathematical wolf and desktop or from cloud uh mode of working the number one sort of method of access is through notebooks one of the things that we've been working very very hard on particularly in the last year is notebooks in the cloud giving one kind of a no compromises way to be able to deploy notebooks to the cloud to be able to take any desktop notebook whether it's 50 megabytes in size or whatever and just say publish to cloud and have that notebook be published on the cloud so anybody anywhere can go and see that notebook just like a web page except it's not just like a web page because it's got active components and it has sections you can open 3d pictures you can move around manipulates you can move all those kinds of things right there in this sort of free published notebook and um you can also uh people can also say make your own copy and then they can go into cloud basic um and they can freely make a copy of your notebook in which they've edited things and they can save it for up to 60 days through cloud basic i should also mention that um uh when it comes to notebooks in the cloud another thing that's been developing over the last year is our notebook embedder which allows you to take a a notebook and um uh and um um embed it in um um uh in in a web page and so that's for example in community i think they're now a thousand notebooks that have been posted that way um that are embedded notebooks embedded within community posts and so on um but in general notebook embedder is a good way to take notebook content and just put it on any website you publish the notebook to the cloud and then you just you use notebook and better to bring the notebook onto any website it's a more more flexible way to do that than to use things like iframes and so on so um you can let me let me maybe show you an example that workflow uh let's see okay what do we have here what is this this is some giant notebook this is i think a working notebook from some um uh physics session that we did so let me take this notebook and just show you what um uh what's involved in publishing it to the cloud so i just go to this menu item and i say publish to cloud and um it will go and eventually okay let's say automatically assign a url let's now say publish that okay i think this is a reasonably big notebook so it might take a little while um and that's it oops did i need to enable dynamics though i don't know the oh i probably needed to do that because otherwise it can't format it to be able to save it there we go okay so now it's it's now putting it in the cloud and there it is it's now in the cloud there's a there's that's kind of cute thing you can um uh there's a qr code that's useful if you're giving a lecture or something and you take the notebook that you've used you say now i'm going to push it to the cloud and everybody can get out their phones and just uh um read in that qr code and be able to immediately get that notebook up um in the cloud on a on a in a web browser on their phones and they'll be able to browse that notebook so now if we go um if we go there let's go see that notebook we can go and view it in the cloud so now we'll be just going to the cloud and um this is now the published version of that notebook and we can go down and look through it um and uh all these things are now uh in our actual pieces of graphics that we can do all kinds of things too if we want to um and now if we want to we can now say uh create your own copy here i could say download and i could could could look at it um uh using notebook player for example on a desktop machine or i could say make your own copy and now it will make a copy in the cloud oh boy i didn't log in on this machine uh there we go okay there i am um and this is uh oh interesting um let's see the um no i don't need to remember it uh okay so now that this will now be a copy of that notebook um that's been made for me and it has everything everything now here is editable um so i can go and um i could probably uh well actually this is a function that was not is not globally defined so i have to go and um okay so it's now but now i can do any computation i want with this i could go here and i could just say you know what's two plus two and it will now this will now be an active notebook in which i can do computations so this is kind of the workflow that's possible now is to go from a desktop notebook there we go um two uh if i waited a little bit longer it would have it would have the way this works is when you push a notebook to the cloud it is making an html cache of that notebook and when the notebook comes up the first thing you see is the html cache um and uh sometimes if you it's a little bit shamanistic but sometimes if you wait a bit longer the html cache will have been created and so the notebook will come up instantly if you ask to see it very impatiently it will still be creating that html cache it will still be it'll have to just render from afresh without having a cache when you first bring it up um but okay so so um uh but but um there it is so this is uh this is kind of the workflow of you create a notebook you can create it in the cloud you can create it on the desktop if i have this one in the cloud i could say here just publish this and that will now go through the same kind of dialogue to publish this cloud-created notebook uh as a as a published notebook in the cloud and and the rules are anybody can see a published notebook in the cloud unless you set it to be something that has limited permissions so in any case that that's some uh if you want to you can control access to that notebook there's an elaborate system for controlling permissions and so on but by default you publish a notebook and it's visible to everybody in the world and runnable by everybody in the world so that's kind of a a um a bigger story when it comes to um uh the um uh what what you're dealing with here is our public cloud the main world from cloud um we also make available uh private versions of our cloud enterprise private cloud product that allows people to set up their own uh notebooks serving private clouds on their own infrastructure or in in cloud providers infrastructure um and um uh so that's one of the things that um uh that so all of the stuff that i'm showing you about the desktop the cloud you can interact not only with our public cloud but also with private clouds which will have the same capabilities as our public cloud well so we're doing lots of different kinds of things here but one of the things that i thought i might show you is um a uh um a new kind of direction let me see if i can bring this up here a new direction um that is uh using both desktop and cloud which is a thing we call wolfram alpha notebook edition which is kind of a a combination of well from alpha and wolfram language and wolf notebooks and so the idea is this is something initially and primarily at education where the concept is that you get to give your input as uh in pure natural language so there's nothing there's nothing you have to learn so i could just say here integrate uh log x times sine x or something and um and this will now get interpreted using our uh um using our natural language understanding system what you'll get is then a um a piece of of all language code which you can then evaluate or i could go on and i could say something like um uh what is the uh density of tungsten um and uh i should get a result there that i can then compute with and so what's interesting about this is that you you both you can immediately sort of walk up to it and just like will from alpha you can start working with it but then you can build up progressive computations so so back here if i go up here um i might say let's try this again and let's just just get result again and now it would say something like um let's go and say let's look at um related computations okay plot function and integral okay let's do that um and so we get all of this uh we can it kind of guides us through being able to do different kinds of computations but we can take we can build things up in a way that is not possible in will from alpha on its own for example we can build things up um just like we could in mathematica or in wolfram language um so this is now available on on desktops um it is soon going to be available also in the cloud um so people can just go to their web browsers anywhere and start just like they can interact with wolf and alpha they can interact with wolfman for notebook edition but now they're building up sort of full computations that they can do things with and that they can turn into presentations people can can uh do all sorts of uh educational things with this um as i mentioned we we now have site licenses at pretty much every major university in the world um one of the things we're doing to support that is to introduce single sign-on capabilities for our id system and that's just been rolling out in the past few weeks a bunch of universities um uh have already uh already rather rather rapidly got their systems hooked up to our sso capabilities and that's something that um we hope to get very broadly rolled out over the next few months um and uh something to encourage your university to do is to get signed up with the sso system so that people can immediately use their university login credentials rather than wolfram ids to get access to to all of these things uh talking of notebooks by the way it's uh worth remembering our notebook player on ios um we've had now for a couple of years the capability of running a native wolfram language kernel directly on an ios device like an ipad or an iphone um and uh that means that you can take a notebook and you can run it uh at sort of full speed without ever having to interact with the cloud directly on that ios device i mean i use this capability all the time because people send me notebooks an email and i can now just open them directly on my phone and interact with them there and that's a very convenient thing um and it's something where in educational settings where people have lots of ipads it's something very convenient where you can just send a bunch of demonstrations a bunch of manipulates to the ipads and have them have them run that way okay well notebooks are a great mechanism for for doing things but sort of how else can you interact with wolfram language a big another big category is through apis by having programs call wolfram language on servers and so on so as you may know one of the things we've had for many years now is instant apis where you can just take any piece of wolfram language code you can just say cloud deploy an api function of that piece of code and immediately you've got this running web api that exists that can run that wall from language code from from anywhere um and we've been we've been gradually providing more and more capabilities around that last year we introduced um uh the uh um client library for python so you can just take your you can basically treat all of wolfram language as a giant library uh you can kind of add computational language to the python programming language so to speak by um uh by just using this client library and by just using wolfram language from from directly from within python and that's working by using api both in the cloud and on the desktop behind the api you can have either a public cloud either using our public cloud you can use a private cloud there's a new thing that's coming which will be available which is already available in beta test form which is called wolfram application server well from an application server is a pure api server for wolfram language and it's something that allows it's delivered in containers docker containers kubernetes uh things and it's it's um uh it's also something that you can cluster it's available both um uh as a as something that you can run in your own infrastructure and something you can just get an aws or azure uh container um and uh a container in a virtual machine there to um uh to run the uh welcome application server and what it does is it just it allows you to execute well from language apis so it doesn't have all of the notebook delivery capabilities it doesn't have all of the authentication capabilities um all of the kind of management capabilities of uh a private cloud but it just has the ability to serve apis um and that's something where if you're building a website you're building kind of internal micro services whatever it's a really convenient way to deliver that is to just have a welcome application server put your code you can you can directly uh uh communicate with it from a desktop or from language or a cloud welcome language you just say push this piece of code to the application server now it becomes an api that everybody can access we've also uh application server also allows you to serve web forms of the same kind that um that you can serve throughout through our cloud well there are many other interfaces um the uh a big focus that we have these days is embedding our technology inside lots of other kinds of systems in the world and making it possible to um uh to have um to have our language um be something that i had various things i was gonna bring up here but i didn't do it um to have our language be something that um um one can um uh one can access um as a as a piece of other systems that one is using and so for example uh it's sort of a general piece of our strategy of sort of delivering computational intelligence everywhere and i guess my my vision of these things is the following that's sort of back in the in the ancient past when they were first computers when i was first using computers it was just a raw computer it didn't have languages didn't have an operating system eventually one got to sort of take for granted the idea that a computer would come with an operating system later that it would come with networking capabilities or come with a user interface or whatever else it's kind of my my vision that um that in not too long when we'll be able to sort of expect that computational intelligence the kind of thing we have in our computational language will be something that you can just sort of take for granted when you walk up to a computer and we're seeing that happening through an increasing number of kind of ways in which our language and our is getting integrated uh with systems out in the world so for example uh the list of things that sort of our computational language powers is it's not too shabby already i mean things like siri and alexa use our computational knowledge uh we're sort of the only provider of this kind of computational knowledge in the world um so it's sort of not not in a sense too surprising but it's nice to see that that um uh um that that's a place where where millions of people get access to uh to what we built every day um another major sort of uh piece of embedding that's coming soon is with microsoft um uh you'll see um this is an example of uh of um uh integration into excel um of being able to take um uh the kind of computational knowledge that exists in wolf and alpha um and be able to uh immediately populate an excel spreadsheet with it and lots of other kinds of things uh with wolfram language um uh planned as well so it's uh i mean this is this is kind of the beginning of a strategy with apple and amazon and microsoft actually one other large partner to be announced soon um uh of using our computational intelligence um as a sort of unique source of computational intelligence um in a variety of uh of products that are very widely used and um so there's there's sort of a question then um if you're uh whenever you sort of um uh are using some some system out in the world um could that system be kind of supercharged by adding computational intelligence with our language and so on and if so tell whoever makes it um you know tell us bring us together we'd like to see this happen um i think that um uh you know whether that's a you know a specialized engineering piece of software that needs to make use of of uh our capabilities to know about real world kinds of things to do natural language understanding to analytics to do geometry whatever else whether it's uh some kind of educational system whether it's some kind of piece of middleware that needs that instant api to uh to make it easy to do all kinds of things you know can it have wolfen language embedded um and we now have the technology to embed in almost anything um and uh we just have to we just need kind of the bandwidth to make the deals to make that happen you know i should talk about kind of non-cloud places where wolfman language gets deployed i mean there's hardware things like raspberry pi where we're basically just part of the operating system um we also uh have our um uh wolfram engine for developers and uh we're trying to make sure that this is available through sort of every conceivable package manager and that you can download it any way you want um this is intended to be uh free for development um and uh licensed for deployment um uh when when one comes to that point and um so we as i say we want to make our language as ubiquitously available as possible um so people can kind of take for granted that they can get it um we also want to make it so that people can redistribute well from engine easily inside other products even open source products we have a mechanism for letting people distribute will from engine as part of an open source project and that's something that um uh uh just to help uh this process of making sure that the the things we built and that this kind of paradigm we're pushing is capable of uh of being deployed as widely as possible we we basically don't ever want uh something about the way that we license products or that we have to license things from upstream providers of data and all those kinds of things to get in the way of letting people have access to what we've done i mean we've solved this problem at universities and labs and so on we will solve it for embedded wall from engines um we definitely haven't seen all possible cases of embedded wall from engines because orphan engine has only been out for a year or so but we're committed to solving that in all of these places i might mention that one new thing that's happening is there is a new persistent wall from engine so normally if you have a wall from engine you launch it it just runs it does its job it stops there's a new thing called wstp server which is a persistent wolfram engine which kind of sits as a daemon-like process on your computer and can take can spawn all from engines that that can do computations for you and it can maintain a persistent wall from engine if if you want to so that you can maintain state between different computations and so on so the uh i mean there are just many many different ways to uh deploy language uh if you look at kind of the the deployment options it's getting a little bit um uh it's a little quite a range i mean there's at the server level there's wolf and cloud which allows you to deploy notebooks and apis and scheduled tasks and all those kinds of things there's enterprise private cloud same set of capabilities there's application server which is for deploying apis there's the um uh this is a very lightweight um uh direct deployment of a will from engine of the world engine along with a web server um there's uh yet uh even more lightweight deployment with a web server and so on and then there's wstp server that i just mentioned so these are all sort of for different sizes and shapes of deployments these are all ways to deploy wolfram language um in in in various kinds of systems well it's all rather complicated and it's it's complicated because the world's complicated and there are all kinds of different places where one can potentially insert a computational language and so on one of the things we're working hard on is to sort of harmonize all these pieces into what we call a hyper architecture to sort of make it so all these different components can be added um as one as uh however one wants um and uh sort of the goal is to depl design our deployment space so that it's really convenient design sort of deployment the space of deployments as we've designed the space of functions in our language and that's what this hyper architecture concept is about uh by the way another emerging kind of deployment is autonomous deployment of language language in things like blockchains so we have this operation called orphan blockchain labs uh which has been involved with connecting uh wolfram language to lots of kinds of blockchains um it's also uh emerging as quite a standard uh for blockchain education uh it's very convenient to study and use blockchains from within wolfram language um it's uh the biggest story though is the emerging idea of computational contracts where we're kind of writing uh contracts directly in wolfram language and we're using our source of computational knowledge to provide sort of facts from the world for the operation of these contracts um and so that's uh that's something which is sort of a an emerging um autonomous use of wolfram language as something which just sort of autonomously exists in the in the blockchain world as a piece of computational language to be executed when a contract is triggered so to speak well there are there are just all sorts of other deployments i mean here's just a random example this is a registry of notable universes this is just a cloud deployment of of wolfen language there's a bunch of there's an embedded cloud notebook there um that uh um is about um uh well this particular uh universe model which i i doubt will be the one but um uh it's it's it's one of them uh here's another example this is a project we've been doing for the uh museum of math in manhattan um this is a project to kind of uh collect together um lots of interesting um artifacts from the history of mathematics and two i don't know which one to pick but um i'll pick one of them and to also provide okay that one was coming soon and to also provide computational essays that kind of describe the um uh um what uh what was going on on let's say the rhine papyrus or something um there we go there's a there's kind of a um and this is all just embedded notebooks as part of these web pages um also another deployment is all of the moocs that we've been building um and uh we've got an increasing number of courses um uh both about um about a variety of kinds of subject matter whether it's data science or calculus or whatever else built using our course authoring platform which we will eventually make broadly available but people can um can can request it even now um we're we're kind of trying to build up a sort of a whole ecosystem around what we're doing um that includes things like our um uh our notebook archive our function repository our data repository i'll probably talk about those a little bit more later um we're also in addition to trying to build uh software we're also developing further our services efforts so people who say uh i just want to get something that works and i want to build it with uh with our technology um there's both um our technical services to implement something specific and there's uh wolfram solutions which is concerned with architecting sort of a whole solution and they've been doing a lot of that for for all sorts of fortune 50 companies building sort of from the future type solutions um using the technology that that we have they're also those are sort of i consider these kind of on-ramps for the use of our technology in a bunch of different places there are some much more personal on-ramps uh things like our summer school there's some projects from our summer school this year uh there's definitely some physics themed ones there um or a summer camp for high school students um also some projects um uh from from that from this year here well so um we're also trying to develop kind of an office hours mechanism for people uh from the community to interact um in in a good way with um with our internal team and our r d staff and so on that will be something that's coming online soon uh we also for people who are doing startups and so on we have a new thing we call our will from eureka program uh which is kind of a pre-incubator uh kind of educational program for people who want to kind of understand our way of being able to develop products and doing innovation and how that turns into companies and that's something again we can uh people can can find out about from us and in terms of sort of on-ramps and interaction don't forget our live streams i've been doing that um almost every day live streaming kind of our internal um design meetings and so on it's a very uh uh it's it's um it provides a very sort of open transparent way for us to interact with people and get feedback and so on uh also mentioned by the way our our um uh open bug tracking system which i know quite a few people here have been making use of and we will be doing more live streams related to that soon all right i guess it is demo time let me um i've been been talking about all sorts of general things let's let's let's look at some actual uh what's coming in in 12.2 so let me see here let me just save this someplace where i'm before i mess that up um and let me just uh oops there we go all right so okay what's coming in 12.2 well the first the first big area that um i mentioned earlier is video so if i have a video see what video this is that's being read just for that's just a file name okay this is a video from the 2009 technology conference and uh i i know some of you have come to you've been actually conferencing the video directly and then particularly for those who are new here today i thought i would say so that so that's what a video in a notebook looks like just like we can have uh images in a notebook so now we can also have videos in a notebook but now this video thing we can compute with it so for example i can say get me 10 frames from that video okay so now it'll just get me ten frames as images from that video okay and that there's some or i could say something like let me take that video and let me make a video time series map and let me try and compute the mean value of the rgb components okay it's going to take a little while because videos are big grind growing grind and okay let's um let's see what we can do here let's make a stateless plot with red green blue here and this is now going to show me as a function of position in that video um what uh uh what the um uh what the average colors were in those images okay so this is now operating on videos as we can operate on all sorts of kinds of things and if we wanted to for example we could slice out um the let's say we could just go down here and we could slice out the audio from that video and how long this will take but um just take that audio let's see what happens this is reversing it anyway that was that was the result of just taking the audio as another object from that video and doing a computation on it so we can also uh do something like um i can do all sorts of more elaborate things let's see i might have another one here see if we can do this let's see this is this is doing a video map that is let's see whether this can be done in a reasonable time oh did something all right let's see what happens here let's just see we can now now it'll open that one in a separate viewer let's see if we can do this so what this will do oh that was boring it was quite boring what i did there was i i just blended every five seconds of the video together um and uh um kind of like everything was was ghosted out there didn't didn't look that exciting but i could as well have uh done a video map with some kind of machine learning thing and done face recognition on each frame all those kinds of good things or done that with the time series map or i could just take some random manipulate here let's try this okay so here we have some some some random little manipulate that i did made that's one line long and now let's see what happens if i just say make a video of that manipulate and i probably could have um oh let's see that um this is probably grinding grinding grinding it might take a long time because it's actually taking a while to render each frame but the main point is that this will now create a regular uh sort of maximal efficiency video with all kinds of codecs that you can then embed on a website or anything else directly from a manipulate like that um i think i should uh not not finish this here let's um um okay so let's let's keep going so then another thing that's new in in 12.2 and by the way i should explain that what i'm showing you is obviously a prototype version of 12.2 so all kinds of things may go horribly wrong yeah um this is uh this is just an animated image so it's kind of a junior video but it's not something you can immediately indirectly include in notebooks and this is just coming from a png file an animated png okay well let's talk about user interface um let's uh here's something um here's something interesting that we decided to add when you type in math we've got some lots of wonderful capabilities for typing in math that means something to the system but sometimes you just want to type math that doesn't really mean anything just like you want to type text that doesn't have direct computational meaning one thing we've now added is the capability of just typing in tech for example so if i type in i type control dollar and then i type let's say backslash frac let's see one over x and then now this is a piece of input that was just given in tech now this particular one was given in an input cell and it in fact can be interpreted as a piece of valid wolfram language input but we can also just input in a sense meaningless math and if we're making you know this is text and now we start off with a um a piece of meaningless math here and let's say i could say backslash math frack s-o-n let's try that okay that wasn't very exciting i would have expected that to do something more interesting let's do something more interesting let's just put in um here let me see if i can do um uh control dollar let me try this i'm not sure if this is gonna work okay maybe that will work okay that's a big lump of tech see what that does um okay so now that's then rendered that tech directly as a piece of sort of meaningless math as part of the text that i've got there so you can see it there um so this is something i think will be very convenient for people who in a sense want to write narrative math that doesn't yet have computational meaning um okay another thing that uh is again sort of a straightforward convenience um is uh auto linking of um of hyperlinks and actually coming with that is some the ability to we have a new uh hyperlink dialogue which um has all kinds of convenient ergonomic features uh relevant to linking to notebooks as well as linking to things on the web um another thing that we have um which i have to show you in a in a prototype of the prototype let's see if i can bring this up here okay there we go is um uh is a new capability which actually is something we've had for a few years in uh in documentation and so on it is the idea of click to copy so if i say click to copy of something like i don't know x to the fifth or something now i have something that says x to the fifth i as i hover over it i get a thing that says copy to clipboard i click it if i now go here and i paste it it will have that in the mouse so to speak so click to copy is something which is actually a default for some pieces of published notebooks in the cloud it's a default for some of our documentation but now it's something you can also have in any notebook that you produce okay let's go back to um something a bit more computational let's let's talk about a a different area um let's talk about some a new thing that we're bringing in which is spatial statistics so turns out there's some uh this idea you know we've got statistics of things in time like time series and so on uh we've also got the idea of spatial statistics of of things in space that can be treated statistically so let's say this is spatial point date or 100 300 random points in two dimensions and we can ask things like what's the mean point density there okay so it's just some number we can say what's the point density function and now we'll get something which is an actual function um that is the the the function that represents the density of these randomly chosen points so for example we could say just make me a 3d plot of that density function now that's the density function of those random 3d point random points or i could say let's let's compute the pair correlation function of those points so now this is computing uh correlations between all of those pairs of points if we now say now let's plot that pair correlation function as a function of distance this particular one won't be all that exciting um it's just okay it's just showing that the pair correlation is close to one for these particular points but this is now allowing you to essentially take spatial data uh positions of things and do computations with that and um now uh let's see we could take um to take another example we can this this kind of thing works not only for abstract points but also for for uh points in um um in um i'm surprised that's still blue okay but for points in um in actual actual geographical points okay so what we did here was we got spatial point data of some data about u.s national parks and there the when we said what's uh make a point what is this this is some strange bug oh dear dear dear okay well that that's um okay i was showing you um that's what i get for running a prototype build i thought this um okay there we go um so now if we wanted to we could take um the whole idea of random processes applies as well to spatial data as it does to standard distributions like a normal distribution or something this is now a point process and so now this is saying let's get that geographic point process um and we've we've chosen points now in in the over the over the us that are uh picked according to this particular uh statistical distribution of spatial statistical distribution okay so that's a new thing is spatial statistics uh lots of interesting things there um while we're talking about uh geo um these uh we have not only sort of merging geometry with geography but also merging topology with geography a kind of geotopology and so we've got all kinds of issues like let's say we pick a bunch of points which can be in lat long space and now we can do things like say uh what's a polygon inside a polygon inside a polygon uh geographically and yes you know the country of san marino is important because it's a hole in italy and so on but this is a general uh kind of thing where we can deal with uh sort of arbitrary topology of con of of um uh insideness in um uh in geographic computation okay another thing in geographic computation big thing actually which we've been working on for quite a few years is um to make our maps be made with vector graphics uh so this is running on a very slow test server uh real soon now we're running on a wonderfully fast server but right now it's running on something really really slow so it's going to take it a while to load this but what we should see here i hope it's going to load it come now oh there we go finally okay so what's important about this is this is vector graphics and we computed every placement of every label here and as we go in and i don't know what this stupid bug is the the um uh as we go in we can we can zoom in on this and we'll find that this is sort of perfect vector graphics not um not something that has finite resolution um so that's a uh that's an important piece of technology and actually you'll see a bunch of things coming out with maps from us um that make use of a bunch of algorithms that we have for things like label placement and so on also many different styles of maps are coming i don't know if i've got one other example here let's see if we've got one more example um this is just a different style let's see if that comes up at a better speed um we've got a variety of themes for um okay that was just a different a more web-friendly version of um of styling for for for maps but now you can expect kind of no compromises uh arbitrarily high-resolution maps uh from wolverine language okay um other kinds of things so from from um uh from space to time in our theory of physics we've realized that space and time are a bit more different than one might have expected before but um regardless of that it turns out that just like there are datums to represent different coordinate systems that one can use to label points on the earth so there are different kinds of ways to label uh moments in time and one thing we've been adding is lots of new calendars to represent different kinds of um uh kinds of ways to represent moments in time and so here for example if i say what's now in lots of different calendars and we can see uh might take a little while to compute some of these because it has to compute actual astronomical facts um and so here we have i don't know what some of these are in japanese calendar or um the uh the ethiopic calendar and so on we have all of these um different essentially datums to represent time now available in in the system well oh and we can do we could do lots of other kinds of time computations lots of new time computations so for example in the us it's uh you know it's a big deal it's an election time but a question you might ask is when is election day and so here that's the algorithmic version of when election day is and now we can say do a date select over the years 2020 to 2200 of what uh what day's elections uh would be held on according to this formula going up to 2200 and that's that's now another another sort of thing we're able to make computable in the world um is these kinds of uh computations about uh about um dates and so on all right let's talk about core math kinds of things something we've added is a lot of capabilities for sort of reasoning about functions so here's uh function singularities looking at the singularities of this uh this function over the complex plane um we've also uh uh uh i mean these are these are sort of properties of functions that end up being used all over the place another thing we've done uh is we're continuing to add yet more mathematical physics special functions this is a la may function which is by now is a four argument a very complicated kind of function um now sometimes you know when you think oh these are just obscure special functions why would one care about them turns out that they're important in in all kinds of places like here's for example a particular geoprojection that just got unbelievably much faster than it was before because we sped up the evaluation of jacobi elliptic functions so okay another core mathematical thing uh inverse laplace transforms adding uh bromich contours integra integration as a as a way of doing uh many more inverse laplace transforms we see a result there that comes out in terms of an inactivated sum i could say activate that sum and then i could say let's uh let's go ahead and plot that and we see the various poles uh being in or out of the contour as we compute that inverse laplace transform okay when talking about math um the um uh we've also got um uh we've also been adding to our whole way of dealing with um uh sort of raw axiomatic systems this is an axiom for implicational calculus um and the idea here is to be able to to deal at a completely formal level it's sort of the more symbolic than just symbolic way of dealing formally with systems and and we also have our automated theorem improving capabilities which have been progressively expanding one thing that's happened in the physics project is we have become very industrial users of automated theorem proving in fact for example the recent efforts improving equivalence to categorical quantum mechanics are really an adventure in automated theorem proving it's kind of nice thing to be able to say yes we actually proved that our model is equivalent to this and by proved i mean here's a proof as an actual piece of computable data well so oh yeah talking about proofs um we could talk about sort of the place where uh that technology first started to be used a lot which is in euclid and euclidean geometry i actually just wrote this blog post uh last week i think about um the empirical if this comes up oh come now yeah there we go about the empirical meta-mathematics of euclid there's kind of a study of uh that's that's uh an example of fear improving in our system but then i was studying kind of the network of definitions that um that euclid made in his uh 465 theorems and we're studying kind of the the graph of dependency this is kind of a piece of empirical meta mathematics that i'm interested in doing because i'm interested in the general theory of meta-mathematical space and this is kind of a first example that we've also looked at i also looked at um uh all kinds of um uh well i found that somebody had done part of what i did 400 years ago don know that she pointed this out to me they almost did a little piece of what i did with uh with dependency graphs for euclid although they didn't get it quite right in 1600 um but any case the um uh also looking at some other large formalized mathematics uh um data sets and trying to understand um uh sort of the the overall structure of matter mathematical space but back to euclid um one of the things that we've done is to uh add more to our capability for dealing with euclid's style geometry so this is a way of representing a not just a geometric object but a geometric construction um directly in um uh in wolfram language so this is a way of making computable the process of a kind of euclid-style deduction and so this is kind of an algebraic version of that euclid style deduction here's now an actual instance of the deduction why is it doing that well that's what i get for running this prototype build why is it not coming up well it's a dynamic thing come on it should work um okay well it should be showing you a nice picture of a euclid construction here but for some reason it is not um that's unfortunate okay well we have to say about that that's going to cause all kinds of trouble let me see ah what is it doing it's gone crazy all right let's see whether i can get this to work if i go here and i say what happens if i say page paste complete geometric scene i wonder what that will do now that didn't do anything um all right let's try this one more time here let's try computing this let's try this again and let's go back up here and tell it to enable dynamic updating let's try one more time oh wait a minute something happened there there we go who knows what was happening there any case we can take this euclid we can take this construction we can actually interactively move around the points in this construction there's another important new thing is the ability to sort of interactively drawing draw on the scene and we can go and go through the construction here we can go and look at different steps in the construction um actually i messed things up here let's see if i can um how do i get this maybe i can revert it here okay so this is that stage in the construction i can move that b around a little bit and move it to there i can move forward in the construction and um i can eventually get in this case a quadrilateral triangle constructed so this is this is kind of making use of our dynamic interactivity together with our ability to represent uh symbolically this kind of um synthetic geometry together with under the hood a lot of very elaborate algebraic computation to make all this stuff work okay so let's see moving on from there um uh let's we're talking about computational kinds of things here's a new area where we're kind of applying computation and that's in uh biosequences so here for example if i do this i will get something which is essentially a symbolic representation and what is going wrong here this is very okay this is kind of a symbolic representation of a dna sequence and so i can do things like i could say biosequence translate this and so then it'll take that dna sequence and translate it to peptides isn't that cute um the uh uh or i could say something like um let's let's take a biosequence for this particular gene um and now i'll i'll go and i'll be looking up that gene in the human genome i can get the biosequence for it i could for example just say string reverse this um and then i'll get the reversed sequence or i could say biosequence complement that i get the complementary sequence there and i could then start doing computations on this so i could say what's the molecular mass of that particular um uh piece of of dna or i could say um i could do something like this i could say biosequence translate this uh peptide um back into those are the those are the possible dna sequences that would generate that peptide or i could say something like uh let's take the biosequence that comes from that that that's a little small piece of dna let's make an actual molecule out of that and of course everything fits together and we can now say uh given that molecule let's see if we can do this let's try and make uh a 3d plot um a 3d rendering of that molecule and now we have that piece of that little tiny fragment of dna and now we've got an actual 3d molecule um that's generated from that so i i sort of i mean it's kind of a question of oh isn't it a little bit crazy to have something like biosequence translate as a function in the language well no it's not because you know what all users of this language right now are humans ultimately although in intermediate stages it's definitely used by computers and for us humans we're biological organisms and uh biosequence translation is something that is universally applicable to us so it's something that makes perfect sense to have in our in our computational language to represent things in the world but it's kind of really nice to see how both our string computation capabilities um and uh chemical computation capabilities sort of uh come together in this kind of biosequence capabilities area okay talking of chemistry let me show you another new thing this is uh a um let's say let's just draw a molecule um okay so this is now a molecular drawing uh palette so i can go and i can start some clicking and i can just start drawing a molecule i'm not very good at this i don't really know much about molecules but anyway let's say i say show hydrogens okay i'll show you where the hydrogens are now i can say return that okay now i have a molecule i can again just say um uh make a molecule plot 3d of that um and now i can take that molecule that i just drew and now i can get to and get this 3d molecular structure um and i can compute all sorts of things about the molecule talking of drawing um here's another thing after many years we've built a whole sort of new drawing system for wolfram language so you can say canvas and you get up this canvas that hopefully when i click on it see if this comes to life that should give us a an attached cell here which contains drawing tools and you'll see these are very nice new drawing tools that allow us to if i know what i'm doing what do i do here um oh no that's what am i doing here uh maybe i need that um okay so let's say i start drawing things and um i can conveniently select these things and um i can make it thicker or whatever um the main point is that we have all these capabilities directly in the language and in fact we have it set up so that not only can you draw from scratch and create something that is now a computable drawing you can also take something like um take an existing graphic and you can start annotating that existing graphic and you could add some region there see what we add here um and uh this now becomes an overlay on one's graphic um and so if i evaluate this i'll get something which is an overlay where i can actually be changing the underlying graphic it could be a manipulator or anything else i want um and this is now a sort of overlay annotation on it okay talking about graphics or another thing i should say is that this notion of attached cells this thing down here is an attached cell we have a new function attached cell which is an actual user-level way of manipulating notebook objects to attach cells to things okay other graphics kinds of things new thing uh radial axis plot otherwise known as a radar plot or a spider plot or a star plot nice in general here another one a parallel access plot also having lots of other names this is something that just convenient for dealing with highly multivariate data um the uh okay another thing we've got is um arrayplot3d this is a function i've long been waiting for so that i'm running a game of life cellular automaton and i'm running it in 3d and you can see all those little structures that come out but this is now array plot 3d is the thing that's creating this um this graphic with that that periodic structure there and so on and actually this is to show you something that um this is just to manipulate uh with a 3d cellular automaton i i first made these pictures of this particular thing with the cray 1 computer sometime in the early 1980s and it's really kind of nice to see that i can just sort of interactively make them by just running a slider now using array plot 3d okay so um let's talk about styling of graphics something that came late in the 12.1 cycle was the idea of cross hatching it's kind of a thing where if you want to make really sort of elegant um uh drawings of things it's often useful to have these kind of filling patterns so now we have that something we're adding in 12.1 is different kinds of filling patterns like this is a a conic gradient filling that allows us to to fill like that um these are these just other kinds of things of that kind okay more computational kinds of things uh lots of things in machine learning a lot has been added to our neural net repository a lot of new kinds of networks added here which we can directly use in welcome language through net model um the uh we've also been building a variety of new layers to to support the new kinds of things we've been adding um one new layer is a thing called functional layer which provides direct access to kind of the low-level infrastructure of neural networks through the mxnet layer that we have another thing we've been adding is compiled layer which allows one to use the wolfram language compiler to actually create direct machine code that can be inserted into a layer um in um in our neural net framework another thing we've done is uh to support um export to the onyx framework and that allows one to do things like build a completely standalone oh wow what is this that is very odd okay to build a completely standalone um uh version of a neural net that can be for example the thing i was trying to show you which came up as a notebook was i thought going to be a a cloud document that um uh is an example just recently done of taking a neural net that was created in more from language and deploying it directly to the um machine learning framework on an iphone so it's something where you can you can develop in wolfram language and then deploy um to uh um to a device like an iphone as a native piece of machine learning code i should remind people that we have a whole variety of ways in which we can kind of deploy native code to things something that just got added in this version of wolfram language is for our microcontroller kit we also can deploy to sort of all species of arduinos now i think there are 36 new kinds of targets where you can take a piece of of control systems symbolically represented functionality in wolfram language and compile it down to something that can be run in a an independently running microcontroller in a device for example completely independent of orphan language so okay let's turn to a oh i should say that also machine learning lots of other things being added um steadily include improving all sorts of super functions one that got added is uh face recognize um we've also um uh uh uh so okay so that that's a so so a thing to say i mean neural nets are a big sort of framework kind of thing a kind of one of a series of big frameworks that have come into almost numerical computing over the years first there was linear algebra now there's neural networks somewhere in the middle there where there was optimization and particularly things like linear optimization and then convex optimization we made a big push to make to provide kind of industrial strength convex optimization in wolfram language we've extended that in version 12.2 to add complex variables and parametric convex optimization we also added the capability to connect to other external optimization libraries from directly from wolfram language well now something else that we've been building towards for about a decade is some real world pdes so we've had the capability to do numerical pde solving and we built finite element methods and so on um but this is kind of a way of constructing sort of uh physical models with pdes easily so this is kind of a a construction uh element a laplacian pde term and there are all sorts of different pde terms and so on but here for example we're saying let's do the eigenvalues let's find the eigenvalues of a laplacian pde term over a regular polygon that happens to be a pentagon and so now if i can say let's make a list plot of those this is going to show us the eigenmodes of a pentagon and that's showing us probably we can figure out the symmetries of a pentagon from looking at the degeneracies of those eigen modes so um uh let's see what we can do here let's see if we take this let's do something more ambitious let's say we have a geometry represented by that region there and now let's say we want to actually do a let's say that's a muffler and let's say we want to actually do a physical computation about something to do with that muffler okay well let's use our knowledge of actual physical things that's fine using thermodynamic data which we actually just extended in this version to include more with humidity and other kinds of things about about air and so on um but uh we can we can just compute um the uh these these things about the real world now we can define these variables um to represent the actual sort of physics of our muffler and now let's say we actually set things up with acoustic pde components and acoustic absorbing values those are part of our sort of library of um building blocks for sort of physically oriented pdes and now for example we can do a parametric solution to that pde um in the uh with the region being that muffler and now we could even go ahead and make a slice contour plot 3d of um the uh of that particular solution at some particular frequency um in um uh in that system or maybe we can go on and what's this we could go on and compute uh the sort of uh frequency response of the muffler by actually solving the pde that solving the helmholtz equation with these boundary conditions and it's just going through and computing that might take a little while here it's um it's computing the result there and it's going to give us a frequency response curve hopefully at the end of this so uh it's something we've been building up to for a long time it involves a lot of computational geometry a lot of linear algebra a lot of other kinds of things uh to be able to to solve sort of real world pdes in that kind of way okay let me turn to a different thing let's talk about programming we've talked about sort of industrial strength applied mathematics let's talk about industrial strength programming so one question is how do you make code more robust so a big thing in this version is a framework we call the can confirm and close framework so the issue is you've got a piece of code and somewhere in that code something goes wrong and what do you do about it how do you propagate that error well this is a kind of a symbolic way to propagate the errors so we say f of x confirm of y z okay why there's nothing wrong with y so the enclosed that catches that confirm just says oh there's nothing wrong with that it's just f of x y z but let's say that y was actually dollar failed now that confirm will fail and it will propagate that confirmation failure out to the enclosing enclose and that will now return a failure object so let's say you're writing a function called add two you could say let's write an enclosed inside my add to function and now if i say you know add to a four great no problem it's going to give six if i say add to a missing that's one of the things that confirmed by default triggers on it'll just give a failure object so this is a way of of sort of if something goes wrong controlling the sort of the the spread of errors so to speak and as soon as the confirm fails as soon as it fails to confirm it will immediately go out to the nearest and closing and close so there's a whole family of these functions um so for example another one is is confirmed by and so this says can you confirm that by this by this function number q that this is a number okay great can you confirm that x is number q no so that's now a failure object and similarly here we can say let's write something like this which asks to confirm that the thing we gave first as a string okay great let's do this oops that's not a string so make it a failure object and now we can say let's let's now look here at confirming this world thing we now confirm the world the this world function now we can map it over that and it's going to work just fine now let's say we do this we map it over this and now we've got a an individual confirmed there that and that confirm will eventually fail and that will propagate to the outer enclosed and so the whole thing will become a failure okay so this is an important thing for making for taking uh code that you write and making sure if something goes wrong if it didn't end up being the thing you thought it was going to be propagate that error outwards without having to write a lot of complicated code that checks for the error all the time if this if this of this there's a family of these functions confirmed by confirms by function confirm match confirms that the thing you get matches a pattern confirm quiet confirm that the thing is quiet and generate a message confirm assert just check that this particular assertion is true and so on the actual design of confirming clone is quite interesting kind of under the hood it's a combination lexically dynamically scoped thing um which is probably going to be a model for other things that we do going forward another thing that's practical thing uh in this version is a thing called with cleanup which is a way of ensuring that certain cleanup code gets let's run even when there's an abort even when a confirm makes you jump out of something this cleanup can still happen and so on for um debugging we're adding some things in in version 12.2 if we just have this table okay great we can say let's let's put in here let's say we want to know how long do these things take so let's put in just echo timing here um and i can say i could say that and now this is going to tell me how long each of those took or i could say put in an echo evaluation here um there we go and now it will show me uh what the input and output for the evaluation was and how long it took so these are just convenient things to be able to insert in your code just like echo you can insert anywhere it still returns the usual value but it produces some sort of side effect showing you what's going on okay on the subject of making code beautiful uh one of the things when one often writes function pure functions in wolfram language and i've for quite a few years often like using escape fn escape to write a function like that um one thing we're adding i'm afraid i don't think it's working yet in this version is that you can just type vertical bar dash greater than and you will get one of those some function objects that just like if you type dash greater than you'll get a nice rule symbol there's just a convenient way to write function in world from language and a sort of elegant thing here okay so another another sort of programming convenience um a function called apply to so let's say i have an image here now i could say let's say i want to color negate that image i can say apply to that image so i say image at equals color negate now the image will be uh equal to the color negation of the image okay there are also another number of other new functions like fold wild which is joining the nest while take wild family another thing that's coming people may know that it's about to be the centenary of combinators uh sort of the first actual concrete instance of the universal computation uh first sort of uh announced in december of 1920 um as kind of a part of the the sort of celebration of the centenary of combinators we're making sure that we can support combinators well in 12.2 combinators as in much early mathematical logic involved writing down function compositions with left associative function composition normally our function composition that we write with an at sign is right associative it goes like that but left associative function application was a thing back in the day and is something that is important for dealing with combinators so we're introducing this thing called application which is a left associative function application uh as as part of the the combinator celebration okay another completely different kind of thing let's talk about arrays an array gymnastics so this is something where we're saying uh let's reduce an array along a particular axis and so this for example is reducing this array along its row axis this is reducing the array along its column axis and that's a very convenient thing to be able to do we're saying essentially here take a mean of the columns of this in this array and this is a general function array reduce it has many many capabilities for doing these kinds of things okay so another thing that talking about code and so on we're working on a big project and code assistant tools i mean think about kind of semantic checking you know we've got spell checking we've got it same-sex coloring and so on this is kind of semantic checking of code using machine learning and using rules and so on i think it's going to be something very helpful in terms of quickly being able to write correct code one small piece of that that will be in 12.2 is something to do with code formatting um let me show you that so here we're going to take um let me open a new wl file so i say new uh package script.wl so this is a new um it's going to be a new open language code file and now let me paste a big lump of code in here let's see if i've got this there we go there's a big lump of code i pasted it okay there's a new button at the top here that says format cell so i picked this cell so i can now say format cell and now it'll run an automatic code formatter on here with with certain with a certain set of choices about how to format this code now if we pull up a palette we've got here a code formatting palette this code formatting palette has a variety of options for how to format the code so there's a notion of what we call airiness which is how how airy is this code how um how how much does it make use of how how much does it spread out across lines let me see if i if i set this to full airiness what's it gonna do oh there we go so now it's now it's made this code very very spread out across lines if i reduce the airiness level uh over here we'll see something where we're where the code is much more crunched together on different lines and so one of the things we're doing is is to provide these various kinds of settings to conveniently format code in different kinds of ways um so that's something coming first to the wolfram language uh code editor here and we'll also be able to insert this kind of capability inside our external ides we've got a whole program of being able to take wolfram language syntax coloring and so on and making it available inside all possible external ides okay another thing that's coming another big thing that's coming is a thing called form notebooks okay so let's say you want people to enter some input maybe it's you want them to uh to fill out some form okay you can do that by just having um by just having something that you create with form function and so on but let's say that you want something much more elaborate that has all kinds of notebook capabilities but you want people to sort of be able to fill it out as a form well then you can use this new kind of construct that we call a form notebook and a form notebook is a notebook that is a notebook that you can treat as a form so let me try to show you how this works it's a little bit uh complicated to understand everything that's going on here so we say insert here and we can say insert uh a form element here let's say we insert radio buttons here so this is now inserting a piece of code that represents radio buttons so there are the radio buttons that we're going to represent here let me go ahead and insert something else here let me say let's insert a let's say a slider here okay so that's the code version of it that's the um and let's say we put something up at the top here we say heading here and we say you know enter the right value okay so now we have a an authoring form notebook now let's say and we could also let's just for fun let's put an editable notebook area down here as well okay so now let's say let's generate from that so what do we want to generate we can generate various things but let's just say uh let's see let's just say we want to oh yeah here that's right we want to we want to create a form notebook and then the form notebook is going to do something with that form we'll just say create document okay so this is now a built form notebook okay so all those things those controls that we put in this is now the version so let's imagine that you were generating a sort of a quiz for some education application you would author it in the form authoring notebook you would generate it as a form notebook and then somebody might fill in values here so let's say we fill in you know something like this okay then we got a result okay now we say given this form notebook let's submit this form notebook and that pull down that i was kind of ignoring before is telling us what should you do when you submit that form notebook should you send the results to an api should you put it to a data bin what should you do here all i'm going to do is i'm going to just create another document from it so i run that form notebook and what i've generated here is an association and that association is the set of results that i got from this so it says key one that was the default name of this element of the form notebook just has label b and this one had a particular value for the for the um uh for the slider and so on and this is now the notebook piece and so on so this is now this is what i entered in that form and this could have gone into a program to interpret and i could have got something which just said okay i'll do some assessment of this and i'll tell me whether i got the right answer whatever else so this is a mechanism for authoring a form notebook you deploy the form notebook anybody all kinds of people can fill out this form notebook the results of what they fill out can be sent back in a variety of ways for a program to then do computations on it so one thing that's coming that um is related to this that you can see how this might fit in is a function called assessment function assessment function is a thing that takes inputs there's an assessment function object it takes inputs and it tries to figure out to assess those inputs okay so in this case dog was a correct answer cat was a incorrect answer there's the assessment assessment result object now this gets a lot more elaborate because the assessment function can be saying move a locator around on a map and see whether you get inside a country border or not or put in this algebraic expression and see whether these kinds of transformations uh can take it to some other form or not so it's a it's a way of it's kind of a little bit like interpreter but it's a way of of generally assessing inputs and it's something that will be used a lot i think in connection with form notebooks for example for education applications okay so we will also be building out a whole sort of courseware repository in which people can create things using form notebooks using our course authoring tools can make things that are basically just like the mooc that was made from my elementary introduction to wolven language but all the tools will exist to just directly make something like this in a very convenient way well something else let's let's change topics a bit something that's always happening with as we move forward with our computational language is kind of the growth of our knowledge base and um the uh particularly given some new partners that we have we've been kind of uh really really driving that knowledge base in a whole variety of directions so let's take a random example let's take food we now support five hundred thousand kinds of foods and um they're about twenty or thirty thousand in a typical grocery store so for example let's say we have a kitkat i rather like those there's a kitkat and now we could say you know let's generate the nutrition label from a kitkat based on our knowledge base there's the result um so you know lots of different things here's one that isn't really my particular kind of thing this is a let's take 10 random weight training exercises okay let's take one particular one i barely know what this is i'm sorry to say um let's take what do we know about a front raised weight training exercise okay we could say let's um uh let's find out what are the muscles that are used in that now of course everything is now computable so all these different muscles and so on these are all computable things so we could for example take them into anatomy data anatomy plot 3d and we could just plot where are those muscles um showing also a skeleton to attach them to here um oh it's got to got to load in all kinds of geometric data about um about anatomy here but eventually we should get some um we should get um a result by the way one thing we've been doing a lot is um optimizing the caching of things that have to be the the bucketing and caching of things that have to be loaded from the cloud for our knowledge base so you'll see a lot of things this one we haven't gotten to yet but a lot of things um uh we're just much much faster um in terms of the way that large-scale pieces of our knowledge base can be loaded into for example a desktop or from language um okay as it grinds away here let me see well i'm i'm just there's lots of other pieces of the knowledge base why is this so slow i don't know what's going on here um who knows um i was going to show you um uh all sorts of weird things i i had a note here about cultivars of tomatoes um just one of the things that we're now into in kind of the structure of our knowledge base by the way another thing that happens in knowledge base that's really disappointing let me let me kill that i know what that is very weird okay this is um that's what i get for as i say showing you the very latest 12.2 okay that's something went horribly wrong there let's quit that and quit it and let's just let's just see whether if i were to um run this again it might work better i don't know um okay in any case um there's there's a lot of things now oh what a silly thing to do why why around it again if it didn't work once maybe it won't work again um the uh so let's see um a lot of things that we might think of as data but they're actually very computable data so for example here's an example this is geometric scenes geometric scenes are another kind of thing in the knowledge base but now there is a geometric scene which is euclid book 5 proposition 19. here it is as a symbolically represented scene which we can then say let's get a random instance of that scene so we we're using kind of a knowledge base to get something which is now computable and this seems to be a construction of some kind and i'm sure we can compute things with it um another thing we can do another new thing is with the demonstrations project we can actually our all of our 13 000 demonstrations including many contributed by people who are probably here um are now available as computable objects in welcome language and so for example we could take one of those demonstrations and we could say give us the manipulate that comes from that demonstration and there it is directly there as a as a cell in our notebook and we can do we can do all kinds of computations with it so uh that's that's another example of um um of a way that uh the knowledge base has more computable kinds of things and i might mention the whole notebook archive which we're slowly building out where one can store all these computational essays that contain uh these kinds of things okay different topic let's talk about more about kind of the outside world now not in terms of computable data but in terms of importing things big thing being added in version 12.2 is the import of pdf so this is now importing from a raw pdf file this is now importing into computable data the first page of a fine paper here um about um uh which we can now do computations on and in fact for example that that picture i showed you earlier of the big word cloud of of papers um that uh sight wolf language um is uh was was got by just using importing a pdf from preprint servers okay so um another thing about the outside world wiki data data uh you know wikidata is unbelievably much messier than the kind of curated knowledge base that we have um but it's still convenient to be able to kind of poke at it and get things this is now doing a geo lookup against wikidata um okay in terms of things about the outside world uh talking about kind of infrastructure of the outside world is a very practical thing uh this is import of pem files permissions files um this is being able to import things like security certificates um that's a a new kind of symbolic object in our system is a security certificate of the kind that websites can issue and so on and the importance of this is it kind of allows you to flow through uh kind of the infrastructure of the world so to speak uh carrying various kinds of authentications and permissions and so on we introduced some system credentials keychain related things in previous version now we're introducing uh system credentials uh now we're introducing um uh the um um uh the the um uh the capability to um um to do um uh to deal with security certificates um we also i mentioned our blockchain capabilities we've been steadily adding blockchain capabilities here's an example blockchain we just added in the last couple of weeks bloxburg this is the most recent block mined on the bloxburg blockchain um that's uh so that's another kind of thing um by the way as a practical matter version 12.1 and 12.2 are compatible with the upcoming version 11.0 of the mac os mac operating system otherwise known as big sur earlier versions are not compatible with that unfortunately unlike wolfram language which has remained compatible for 34 years the same cannot be said of of computer operating systems we're not able to predict the future with respect to computer operating systems so before big sur existed we couldn't make things compatible with big sur and that means only 12.1 and 12.2 are compatible with it um i mentioned uh okay so here's another practical thing this is about remote evaluate so remote evaluate allows one to remotely evaluate wolfram language code um on a remote computer so this is running on my desktop computer and it's telling me that i have 68 gigabytes of memory available on that desktop computer i i was thinking i could run current image on my desktop computer but that doesn't seem to work for some reason probably a permissions issue um but any case you can imagine uh just running remote evaluate mapping it across a whole network of raspberry pi's that are making various kinds of measurements and so on this is a convenient way to do sort of remote computation okay another long-awaited capability is being able to do uh remote computation remote batch computation in the cloud so for example if you're going to use aws if you're going to use amazon to do to run a bunch of big jobs there is now a mechanism for using remote batch submit to submit jobs to your amazon account and so here we've got this is probably some big messy thing about uh this is comes amazon credentials um that um uh is um these are these are set up by um uh by another function but now we can go ahead and say let's submit this job now into the amazon infrastructure to run as a batch job and um this is going to be running what is this doing this is a map job that's mapping across a bunch of a bunch of different things it's submitting that job and we should now once the once the job submission comes back uh remember this is a batch job so we're not in control of how long it takes we can say once that batch submission goes through we should be able to say uh this is we're waiting for the for the amazon system to accept our batch job um we should be able to say show us a dynamic status visualization of the state of our batch job and i don't know how long it probably depends on how busy how busy aws is right now how long it will take that batch job to submit um but we can go ahead and um uh well it's taking an awfully long time uh i maybe i may be timing out here um uh in any case eventually it will submit the batch job to the amazon infrastructure we'll get back a task object we'll be able to see um how the job is running and eventually we'll find out the job is finished okay there we go there's the remote batch object that represents our job we can now say show us the dynamic status visualization this is saying there are 16 cores that we allocated here 16 places where it's runnable if we wait long enough we will get evaluation results right now if we ask for evaluation results i suspect we'll get a big pile of missings um okay requesting child dog job metadata from provider so this is this is now querying amazon to ask the status of our job and ask whether the results have come back from these different parts of the job very boring they're all missing not available if we wait for a few more minutes and run this again uh we'll probably find that the job has been run and the results come back okay but anyway that's a that's a practical capability uh for running large-scale computations including machine learning and so on um to uh within um uh fro with wolfram language and there's there's a lot of moving parts that have to work to have this whole pipeline operate and it does very nicely um we're supporting right now amazon will be supporting azure in the future we're also supporting charity engine um which is a uh a kind of a a public crowd-sourced computing platform um uh for doing large-scale computation okay from talking that's a very practical kind of computation let's also talk about another kind of computation let's talk about quantum computing um our package for quantum computing um is is coming in this version um we've got uh uh we can do uh all sorts of things it's a little bit reminiscent of um uh of a neural net package because of the neural net subsystem because it it it allows one to take these sort of blocks of computation and put them together now i mean and we can go ahead and do computations here and we can say let's actually run the thing and um okay this is a quantum tensor product of quantum discrete states et cetera et cetera et cetera and we can actually run it and we can compute uh some results here of um of actual uh probabilities for different outcomes and so on now i mean this is all well and good this is a simulator of quantum computing it's a whole different issue whether you can actually run this on a real quantum computer one of the things that's really interesting about this is you can take our representation of quantum computing and there's now even a function in the function repository that will simply compile this representation of quantum computing into multi-way systems in other words you can compile this representation of quantum computing into our model of physics so in a sense that's kind of if you want to know if the model really makes sense this is a kind of proof by compilation you can take the representation of ordinary quantum mechanics and compile it into our model and this is kind of the demonstration that that's possible um but uh it's also an interesting thing for just exploring quantum computing although i think multi-wave systems will actually in our and our models actually provide a yet more powerful way to think about how about quantum computing and also show some of its limitations okay um let's see we talked a little bit about cloud deployment um let's uh all sorts of things have become a bit more streamlined with cloud deployment you know the way it works on the sort of inside story of this we have versions of world from language like version 12.1 version 12.2 and so on the cloud is continually being updated so we just pushed version 1.56. of the cloud and there's a bunch of things coming in 1.57 which will be coming quite soon um and so the cloud is continually getting upgraded um even between different versions of language it's also true that we have paclets that are being filled up late updated in world from language as well as of course the knowledge base is being updated and these are all things that um uh that that can happen um okay so uh something that i think will be important i was going to mention something else here about the compiler the compiler is a big project it's slowly coming along big thing that's happening that won't be quite in 12.2 is a lot of but it will be in a packet update actually there's a lot of new tooling for using the compiler with dynamic libraries and being able to compile a piece of code and have it be able to be put in a function that's in the function repository and have when that function in the function repository is downloaded you get the correct piece of compiled code for whatever platform your computer is is uh is using and so on uh also with more data structures now and all kinds of other things okay something important for developers is the paclet system uh and paclet tools so in version 12.1 we kind of mainstreamed the whole paclet system paclet system is what allows um us to um uh um is what allows us to deploy a complex thing within a wolfram language environment and by a complex thing i mean not just functions but also things like palettes and documentation and all sorts of other kinds of things that you can plug into the system and by the way something that's really coming is just an awful lot of other things you can plug in whether it's your own version of a random number generator your own format that you're importing your own um uh service connection all kinds of different things so so that's something that's that's coming there now um one thing uh when you build packlets okay let me just start this up here um when you build packlets there's now in version 12.2 there's an elaborate system and why is this not working this should be coming up somewhere did it come up somewhere but i'm not even seeing it oh yes it did there it is it's hidden um so this is the beginning of something which will get further developed this is the beginning of being able to write documentation just like the documentation that we write for the the orphan language write your own documentation and now i can say okay let me just have a function name test function let's say here and now this is um and now this will bring up i hope a function page this is just like the function pages that we uh that we create for documenting a language you can fill in all these things and this is kind of going to be deployed as a form notebook and once you fill all these things in you can then build it into documentation that can show up on the web or in product um on the desktop uh for for the paclet you've created so this is a way to kind of create um uh something which has the same kind of richness of documentation structure and so on as as anything that you could that we've been able to create uh directly in in the in the main system so that's the thing that you can then take all that documentation and put it in your packet and deploy your packet to the paclet server uh coming soon will be a public packet repository but you can also privately deploy packets um to a paclet server okay so for example another thing that's coming is um the ability to make a new uh just just immediately to make a new where is this oh yes new function page new guide page okay here we go this is just if you just want to make a disembodied guide page a disembodied page that just is your favorite collection of functions that you want to use um this is a way to do that and this this provides you a variety of a built-in services and will also allow you to deploy this so that it becomes a um a cloud page that you can then just have as something that you have as a favorite in your web browser or something like that um or something where you can just use this as a guide page to provide you convenient functions so for example we have one of these i showed earlier for our physics project just a big list of the functions that we use in the physics project and that's where i always go when i'm actually using one of those functions to go find the function that i can can use so a thing that um uh thing that we've really been developing over the last year is the function repository so the function repository is a way of just adding functionality very conveniently to wolfram language and the function repository uh roughly more than doubled the the number of functions in it since last year it now has 1651 functions in it as of today i think these functions are all things that go through a curation process a review process um but they're written by by the community and they're just all kinds of different functions here and i don't know let's pick a random example and a sky position chart here it is and what's really important about this is i can just click here i can go to my notebook um you know i can just go to my um um my notebook anywhere and i can just say wherever my notebook was let's see where was it let me pick the right one here um you know i go to my notebook here and i just paste that in and now it's a resource function and oh great this is very sick in some way ah okay this is what i get again this is a um you know what i am going to this is probably some interaction with those packlet tools that i just showed you so let me quit this and start it again and uh you see this is this is uh is always one of the interesting things with these keynotes these are very um uh real life kinds of things okay so here here we've got this resource function that i just copied from that page and so what should happen if all is working correctly is that we should see why it's it's doing this but um we should just see that it loads in that function uh oh wow how weird very weird okay well let's try another one let's try um let's try something to do with um here's a covert 19 epidemic data okay let's try this let's try let's try pasting that in here okay so let's now just see that works it says finding resource and now it should if it's not horribly broken um okay there we go so now it's it's just running that function and what's convenient is that function i the the function repository just had to give the definition of that function it was leveraging everything we built in waltham language to be able to know oh there's these entities which are countries there's all this uh structure of associations and so on and so on and so on um there are all these things that we're able to take where um uh where it's um um uh where where where we're sort of leveraging the um um all the capabilities what's this let's see how that wasn't what i needed let's look at what this actually is okay oh boy this is a very complicated um there's a very complicated set of things that one has to go through here to get them to get this example by the way this is using click to copy it's very convenient to get examples from here but we could pick a a random entry from the function repository i can even do that programmatically and the whole point is that the function repository what makes the function repository makes sense is that you've got all the welcome language to build on typically when people build libraries for low-level programming languages and so on you know you'll have a library that's you know for doing some particular kind of image processing you look at the library it's got 300 functions in it and you know 295 of those functions are support functions that deal with the processing of images in this way or that way and only five of them are really the the you know the the the the killer functions that are actually doing the interesting unique thing but you had to build all that support because you didn't have this kind of whole computational language to provide a representation of all these kinds of things computationally and more from language we have that and so when we build a function repository function we can just add that one little piece of functionality for the one thing we want building on top of that existing computational language and i think that's a very powerful combination and by the way you know you can take those things written in some low-level language let's say a python program or something you just take any one of those python libraries and you can just wrap it as a function repository entry and and that's something that it's a non-trivial piece of software engineering that we can get that you know they're different versions of python they're not compatible they're weird library things that happen we're dependency tracking and so on i think we're slowly getting all of that sorted out so that you'll be able to just say here's this thing it happens to be implemented using this external python library but you can wrap it in a function repository entry and you can just run it just like i ran any of these other things and the fact that it calls this external code is is not relevant it's still running using all of the capabilities of our computational language i should say by the way that i think as we build out the the paclit repository um paclets are things where you can create a whole new world in a backlit you can change everything about the interface to your wolfram language you can change all these functions um but it's you know you're kind of when people use that paclet they're diving into this whole world you can also have just a single function repository entry where people just using this particular function in the usual world of the world from language um i think the sort of a combination that we're starting to use which is there is a paclet that contains a lot of complicated stuff but it sticks its head out so to speak through these a few particular functions in the function repository and so really the way that people have to think about this backlight they don't have to think about the whole big structure they just have to think i want to use this particular function great i can use it in this way okay well so and by the way when um i should say that um uh you can do things like put paclets and github you can create github repositories it's a good thing to do it's great for will be nice to see more github repositories based on welfare language makes us look bad when when people are not bothering to put things in github because they just need to write a few lines of code but it's still useful to put it there because it helps people to see what's possible with wolfram language and so on um by the way in uh already in version 12.1 i think at the late stages of version 12.1 we made it a lot easier to enter data in the data repository to get data at the point where it is computable enough that you can just read it directly and dwarven language that's a really good thing to do if you're trying to publish data that you're creating by the way the function repository is also a good place to publish things that results you know now that we have this whole ecosystem of citing functions it's like publish your your results as a function in the function repository it then becomes a thing that can be used as part of the process of creating research papers and and so on um i think that um it's uh in general publishing notebooks to the cloud um is something that's just a really great way to publish things and particularly when it comes to kind of computational essays that mix sort of narrative text together with computational language well i've gone on way too i haven't gone on as long as i did last time we have we had more functions to talk about but i have uh managed to get through them more quickly than i did last time um i think maybe i should uh so i've tried to give you some sketch of what's coming in 12.2 it's a longer story what's coming in the longer term there's lots more things coming um lots more things that we've been developing things we've been developing for a decade that are slowly moving towards fruition um i think the um the thing that um uh that i should say to uh to kind of try and um close this off is you know we've been working very hard we've been working very hard for the last 34 years actually to develop this whole capability of this computational language that we have um i think that it's gotten a long way it's kind of an interesting process that the further we get the further we can see about where we could get to and uh that means we've been seeing kind of this accelerating trend of the kinds of things that we can sort of make computational and it's it's allowed us to kind of have this um uh this this uh we've been gradually sort of making more and more of the world computational and i think we've got a really long way in doing that um although from where we are now i can see even more things to do that with the challenge now is to have the world really be able to take advantage of what we've done and really take advantage of this kind of computational paradigm as i say many of you are sort of uh people who are bringing artifacts from the future into the present day and making use of these capabilities it's kind of a neat thing to do it's sort of a superpower you can bring in to apply to different kinds of things i think we sort of have a responsibility to to try and deliver this message to a broader uh a broader range of people in the world in a broader range of organizations we're doing our best to try to make that happen in terms of making sort of our computational intelligence available in the most effective ways through the most effective challenge channels with the most effective partners and so on but it's something that uh there's just there's just a huge amount to do there it's something that is kind of an exciting thing because we're at this kind of watershed moment in intellectual history where this kind of computational paradigm that is kind of a a great new thing it's it's you know maybe the last such paradigm was perhaps the mathematical paradigm which is maybe 400 years uh since it sort of became uh streamlined we've now got such a paradigm it's a it's kind of a terrific time to be around and doing things and i think we now have as i say something which perhaps in some ways is a is a kind of is a thing brought in from the future um but brought to today and something that um uh we can all make use of and it's uh it's something where i would like to would like to encourage people to do what we're trying to do but we're just a small company really focused on on trying to grow plant the seed of technological capability to really deliver what's needed to to actually make this sort of computational paradigm to take take root and to really make it to the point where sort of one can rely on computational intelligence everywhere and where people understand computational language as they today understand things like mathematical notation and where people can use that computational language as a way to to uh provide sort of a foundation for sort of computational x for all x and i think there's just a an awful lot of wonderful things that can happen as sort of all these things all these x's become computational x's and as we can bring sort of the clarity of thinking and uh that computational x brings to all these different fields and by the way also allows one to bring in a lot of other people who might not otherwise have been able to access those kinds of fields with this kind of computational way of thinking about things it's just much broadens out the kind of kind of people who can contribute to what's going on because in a sense you're sharing the burden with your computer by by expressing things computationally you immediately have a collaborator your computer to do things um and that's something that uh we sort of increasingly see i mean i've seen that for example in our physics project that something as well as great human collaborators it's really critical to have that uh computational collaborator to really do things which which i think otherwise uh would not have been possible and uh would not have happened for a very long time all right well i should should wrap up there thank you very much and welcome to uh the conference i know there's lots of um lots of interesting talks that are going to happen and lots of get togethers which i look forward to attending um i'll be doing a sort of q a session i think it's tomorrow um about uh whatever people want to ask about um and uh i would say that the things i've talked about about sort of the the near-term future of 12.2 i think most of those things will be covered by by particular talks and people can uh are welcome to ask about them um and uh uh look forward to interacting with people over the next few days all right thanks very much
Info
Channel: Wolfram
Views: 23,880
Rating: undefined out of 5
Keywords: Wolfram, Physics, Wolfram Physics, Wolfram Physics Project, Stephen Wolfram, Science, Technology, Wolfram Language, Mathematica, Programming, Engineering, Math, Mathematics, Nature, A New Kind of Science, NKS, Computer Science, Philosophy
Id: PtvR-YgRdpk
Channel Id: undefined
Length: 169min 56sec (10196 seconds)
Published: Tue Oct 06 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.