CINXE.COM
Today We Launch Version 11!—Stephen Wolfram Writings
<!DOCTYPE html> <html lang="en" prefix="fb: http://www.facebook.com/2008/fbml, og: http://ogp.me/ns#"> <head> <!-- begin framework head en --> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="utf-8"> <title>Today We Launch Version 11!—Stephen Wolfram Writings</title> <meta name="description" content="Mathematica and the Wolfram Language: Version 11 released Aug 8, 2016. 3D printing, machine learning & neural networks, audio. Available for desktop, cloud."> <meta property="og:title" content="Today We Launch Version 11!—Stephen Wolfram Writings"> <meta property="og:description" content="Mathematica and the Wolfram Language: Version 11 released Aug 8, 2016. 3D printing, machine learning & neural networks, audio. Available for desktop, cloud."> <meta name="twitter:title" content="Today We Launch Version 11!—Stephen Wolfram Writings"> <meta name="twitter:description" content="Mathematica and the Wolfram Language: Version 11 released Aug 8, 2016. 3D printing, machine learning & neural networks, audio. Available for desktop, cloud."> <link rel="stylesheet" href="/common/framework/css/framework.en.css"> <script src="//www.wolframcdn.com/consent/cookie-consent.js"></script> <script src="/common/javascript/wal/latest/walLoad.js"></script> <script defer src="/common/js/announcements/script.js"></script> <script src="/common/framework/js/head.en.js"></script> <script src="/common/js/jquery/3.7.1/jquery.min.js"></script> <script src="/common/js/jquery/plugins/migrate/3.5.2/jquery.migrate.min.js"></script> <script src="/common/javascript/analytics.js"></script> <!-- end framework head en --> <script src="https://writings.stephenwolfram.com/wp-content/themes/sw-writings/jquery.lazy.min.js"></script> <script> $(function() { $('.lazy').Lazy({ effect: 'fadeIn', effectTime: 250, threshold:200 }); }); </script> <script type="text/javascript" src="https://writings.stephenwolfram.com/wp-content/themes/sw-writings/sw.js"></script> <link rel="stylesheet" href="//www.wolframcdn.com/fonts/source-sans-pro/1.0/global.css"> <link rel="stylesheet" href="//www.wolframcdn.com/fonts/hack/3.003/global.css"> <link rel="stylesheet" href="//www.wolframcdn.com/fonts/mathematica/1.0/all.css"> <link rel="stylesheet" href="https://writings.stephenwolfram.com/wp-content/themes/sw-writings/clipboard.css" type="text/css" media="all" /> <link rel="stylesheet" href="https://writings.stephenwolfram.com/wp-content/themes/sw-writings/python-pygments.css" type="text/css" media="all" /> <link rel="stylesheet" href="/common/js/clipboard/2.0/clipboard.css"> <link rel="stylesheet" href="/common/templates/www.stephenwolfram.com/css/responsive-header.css" /> <link rel="stylesheet" href="https://writings.stephenwolfram.com/wp-content/themes/sw-writings/style.css" type="text/css" media="all" /> <link rel="alternate" type="application/rss+xml" title="Stephen Wolfram Writings RSS Feed" href="https://writings.stephenwolfram.com/feed/" /> <link rel="alternate" type="application/atom+xml" title="Stephen Wolfram Writings Atom Feed" href="https://writings.stephenwolfram.com/feed/atom/" /> <script type="text/javascript" src="https://files.wolframcdn.com/pub/writings.stephenwolfram.com/js/menu.js?5db8f077951d5e4ef6fbad86daf24214146552f3ae141ac21f7cf2aef767799678b244ec4070f219c19860ab58d8271a"></script> <link rel="stylesheet" href="/common/javascript/jquery/ui/1.10.2/themes/base/jquery.ui.all.css"> <link rel="stylesheet" href="/common/javascript/jquery/plugins/colorbox/colorbox.css"> <script src="/common/javascript/jquery/ui/1.10.2/ui/jquery.ui.core.js"></script> <script src="/common/javascript/jquery/ui/1.10.2/ui/jquery.ui.widget.js"></script> <script src="/common/javascript/jquery/ui/1.10.2/ui/jquery.ui.mouse.js"></script> <script src="/common/javascript/jquery/ui/1.10.2/ui/jquery.ui.slider.js"></script> <script src="/common/javascript/jquery/plugins/colorbox/jquery.colorbox.js"></script> <link rel="stylesheet" href="/common/javascript/jquery/plugins/magnific/magnific.css"> <link rel="stylesheet" href="/common/javascript/jquery/plugins/magnific/magnific-types.css"> <script src="/common/javascript/jquery/plugins/magnific/magnific.min.js"></script> <script src="/common/javascript/jquery/plugins/magnific/magnific-types.js"></script> <link rel='dns-prefetch' href='//s.w.org' /> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/writings.stephenwolfram.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.7.2"}}; !function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),!(j.toDataURL().length<3e3)&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,65039,8205,55356,57096),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,55356,57096),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55357,56425,55356,57341,8205,55357,56507),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55357,56425,55356,57341,55357,56507),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='howToCiteCss-css' href='https://writings.stephenwolfram.com/wp-content/themes/sw-writings/HowToCite/style.css?ver=4.7.2' type='text/css' media='all' /> <script type='text/javascript' src='https://writings.stephenwolfram.com/wp-content/themes/sw-writings/HowToCite/HowToCite.js?ver=4.7.2'></script> <link rel='https://api.w.org/' href='https://writings.stephenwolfram.com/wp-json/' /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://writings.stephenwolfram.com/wp-includes/wlwmanifest.xml" /> <link rel='prev' title='Idea Makers: A Book about Lives & Ideas' href='https://writings.stephenwolfram.com/2016/07/idea-makers-a-book-about-lives-and-ideas/' /> <link rel='next' title='How to Teach Computational Thinking' href='https://writings.stephenwolfram.com/2016/09/how-to-teach-computational-thinking/' /> <link rel='shortlink' href='https://writings.stephenwolfram.com/?p=11969' /> <link rel="alternate" type="application/json+oembed" href="https://writings.stephenwolfram.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwritings.stephenwolfram.com%2F2016%2F08%2Ftoday-we-launch-version-11%2F" /> <link rel="alternate" type="text/xml+oembed" href="https://writings.stephenwolfram.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwritings.stephenwolfram.com%2F2016%2F08%2Ftoday-we-launch-version-11%2F&format=xml" /> <link rel='canonical' href='https://blog.wolfram.com/2016/08/08/today-we-launch-version-11/'/> <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> </head> <body id="blog" class="post-template-default single single-post postid-11969 single-format-standard"> <a name="top"></a> <div id="wrapper"> <header id="header"> <div class="inner"> <button class="hamburger">≡</button> <h1 id="logo"> <a href="https://www.stephenwolfram.com">Stephen Wolfram <svg viewBox="6.252 51.944 1031.673 96.468"> <g id="logoSVG"> <path d="M643.657,60.162c1.429-0.357,2.501-0.714,3.572-0.714h0.536V53.91h-34.121v5.538h0.536 c4.287,0.357,7.503,1.072,9.468,1.965c1.787,0.894,2.68,1.965,2.68,3.216c0,1.072-0.179,2.322-0.357,3.751 s-0.893,4.288-1.965,8.218c-1.429,5.716-3.395,12.505-5.538,20.544c-2.144,7.682-4.645,16.436-7.503,26.439L588.456,55.16h-6.968 l-22.33,66.812c-4.823-16.971-8.218-29.297-10.719-37.693c-2.501-8.575-4.287-15.006-5.181-18.758c0-0.357-0.179-1.072-0.357-1.786 c-0.179-0.715-0.179-1.251-0.179-1.608c0-1.072,1.607-1.608,3.037-1.965c2.322-0.536,5.002-0.714,8.218-0.893h0.536V53.91h-38.23 v5.538h0.536c1.071,0,2.322,0.357,3.751,0.714c1.43,0.357,2.502,0.894,3.573,1.608c1.251,0.893,2.144,1.787,2.858,2.68 s1.251,2.144,1.607,3.394c1.608,5.538,4.646,16.257,9.111,32.514c4.466,16.078,8.933,31.799,13.22,46.805l0.179,0.357h6.432 l23.581-69.314l22.509,68.957l0.179,0.357h6.61l0.178-0.357c4.646-14.827,9.111-29.119,13.041-42.339 c4.109-13.22,7.504-24.832,10.54-34.657c0.715-2.144,1.43-3.751,2.323-5.002c0.893-1.25,2.144-2.144,3.572-3.215 C640.978,61.234,642.406,60.698,643.657,60.162z" /> <path d="M693.856,87.673c-2.858-3.037-6.253-5.359-10.183-6.967c-3.931-1.608-8.039-2.501-12.506-2.501 c-4.287,0-8.396,0.893-12.147,2.501c-3.931,1.607-7.324,3.93-10.183,6.967c-2.858,3.037-5.359,6.789-6.968,11.076 c-1.607,4.288-2.501,9.111-2.501,14.47c0,4.823,0.894,9.647,2.322,13.935c1.608,4.287,3.752,8.039,6.61,11.076 s6.253,5.537,10.004,7.324c3.931,1.786,8.218,2.68,12.862,2.68c4.288,0,8.396-0.894,12.327-2.502 c3.751-1.607,7.146-3.93,10.183-6.967s5.359-6.788,6.967-11.076c1.608-4.287,2.501-9.11,2.501-14.291s-0.893-10.004-2.501-14.292 C699.037,94.462,696.715,90.71,693.856,87.673z M690.998,113.041c0,4.287-0.357,8.218-1.251,11.791 c-0.714,3.395-1.965,6.609-3.751,9.289l0,0c-1.608,2.68-3.752,4.823-6.253,6.252c-2.501,1.43-5.538,2.323-8.575,2.323 c-3.394,0-6.431-0.715-8.753-2.144c-2.501-1.43-4.467-3.573-6.074-6.253s-2.858-5.896-3.752-9.29 c-0.714-3.572-1.25-7.502-1.25-11.969c0-3.93,0.357-7.86,1.071-11.434c0.715-3.572,1.787-6.788,3.395-9.289 c1.608-2.68,3.573-5.002,6.074-6.61s5.538-2.501,9.11-2.501c3.216,0,6.074,0.714,8.575,2.144s4.466,3.395,6.253,5.896 c1.607,2.68,2.858,5.716,3.751,9.468C690.641,104.467,690.998,108.754,690.998,113.041z" /> <path d="M760.49,126.082c-0.714,1.787-1.786,4.109-3.394,6.967c-1.608,2.859-3.037,5.002-4.288,6.432 c-0.356,0.357-0.893,0.715-1.786,1.072s-1.786,0.535-2.858,0.715c-1.071,0.178-2.322,0.356-3.395,0.356 c-1.25,0-2.322,0.179-3.572,0.179c-2.501,0-4.466,0-5.896-0.179c-1.25-0.179-2.322-0.536-2.858-0.894 c-0.715-0.535-1.071-1.25-1.25-2.322c-0.179-1.071-0.357-2.68-0.357-4.645V89.46c0-0.893,0.179-1.787,0.535-2.68 c0.357-0.714,0.894-1.25,1.787-1.608c0.536-0.179,1.607-0.536,2.858-0.714c1.25-0.357,2.501-0.357,3.216-0.536h0.535v-4.287 h-28.583v4.287h0.536c0.715,0,1.786,0.179,3.037,0.536c1.25,0.357,2.144,0.714,2.858,1.072c0.893,0.357,1.607,1.072,1.786,1.608 c0.357,0.714,0.536,1.608,0.536,2.501v46.983c0,1.071-0.179,1.966-0.536,2.68c-0.357,0.715-0.894,1.251-1.786,1.608 c-0.536,0.178-1.43,0.357-2.858,0.535c-1.43,0.179-2.501,0.179-3.216,0.357h-0.536v4.287h51.986l1.429-20.543h-4.108 L760.49,126.082z" /> <path d="M768.708,83.922h0.536c0.715,0,1.965,0.179,3.216,0.536c1.429,0.357,2.501,0.714,3.216,1.072 c0.893,0.357,1.607,1.072,1.786,1.608c0.357,0.714,0.536,1.608,0.536,2.501v47.341c0,1.071-0.179,1.965-0.536,2.68 c-0.357,0.714-0.894,1.251-1.786,1.608c-0.357,0.178-1.072,0.356-2.858,0.535c-1.608,0.179-2.68,0.179-3.752,0.357h-0.536v4.287 h29.298v-4.287h-0.536c-0.714,0-1.965-0.179-3.394-0.536c-1.787-0.356-2.68-0.536-2.858-0.714 c-0.894-0.357-1.608-1.072-1.965-1.787c-0.357-0.715-0.536-1.607-0.536-2.501v-22.151h6.967c1.965,0,3.573,0.178,5.002,0.535 c1.251,0.357,2.322,1.072,3.216,2.145c0.536,0.714,1.072,1.965,1.607,3.572c0.536,1.607,0.894,3.216,0.894,4.467v0.535h4.466 V98.928h-4.466v0.357c-0.179,1.607-0.536,3.037-0.894,4.466c-0.535,1.429-1.071,2.322-1.607,3.037 c-0.894,0.893-1.786,1.607-3.037,2.143c-1.25,0.537-2.858,0.715-5.181,0.715h-6.967V84.458h10.54c1.607,0,3.037,0,4.466,0.179 c1.251,0,2.501,0.179,3.395,0.357c1.786,0.179,3.572,1.787,5.538,4.466c1.965,2.68,3.394,5.359,3.93,7.682l0.179,0.357h4.288V80.17 h-52.165V83.922L768.708,83.922z" /> <path d="M952.534,141.624c-1.072-0.356-1.966-0.536-2.68-1.071c-1.072-0.715-1.787-1.43-2.323-2.145 c-0.535-0.715-1.071-1.607-1.429-2.857l-21.795-56.452l-0.179-0.357h-4.287l-0.179,0.357c-3.037,8.039-6.609,17.15-10.54,27.333 c-3.93,10.182-7.503,19.472-10.897,27.689c-0.714,1.607-1.25,2.858-1.965,3.572c-0.715,0.895-1.607,1.787-2.68,2.502 c-0.715,0.535-1.607,0.893-2.858,1.072c-0.536,0.178-1.071,0.178-1.607,0.356c-0.357,0-0.715-0.179-1.251-0.179 c-1.071-0.178-2.144-0.535-2.858-0.893c-1.071-0.536-2.144-1.251-3.215-2.145c-1.072-0.893-2.323-2.144-3.573-3.93 c-3.037-4.109-5.717-7.682-7.86-10.719c-1.965-2.858-4.645-6.252-7.682-10.183c2.144-0.715,4.108-1.429,5.896-2.322 c1.965-1.072,3.751-2.144,5.002-3.573c1.607-1.43,2.68-3.215,3.572-5.181c0.715-1.965,1.251-4.288,1.251-6.789 c0-2.858-0.536-5.359-1.787-7.503c-1.25-1.965-2.68-3.751-4.645-5.002s-4.287-2.144-6.788-2.858 c-2.501-0.536-5.181-0.893-7.86-0.893H826.59v4.287h0.535c0.894,0,1.965,0.179,3.037,0.357c1.251,0.179,2.144,0.536,2.858,0.715 c1.072,0.357,1.607,0.893,1.965,1.607c0.357,0.715,0.357,1.608,0.357,2.68v47.341c0,1.072-0.179,1.965-0.536,2.68 c-0.356,0.715-0.893,1.25-1.786,1.607c-0.536,0.18-1.429,0.357-2.858,0.537c-1.429,0.178-2.501,0.178-3.216,0.356h-0.535v4.288 h28.583v-4.288h-0.536c-0.894,0-2.144-0.179-3.395-0.356c-1.25-0.18-2.322-0.357-2.858-0.537c-0.893-0.357-1.607-0.893-1.965-1.607 s-0.536-1.607-0.536-2.68v-19.83h5.896c3.573,4.646,6.967,9.29,10.004,13.578c3.037,4.466,6.61,9.825,10.54,15.898l0.179,0.18 h14.471h3.93h21.616v-4.288h-0.536c-2.322-0.179-4.466-0.536-6.431-1.251c-1.786-0.535-2.501-1.429-2.501-2.322 c0-0.535,0-1.071,0.179-1.965c0.179-0.893,0.356-1.965,0.893-3.215c0.357-1.43,0.894-2.859,1.43-4.467 c0.536-1.43,1.25-3.215,1.965-5.359h22.331l5.359,14.291c0.178,0.357,0.178,0.537,0.178,0.895c0,0.356,0,0.714,0,0.893 c0,0.357-0.714,0.893-1.965,1.25c-1.607,0.537-3.572,0.715-5.895,0.894h-0.536v4.288h28.94v-4.288h-0.536 C954.499,141.981,953.605,141.803,952.534,141.624z M928.238,118.579h-18.222l9.11-23.581L928.238,118.579z M866.069,96.963 c0,4.467-1.429,8.039-4.108,10.719s-6.253,3.93-10.183,3.93h-5.538V84.637h7.324c3.931,0,7.146,1.072,9.29,3.394 C864.998,90.175,866.069,93.211,866.069,96.963z" /> <path d="M1037.211,141.981c-0.714,0-1.965-0.179-3.215-0.357c-1.43-0.179-2.322-0.536-2.858-0.894 c-0.894-0.535-1.608-1.071-1.965-1.786c-0.357-0.714-0.536-1.429-0.536-2.501V89.281c0-0.893,0.179-1.786,0.536-2.68 c0.356-0.714,0.893-1.25,1.786-1.608c0.536-0.178,1.607-0.357,2.858-0.714c1.25-0.179,2.322-0.357,3.216-0.357h0.535v-4.287h-22.33 v0.536c0,0.357-0.179,1.25-0.715,3.216c-0.357,1.607-0.894,3.215-1.429,4.645l-15.542,40.016L979.33,79.992l-0.178-0.357h-23.046 v4.287h0.536c1.25,0,2.68,0.357,3.93,0.715c1.251,0.357,2.502,0.893,3.395,1.786c0.715,0.715,1.43,1.608,1.787,2.858 s0.714,2.68,0.714,4.645v33.585c0,4.108-0.179,7.146-0.536,8.932c-0.356,1.607-1.071,2.858-1.965,3.752 c-0.715,0.715-1.965,1.072-3.394,1.429c-1.43,0.357-2.858,0.536-4.288,0.715h-0.357v4.288h27.333v-4.288h-0.536 c-0.357,0-1.429-0.179-4.108-0.894c-1.966-0.535-3.395-1.072-3.931-1.786c-0.893-0.715-1.607-2.144-1.965-3.931 c-0.536-1.965-0.715-4.822-0.715-8.574v-38.23l21.08,56.452h3.037l22.152-55.559v46.805c0,1.071-0.179,1.966-0.536,2.68 c-0.357,0.715-1.072,1.251-1.965,1.786c-0.536,0.357-1.608,0.536-3.216,0.715s-3.037,0.357-3.93,0.357h-0.536v4.287h29.833v-4.287 L1037.211,141.981z" /> <path d="M64.133,103.572L64.133,103.572c-1.786-1.965-3.93-3.572-6.252-5.001s-4.823-2.68-7.503-3.751 c-2.858-1.25-5.717-2.501-8.754-3.573c-3.037-1.072-6.074-2.323-9.111-3.93c-3.394-1.608-6.074-3.752-7.86-6.253 c-1.786-2.501-2.68-5.716-2.68-9.468c0-3.573,1.429-6.789,4.109-9.29c2.68-2.501,6.074-3.751,10.004-3.751 c3.751,0,6.967,0.714,9.468,2.144c2.501,1.429,4.824,3.394,6.61,5.895c1.787,2.501,3.395,5.359,4.466,8.575 c1.25,3.215,2.144,6.431,3.216,10.004l0.178,0.357h6.074l-0.536-31.62h-5.895l-2.501,4.288c-2.68-1.608-5.538-3.037-8.754-4.288 c-3.394-1.25-7.146-1.965-11.433-1.965c-3.751,0-7.324,0.715-10.719,1.965c-3.394,1.25-6.431,3.037-8.932,5.359 c-2.68,2.322-4.824,5.002-6.252,8.039c-1.429,3.037-2.144,6.431-2.144,10.004c0,6.074,1.429,11.255,4.288,15.006 s6.967,6.967,12.148,9.289c2.68,1.251,5.716,2.502,9.29,3.752c3.573,1.25,6.789,2.501,9.646,3.752 c3.93,1.607,6.967,3.93,8.933,6.967c1.965,3.037,3.037,6.432,3.037,10.004c0,2.501-0.357,4.645-0.893,6.432 c-0.714,1.786-1.608,3.395-2.858,4.823s-3.037,2.501-5.181,3.216s-4.645,1.071-7.503,1.071c-3.93,0-7.325-0.714-10.183-2.144 c-2.858-1.43-5.538-3.395-7.682-5.896c-2.322-2.679-4.287-5.538-5.538-8.575c-1.608-3.215-2.858-6.788-3.931-10.539l-0.178-0.357 H6.252l0.894,32.334h5.895l2.68-4.466c2.858,1.786,6.252,3.216,10.183,4.466c4.109,1.251,8.218,1.965,12.327,1.965 c8.932,0,16.435-2.68,22.509-8.039c6.074-5.358,9.111-12.146,9.111-20.365c0-3.395-0.536-6.431-1.429-9.11 S66.099,105.717,64.133,103.572z" /> <path d="M81.462,96.784h4.288l0.179-0.357c0.357-1.072,0.714-2.323,1.429-3.93c0.714-1.608,1.607-3.037,2.501-4.466 c0.893-1.429,1.965-2.68,3.037-3.751c1.072-1.072,1.965-1.608,3.037-1.787c1.25-0.179,2.68-0.179,4.109-0.357 c1.429,0,2.68,0,3.751,0h2.323v54.308c0,1.25-0.179,2.145-0.715,2.858c-0.357,0.715-1.072,1.251-2.144,1.608 c-0.715,0.357-1.965,0.535-3.752,0.714c-1.786,0.179-3.215,0.357-4.108,0.357H94.86v4.288h33.049v-4.288h-0.536 c-0.893,0-2.322-0.179-4.109-0.536c-1.786-0.357-3.037-0.715-3.573-0.893c-1.072-0.357-1.787-1.072-2.144-1.787 c-0.357-0.715-0.536-1.786-0.536-2.68v-53.95h2.322c1.25,0,2.68,0,4.109,0.178c1.429,0,2.68,0.179,3.752,0.357 c0.893,0.179,1.965,0.715,3.037,1.787s2.144,2.322,3.037,3.751s1.787,2.858,2.501,4.466c0.714,1.607,1.25,2.858,1.608,3.93 l0.179,0.357h4.108V77.312H81.462V96.784z" /> <path d="M200.439,125.725c-0.357,1.43-1.429,3.752-3.037,6.789s-3.037,5.359-4.466,6.788 c-0.536,0.536-1.25,0.894-2.501,1.251c-1.251,0.357-2.501,0.535-3.752,0.715c-1.072,0.178-2.68,0.178-4.287,0.178h-4.109 c-2.68,0-4.645,0-6.074-0.178c-1.429-0.18-2.322-0.537-3.215-1.072c-0.715-0.536-1.25-1.251-1.429-2.322 c-0.357-1.072-0.357-2.68-0.357-4.645v-20.188h7.146c1.965,0,3.573,0.179,4.823,0.536c1.072,0.356,2.144,1.071,3.216,2.322 c0.536,0.714,1.072,1.965,1.607,3.573c0.536,1.607,0.894,3.215,1.072,4.823v0.536h4.466V96.963h-4.466v0.357 c-0.179,1.25-0.536,2.858-0.894,4.287c-0.536,1.43-1.072,2.68-1.786,3.573c-0.715,1.071-1.787,1.786-2.858,2.144 s-2.858,0.715-5.181,0.715h-7.146V82.136h10.183c1.787,0,3.216,0,4.645,0.178c1.429,0,2.501,0.179,3.573,0.357 c1.787,0.179,3.751,1.608,5.717,4.288c2.144,2.68,3.394,5.181,4.109,7.503l0.179,0.357h4.466V77.491H146.31v4.288h0.536 c0.893,0,1.965,0.179,3.394,0.536c1.429,0.357,2.501,0.715,3.395,1.072c1.072,0.536,1.607,1.072,1.965,1.786 c0.357,0.715,0.536,1.608,0.536,2.68v48.949c0,1.072-0.179,1.965-0.536,2.68s-1.072,1.25-1.965,1.607 c-0.357,0.18-1.072,0.357-3.037,0.536c-1.608,0.179-2.858,0.357-3.751,0.357h-0.536v4.288h57.167l1.429-21.08h-4.288 L200.439,125.725z" /> <path d="M258.499,81.957c-3.93-3.037-9.29-4.645-15.721-4.645h-31.441V81.6h0.536c0.894,0,1.787,0.179,3.037,0.357 c1.072,0.179,2.322,0.536,3.573,0.893c1.072,0.357,1.608,0.893,1.965,1.787c0.357,0.893,0.536,1.786,0.536,2.858v49.127 c0,1.071-0.179,2.144-0.536,2.858c-0.357,0.715-0.894,1.25-1.787,1.607c-0.536,0.18-1.429,0.357-2.858,0.536 s-2.501,0.357-3.394,0.357h-0.536v4.288h30.012v-4.288h-0.536c-1.25,0-2.501-0.179-3.93-0.357s-2.322-0.356-2.858-0.536 c-1.072-0.357-1.608-0.893-1.965-1.607c-0.357-0.715-0.536-1.787-0.536-2.68v-20.365h7.146c3.216,0,6.432-0.357,9.29-1.251 c2.858-0.894,5.717-2.144,8.218-3.93s4.466-4.108,5.896-6.968c1.429-2.857,2.144-6.074,2.144-9.646 C264.573,89.46,262.608,85.172,258.499,81.957z M251.353,101.25c-0.357,1.608-1.072,3.037-2.144,4.646l0,0 c-1.072,1.429-2.68,2.858-4.645,3.751c-2.144,1.072-4.823,1.608-8.217,1.608h-4.466V82.314h6.252c2.68,0,4.824,0.357,6.61,1.25 c1.787,0.715,3.216,1.965,4.288,3.395s1.787,2.858,2.144,4.823c0.357,1.787,0.715,3.751,0.715,5.359 C251.71,98.213,251.532,99.821,251.353,101.25z" /> <path d="M314.415,81.778h0.536c0.893,0,1.965,0.179,3.037,0.536c1.25,0.357,2.144,0.715,3.037,1.072 c0.894,0.357,1.608,1.072,1.965,1.786c0.357,0.715,0.536,1.608,0.536,2.501v20.187H292.62V87.316c0-1.072,0.179-1.965,0.536-2.68 c0.357-0.715,0.893-1.25,1.965-1.608c0.536-0.179,1.608-0.536,2.858-0.715c1.25-0.178,2.322-0.357,3.216-0.357h0.536v-4.288 h-29.119v4.288h0.536c0.893,0,1.965,0.179,3.037,0.536c1.251,0.357,2.144,0.715,3.037,1.072c0.894,0.357,1.608,1.072,1.965,1.787 c0.357,0.715,0.536,1.608,0.536,2.501v49.127c0,1.071-0.179,2.144-0.536,2.858c-0.357,0.715-1.072,1.25-1.965,1.607 c-0.357,0.179-1.072,0.357-2.858,0.536c-1.429,0.179-2.501,0.179-3.394,0.357h-0.536v4.288h29.119v-4.288h-0.536 c-0.715,0-1.787-0.179-3.216-0.536c-1.25-0.357-2.322-0.535-2.68-0.893c-1.072-0.537-1.608-1.072-1.965-1.787 c-0.357-0.715-0.536-1.607-0.536-2.68V113.22h30.906v23.76c0,1.071-0.179,2.144-0.536,2.858s-1.072,1.25-1.965,1.607 c-0.357,0.179-1.072,0.357-2.858,0.536c-1.429,0.179-2.501,0.179-3.395,0.357h-0.536v4.288h29.119v-4.288h-0.536 c-0.715,0-1.787-0.179-3.216-0.536c-1.25-0.357-2.322-0.535-2.68-0.893c-1.072-0.537-1.607-1.072-1.965-1.787 s-0.536-1.607-0.536-2.68V87.316c0-1.072,0.179-1.965,0.536-2.68c0.357-0.715,0.893-1.25,1.965-1.608 c0.536-0.179,1.608-0.536,2.858-0.715c1.25-0.178,2.322-0.357,3.216-0.357h0.536v-4.288h-29.119V81.778z" /> <path d="M406.596,125.725c-0.357,1.43-1.43,3.752-3.037,6.789s-3.037,5.359-4.466,6.788 c-0.536,0.536-1.251,0.894-2.501,1.251c-1.251,0.357-2.501,0.535-3.752,0.715c-1.072,0.178-2.68,0.178-4.288,0.178h-4.109 c-2.68,0-4.645,0-6.074-0.178c-1.429-0.18-2.322-0.537-3.216-1.072c-0.714-0.536-1.25-1.251-1.429-2.322 c-0.357-1.072-0.357-2.68-0.357-4.645v-20.188h7.146c1.965,0,3.573,0.179,4.824,0.536c1.072,0.356,2.144,1.071,3.037,2.322 c0.536,0.714,1.072,1.965,1.608,3.573c0.536,1.607,0.894,3.215,1.072,4.823v0.536h4.466V96.963h-4.288v0.357 c-0.179,1.25-0.536,2.858-0.893,4.287c-0.536,1.43-1.072,2.68-1.787,3.573c-0.714,1.071-1.787,1.786-2.858,2.144 s-2.858,0.715-5.181,0.715h-7.146V82.136h10.183c1.787,0,3.215,0,4.645,0.178c1.429,0,2.501,0.179,3.573,0.357 c1.786,0.179,3.751,1.608,5.716,4.288c2.144,2.68,3.395,5.181,4.109,7.503l0.179,0.357h4.466V77.491h-53.415v4.288h0.536 c0.893,0,1.965,0.179,3.394,0.536c1.429,0.357,2.501,0.715,3.395,1.072c1.072,0.536,1.608,1.072,1.965,1.786 c0.357,0.715,0.536,1.608,0.536,2.68v48.949c0,1.072-0.179,1.965-0.536,2.68c-0.357,0.715-1.072,1.25-1.965,1.607 c-0.357,0.18-1.072,0.357-3.037,0.536c-1.608,0.179-2.858,0.357-3.751,0.357h-0.536v4.288h57.167l1.429-21.08h-4.287 L406.596,125.725z" /> <path d="M460.01,81.778h0.536c1.072,0,2.501,0.357,4.467,0.893c1.965,0.536,3.394,1.072,4.287,1.608 c0.894,0.714,1.607,1.965,1.965,3.93c0.536,2.144,0.715,5.181,0.715,8.932v30.905l-37.337-50.735h-20.187V81.6h0.536 c1.071,0,2.68,0.536,4.645,1.25s3.395,1.608,4.466,2.68c0.715,0.714,1.43,1.787,1.965,3.216c0.536,1.429,0.715,2.858,0.715,4.287 v33.407c0,4.467-0.179,7.503-0.536,9.289c-0.357,1.787-1.071,3.037-2.144,3.752c-0.357,0.357-1.25,0.715-3.573,1.43 c-1.965,0.535-3.394,0.893-4.287,0.893h-0.536v4.287h28.762v-4.287h-0.535c-0.715,0-2.145-0.357-4.467-0.893 c-2.144-0.537-3.572-1.251-4.287-1.787c-0.894-0.893-1.607-2.322-2.144-4.287c-0.536-2.145-0.715-5.002-0.715-8.933V92.318 l40.374,54.665h4.823V96.784c0-3.394,0.179-6.252,0.536-8.575c0.357-2.144,1.071-3.573,2.144-4.288 c0.715-0.536,1.965-0.893,3.752-1.429c1.786-0.536,3.215-0.714,3.93-0.714h0.536v-4.288h-28.583v4.288H460.01z" /> </g> </svg> </a> </h1> <span class="pipe"></span><a href="https://writings.stephenwolfram.com" class="writings">Writings <svg viewBox="312.131 0 419.71 200"> <g id="writingsSVG"> <path d="M420.941,131.488L420.941,131.488c-2.154-0.07-4.128-1.223-5.248-3.064c-1.103-1.731-2.139-3.562-3.054-5.183 c-6.891-12.237-15.998-23.771-29.493-37.375c-4.692-4.847-10.108-8.938-16.053-12.128l-0.562-0.331 c-0.253-0.143-0.518-0.287-0.793-0.419c-1.489-0.672-1.886-0.551-1.93-0.54c-0.044,0.011-0.32,0.143-0.794,1.279 c-1.599,3.751-2.9,7.622-3.892,11.577c-0.97,3.969-1.797,8.06-2.591,12.029c-0.496,2.502-0.992,5.006-1.543,7.497l-0.066,0.353 c-0.452,2.105-1.202,5.635-5.447,5.998s-5.777-3.054-6.681-5.104c-0.612-1.382-1.128-2.804-1.543-4.256l-12.734-44.102 l-9.515-32.822c-0.188-0.662-0.419-1.312-0.662-2.007c-1.612,0.425-3.331,0.079-4.652-0.937c-1.169-1.037-1.676-2.569-1.533-4.774 c0.099-1.72,0.265-3.451,0.43-5.116c0.077-0.915,0.165-1.841,0.243-2.756c0.077-0.916,0.154-1.775,0.154-2.58 c0-1.577,0-5.767,4.575-6.538c4.829-0.816,6.362,2.205,7.167,4.961c2.602,8.923,5.175,17.85,7.718,26.781 c2.94,10.327,5.902,20.658,8.887,30.992l7.21,25.126c0-0.187,0.077-0.386,0.121-0.573c0.287-1.213,0.551-2.425,0.827-3.638 c0.893-3.947,1.819-8.038,2.855-12.04c0.585-1.913,1.412-3.743,2.458-5.447c2.205-3.958,4.686-5.16,9.118-4.41 c2.019,0.292,3.979,0.898,5.81,1.797c7.361,3.686,14.045,8.592,19.769,14.509c6.957,7.365,13.099,14.146,18.743,20.739 c2.205,2.602,4.267,5.424,6.219,8.147c0.353,0.508,0.717,1.004,1.103,1.512c-0.254-3.782-0.496-7.564-0.75-11.346 c-0.397-5.961-0.786-11.922-1.169-17.883l-0.221-3.374c-0.297-4.311-0.595-8.82-0.694-13.23c-0.209-9.173-1.742-18.401-3.22-27.332 l-0.396-2.403c-0.441-2.668-1.103-5.38-1.72-8.004c-0.475-1.985-0.971-4.035-1.378-6.086c-0.855-4.224-0.504-8.603,1.014-12.635 c0.419-1.103,1.521-4.102,4.686-4.102h0.133c2.315,0.066,3.858,1.566,4.575,4.41c0.188,0.717,0.375,1.444,0.552,2.205 c0.752,2.622,1.323,5.293,1.709,7.994l0.661,5.314c1.301,10.408,2.646,21.18,3.518,31.831c1.014,12.381,1.764,24.983,2.48,37.167 c0.279,4.483,0.551,8.975,0.815,13.473c0.375,5.942,0.75,12.261,0.948,18.512c0.09,1.93-0.381,3.845-1.355,5.513 C424.734,130.367,422.921,131.432,420.941,131.488z" /> <path d="M560.82,121.918c-3.308,0-4.686-2.635-5.248-3.704c-3.562-6.747-7.111-14.102-9.03-22.249l-0.396-1.665 c-0.771-3.241-1.576-6.615-2.117-9.923c0.013-1.077-0.841-1.965-1.918-1.996H542c-2.724-0.529-5.513-1.103-8.302-1.51 c-3.849-0.596-8.313-1.279-12.757-1.808c-1.102-0.077-2.206-0.077-3.308,0c0.177,1.323,0.342,2.547,0.519,3.782 c0.777,6.479,2.329,12.842,4.619,18.952c1.5,3.826,3.308,5.977,6.229,7.178s5.513,2.437,7.597,3.406 c0.761,0.359,1.498,0.768,2.205,1.225l1.025,0.617l1.995,1.169l-1.488,1.786c-1.442,1.78-3.745,2.627-5.998,2.205 c-3.095-0.257-6.168-0.736-9.194-1.434c-2.815-0.649-5.268-2.369-6.836-4.796c-0.562-0.86-1.169-1.698-1.819-2.569 c-0.97-1.266-1.864-2.587-2.679-3.957c-2.28-4.252-3.774-8.879-4.41-13.661c-0.552-3.473-1.103-6.946-1.731-10.496l-0.54-3.197 c-4.367-0.299-8.754-0.181-13.099,0.353l0.529,2.867c0.673,3.627,1.312,7.056,2.205,10.441c0.894,3.385,1.886,6.615,2.889,9.923 c0.849,2.768,1.731,5.635,2.514,8.49c0.348,1.506,0.507,3.051,0.475,4.598c0,0.572,0,1.102,0.065,1.676l0.1,1.367l-1.257,0.562 c-2.58,1.169-4.829,0.64-6.317-1.499l-0.529-0.75c-0.899-1.121-1.642-2.36-2.205-3.683l-0.231-0.64 c-1.687-4.531-3.429-9.229-4.752-13.991c-1.103-3.903-1.963-7.895-2.812-11.764c-0.396-1.83-0.805-3.668-1.224-5.513 c-0.133-0.551-0.287-1.103-0.463-1.687c-0.773,0.015-1.542-0.109-2.271-0.364c-1.563-0.438-2.897-1.46-3.727-2.855 c-0.364-0.772-1.301-3.473,2.304-5.722l0.1-0.066c0.385-0.28,0.824-0.475,1.29-0.573c0.849-0.143,0.959-0.166,0.706-1.852 c-0.298-1.734,0.214-3.509,1.389-4.818c1.165-1.224,2.827-1.845,4.51-1.687c3.1,0.222,5.565,2.688,5.788,5.788 c0.012,0.17,0.033,0.34,0.066,0.507c0.146,0.207,0.312,0.399,0.496,0.573c3.638,0,7.343-0.066,10.937-0.166h1.103l-0.231-2.37 c-0.253-2.79-0.529-5.678-0.849-8.49c-1.235-10.768-2.492-21.536-3.771-32.304l-0.65-5.513c-0.316-2.69-0.644-5.38-0.981-8.071 l-0.529-4.333c-0.463-3.892,1.389-6.615,4.851-7.111c1.54-0.276,3.123,0.126,4.345,1.103c1.509,1.381,2.349,3.346,2.304,5.392 c0,1.18,0,2.359,0,3.506c0,1.621,0,3.143,0.133,4.653c0.419,4.608,0.926,9.283,1.411,13.815c0.242,2.282,0.496,4.575,0.728,6.869 c0.254,2.458,0.496,4.928,0.75,7.387c0.33,3.396,0.672,6.802,1.036,10.198c0.408,3.859,0.849,7.718,1.279,11.533l0.396,3.506 l27.045,3.793c0.122-0.32,0.254-0.629,0.375-0.948c1.103-2.624,3.308-3.848,5.513-3.032c1.719,0.695,3.066,2.079,3.716,3.815 c0.425,1.399,0.695,2.841,0.805,4.3c0.066,0.606,0.133,1.213,0.231,1.808c1.673,11.613,4.4,23.049,8.148,34.168 c0.198,0.562,0.451,1.102,0.716,1.72c0.265,0.617,0.662,1.499,0.938,2.326c0.211,0.739,0.318,1.503,0.319,2.271 c0,0.286,0,0.573,0.056,0.87l0.177,1.765l-1.742,0.353C561.76,121.861,561.291,121.912,560.82,121.918z" /> <path d="M713.775,141.665h-0.783c-4.397-0.225-8.778-0.703-13.12-1.434l-1.676-0.243c-1.169-0.164-4.719-0.672-4.41-4.498 c0.045-1.053,0.538-2.036,1.356-2.701c1.103-0.882,2.745-1.102,4.994-0.771c1.314,0.244,2.645,0.391,3.98,0.441 c3.958,0,8.181,0,12.426-0.133c1.009-0.105,1.985-0.422,2.866-0.926c1.323-0.684,2.139-1.5,2.304-2.293 c0.023-1.015-0.376-1.993-1.102-2.701c-2.385-2.823-4.964-5.476-7.719-7.939c-4.686-4.266-8.621-7.64-12.392-10.617 c-9.328-7.364-16.538-14.575-21.875-22.05c-6.482-8.986-4.498-17.222,4.719-24.509c7.718-6.119,16.473-7.607,28.666-4.686 c2.836,0.819,5.523,2.084,7.961,3.749c1.499,0.737,2.562,2.139,2.866,3.782c0.231,1.995-1.103,3.594-2.139,4.619 c-1.506,1.441-3.162,2.716-4.939,3.804c-1.394,0.779-3.111,0.685-4.41-0.243c-0.896-1.023-1.271-2.402-1.015-3.738 c0.054-0.484,0.161-0.961,0.32-1.422c-0.759-0.597-1.703-0.909-2.669-0.882c-0.874-0.022-1.744-0.122-2.602-0.298l-0.794-0.132 c-5.887-0.94-11.882,0.845-16.295,4.852c-1.657,1.266-2.753,3.13-3.055,5.193c-0.005,2.044,0.827,4,2.305,5.413 c6.737,7.715,14.114,14.848,22.051,21.323c4.663,3.704,9.019,7.872,13.23,11.919c1.422,1.355,2.845,2.723,4.289,4.079 c1.154,1.159,2.128,2.486,2.888,3.937c2.01,3.247,2.394,7.245,1.037,10.815c-1.52,3.435-4.545,5.971-8.192,6.868 C719.905,141.135,716.852,141.613,713.775,141.665z" /> <path d="M449.178,120.717h-0.54c-2.794-0.27-5.002-2.486-5.26-5.281c-0.396-2.459-0.782-4.906-1.103-7.365 c-0.871-5.578-1.764-11.367-2.866-16.979c-0.882-4.476-2.205-8.997-3.451-13.374c-0.298-1.103-0.606-2.084-0.904-3.131 c-0.272-0.779-0.643-1.52-1.103-2.205c-0.242-0.43-0.484-0.871-0.705-1.301c-1.643-3.308-0.904-6.527,1.83-8.125 c1.455-0.852,3.194-1.075,4.818-0.618c1.691,0.449,3.133,1.557,4.002,3.076c0.425,0.733,0.74,1.524,0.938,2.348 c0.97,4.179,1.94,8.357,2.921,12.624c0.364-2.205,0.761-4.41,1.246-6.692c0.802-3.429,1.985-6.757,3.528-9.923 c3.528-7.442,11.963-11.235,21.488-9.658c0.86,0.137,1.691,0.416,2.459,0.827c2.078,1.004,3.285,3.222,2.999,5.513 c-0.408,3.109-3.374,3.572-4.631,3.76c-0.782,0.118-1.577,0.118-2.359,0c-0.254,0-0.519-0.066-0.783-0.077 c-6.615-0.375-8.82,1.94-10.573,6.361c-3.01,7.497-4.035,15.149-5.05,24.377c-0.342,3.175-0.375,6.482-0.407,9.691 c0,1.93,0,3.914-0.133,5.888c-0.088,1.962-0.38,3.909-0.871,5.81C454.156,118.88,451.844,120.756,449.178,120.717z" /> <path d="M546.135,59.25c-0.18,0.011-0.36,0.011-0.541,0c-1.195-0.199-2.178-1.051-2.547-2.205 c-1.289-4.091-2.514-8.093-3.506-12.128c-0.684-2.823,1.103-5.513,4.212-6.406c2.506-0.891,5.259,0.417,6.152,2.921 c0.49,1.245,0.888,2.523,1.19,3.826c0.133,0.507,0.265,1.025,0.408,1.532l0.54,1.896l-1.015,0.287c0,0.221-0.055,0.452-0.077,0.673 c-0.198,1.665-0.396,3.385-0.661,5.083c-0.184,1.078-0.618,2.097-1.268,2.977C548.365,58.657,547.29,59.231,546.135,59.25z" /> <path d="M482.981,53.561l-1.709-1.103c-4.697-2.844-5.612-7.155-6.108-10.959c-0.375-2.933,1.688-5.436,4.918-5.954 c3.23-0.519,5.512,1.025,6.174,3.859c0.904,4.013,0.177,8.048-2.205,12.348L482.981,53.561z" /> <path d="M677.094,55.876c-0.234-2.991-1.067-5.903-2.447-8.567c-1.051-2.274-3.35-3.711-5.854-3.66 c-4.201,0.022-7.277,0.97-9.714,2.988c-6.683,5.544-11.577,12.939-14.068,21.257c-3.003,9.579-4.396,19.59-4.123,29.625v1.488 c0.079,1.039,0.079,2.082,0,3.12c-0.664,0.172-1.338,0.304-2.018,0.397c-0.761,0.132-1.676,0.286-2.778,0.507 c-7.332,1.488-13.804,0.187-19.317-3.87c-5.034-3.883-9.357-8.609-12.777-13.969c-1.104-1.665-2.205-3.308-3.309-4.972 c-2.381-3.672-4.84-7.464-7.562-11.025c-2.459-3.22-5.546-5.017-8.678-5.017c-2.23,0.031-4.364,0.915-5.965,2.47 c-0.705-1.478-1.443-2.966-2.281-4.41c-1.057-1.778-2.251-3.47-3.572-5.061c-1.531-1.875-4.287-2.165-6.175-0.651 c-1.95,1.261-2.644,3.786-1.609,5.866c0.156,0.351,0.345,0.687,0.562,1.003c0.083,0.115,0.157,0.236,0.22,0.364 c0.606,1.478,1.257,2.944,1.919,4.41c1.519,3.218,2.822,6.533,3.903,9.923c3.045,10.105,4.471,20.628,4.223,31.18 c0.006,2.899,0.347,5.789,1.014,8.61c0.257,1.77,1.383,3.293,2.999,4.058c1.786,0.659,3.784,0.373,5.314-0.761 c2.012-1.247,3.07-3.586,2.679-5.92l-0.595-5.679c-0.529-5.304-1.136-10.783-1.632-16.163l-0.056-0.65 c-0.496-5.259-0.948-10.221,0.231-15.127c0.091-0.323,0.221-0.634,0.387-0.926c1.428,1.102,2.626,2.473,3.527,4.036 c4.058,7.012,9.129,15.148,16.075,22.348c7.276,7.553,16.703,10.86,27.993,9.835l7.409-0.673c0,0.1,0,0.21,0,0.309 c0.231,1.456,0.452,2.823,0.629,4.19c0.221,1.741,0.407,3.483,0.595,5.226c0.375,3.43,0.75,6.979,1.4,10.452 c1.136,6.13,2.371,12.337,3.562,18.335c1.521,7.476,3.054,15.215,4.41,22.834c0.698,4.063,0.831,8.204,0.396,12.305 c-0.118,1.707-1.104,3.235-2.612,4.046c-1.84,0.905-4.008,0.839-5.789-0.177c-1.195-0.703-2.506-1.191-3.869-1.444 c-1.101-0.138-2.206,0.21-3.029,0.952c-1.564,1.41-1.689,3.822-0.278,5.388c2.844,3.539,6.218,5.325,10.055,5.325 c0.231,0,0.452,0,0.661-0.021c2.165-0.037,4.312-0.409,6.362-1.104c3.429-1.312,7.497-3.451,8.5-8.512 c0.565-2.493,0.763-5.057,0.585-7.607c-0.529-5.469-1.225-11.874-2.404-18.423c-1.18-6.55-2.458-13.175-3.682-19.593 c-1.511-7.717-3.043-15.699-4.41-23.561l-0.122-0.694c-0.672-3.749-1.334-7.618-0.672-11.29l1.422-0.85 c1.715-0.924,3.322-2.033,4.796-3.307c3.513-3.107,6.731-6.533,9.614-10.232c1.267-1.897,2.209-3.991,2.79-6.196 c0.297-0.893,0.562-1.731,0.882-2.547C674.238,77.376,677.832,67.145,677.094,55.876z M665.771,69.735l-1.411,3.914 c-1.532,4.245-3.109,8.644-4.752,12.922c-1.693,4.485-4.831,8.278-8.92,10.783c-0.011-0.118-0.011-0.235,0-0.353 c0.232-11.874,1.896-21.125,5.271-29.107c2.58-6.031,6.186-10.287,11.025-12.977c0.471,0.565,0.693,1.297,0.617,2.028 C667.788,61.286,667.168,65.623,665.771,69.735z" /> </g> </svg> </a> <nav id="nav"> <ul> <li> <ul class="links"> <li class="about"><a href="//www.stephenwolfram.com/about/">ABOUT</a></li> <li class="blog"><a href="//writings.stephenwolfram.com">WRITINGS</a></li> <li class="publications"><a href="//www.stephenwolfram.com/publications/">PUBLICATIONS</a></li> <li class="media"><a href="//www.stephenwolfram.com/media/">MEDIA</a></li> <li class="scrapbook"><a href="//www.stephenwolfram.com/scrapbook/">SCRAPBOOK</a></li> <li class="contact"><a href="//www.stephenwolfram.com/contact/">CONTACT</a></li> </ul> </li> <li> <ul class="social"> <li><a class="twitter" href="//x.com/stephen_wolfram" class="big-social-icon twitter" title="X" target="_blank"></a></li> <li><a class="facebook" href="//www.facebook.com/Stephen-Wolfram-188916357807416/" class="big-social-icon facebook" title="Facebook" target="_blank"></a></li> <li><a class="linkedin" href="//www.linkedin.com/in/stephenwolfram" class="big-social-icon linkedin" title="LinkedIn" target="_blank"></a></li> <li><a class="soundcloud" href="https://soundcloud.com/stephenwolfram/" class="big-social-icon soundcloud" title="SoundCloud" target="_blank"></a></li> <li><a class="twitch" href="https://www.twitch.tv/stephen_wolfram" class="big-social-icon twitch" title="Twitch" target="_blank"></a></li> </ul> </li> </ul> </nav> </div> <div class="stripe"></div> </header> <script> $('.hamburger').click(function(e){ e.stopPropagation(); $('.links').toggleClass('show'); $('#header > .inner').toggleClass('open'); if($('.overlay').length < 1 && !$('.links').hasClass('hide')) { $('#header').append('<div class="overlay">'); } else { $('.overlay').remove(); } }); $('body').click(function(){ $('.links').removeClass('show'); $('.overlay').remove(); $('#header > .inner').removeClass('open'); }); </script> <div class="writings-sidebar-additions"> <div class="inner"> <div class="sidebar-additions"> <div class="recent-categories"><a href="https://writings.stephenwolfram.com">Recent</a> | <div class="categories-list-wrapper"> <button class="categories">Categories</button> <div class="categories-list-menu hide"> <ul class="categories-list"> <li><a href="/category/artificial-intelligence">Artificial Intelligence</a></li><li><a href="/category/big-picture">Big Picture</a></li><li><a href="/category/companies-and-business">Companies & Business</a></li><li><a href="/category/computational-science">Computational Science</a></li><li><a href="/category/computational-thinking">Computational Thinking</a></li><li><a href="/category/data-science">Data Science</a></li><li><a href="/category/education">Education</a></li><li><a href="/category/future-perspectives">Future Perspectives</a></li><li><a href="/category/historical-perspectives">Historical Perspectives</a></li><li><a href="/category/language-and-communication">Language & Communication</a></li><li><a href="/category/life-and-times">Life & Times</a></li><li><a href="/category/life-science">Life Science</a></li><li><a href="/category/mathematica">Mathematica</a></li><li><a href="/category/mathematics">Mathematics</a></li><li><a href="/category/new-kind-of-science">New Kind of Science</a></li><li><a href="/category/new-technology">New Technology</a></li><li><a href="/category/personal-analytics">Personal Analytics</a></li><li><a href="/category/philosophy">Philosophy</a></li><li><a href="/category/physics">Physics</a></li><li><a href="/category/ruliology">Ruliology</a></li><li><a href="/category/software-design">Software Design</a></li><li><a href="/category/wolfram-alpha">Wolfram|Alpha</a></li><li><a href="/category/wolfram-language">Wolfram Language</a></li><li><a href="/category/other">Other</a></li> </ul> </div> </div> </div> <span class="pipe">|</span> <form class="search-link" method="get" action="https://writings.stephenwolfram.com/"> <svg version="1.0" class="search-button" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 18.2 18.5" enable-background="new 0 0 18.2 18.5" xml:space="preserve"> <g> <path class="circle" fill="#c42c1f" d="M7.7,14.2H7.6c-3.6,0-6.5-2.9-6.5-6.4V7.7c0-3.5,2.9-6.4,6.5-6.4h0.1 c3.6,0,6.5,2.9,6.5,6.4v0.1C14.2,11.3,11.3,14.2,7.7,14.2z M7.6,2.5c-2.9,0-5.2,2.3-5.2,5.1v0.1c0,2.8,2.3,5.1,5.2,5.1h0.1 c2.9,0,5.2-2.3,5.2-5.1V7.7C12.9,4.8,10.6,2.5,7.6,2.5L7.6,2.5z" /> <g> <path class="handle" fill="#c42c1f" d="M16.8,15.4l-4.4-4.4l-1.5,1.6l4.4,4.5c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3 C17.2,16.5,17.2,15.8,16.8,15.4z" /> </g> </g> </svg> <input class="search-field hide" type="text" value="" name="s" placeholder="Search Writings" /> <span class="close hide">×</span> </form> </div> </div> </div> <div class="inner"> <div id="content"><script type="text/javascript"> $(document).ready(function() { $("#join-small").addClass('join-small-js'); $("#exit-button").addClass('exit-button-js'); $("#respond").addClass('respond-js'); }); </script> <article id="postid-11969" > <div class="article-links"><span class="release icon"><a href="/recent-release">Latest Release Announcement »</a></span><span class="pipe">|</span><span class="release"><a href="/version-release">Other Releases »</a></span></span></div> <div id="toc-bar-wrap"> <div id="toc-bar"> <div id="toc-bar-inner"> <span class="toc-button">Contents</span> <div class="toc-menu hide"> <ul class='table-of-contents'> <li class='toplink'><a href='#top'>Top</a></li> <li><a href='#the-first-things-you-notice…'>The First Things You Notice…</a></li> <li><a href='#3d-printing'>3D Printing</a></li> <li><a href='#machine-learning-and-neural-networks'>Machine Learning & Neural Networks</a></li> <li><a href='#audio'>Audio</a></li> <li><a href='#bones-foods,-and-the-universe'>Bones, Foods, and the Universe…</a></li> <li><a href='#computing-with-real-world-entities'>Computing with Real-World Entities</a></li> <li><a href='#geo-everything'>Geo Everything</a></li> <li><a href='#dont-forget-calculus'>Don’t Forget Calculus…</a></li> <li><a href='#education'>Education</a></li> <li><a href='#making-everything-fit-together'>Making Everything Fit Together</a></li> <li><a href='#visualization'>Visualization</a></li> <li><a href='#from-strings-to-text'>From Strings to Text…</a></li> <li><a href='#the-most-modern-systems-programming'>The Most Modern Systems Programming</a></li> <li><a href='#building-things-on-the-web'>Building Things on the Web</a></li> <li><a href='#data-into-the-cloud'>Data Into the Cloud</a></li> <li><a href='#connecting-everywhere'>Connecting Everywhere</a></li> <li><a href='#wolframscript'>WolframScript</a></li> <li><a href='#the-core-language'>The Core Language</a></li> <li><a href='#and-theres-much-more'>And There’s Much More</a></li> </ul> </div> <span class="toc-title">Today We Launch Version 11!</span> </div> </div> </div> <h1 class="blog-post-title">Today We Launch Version 11!</h1> <time class="date" datetime="2016-08-08">August 8, 2016</time> <div class="post_content" > <p><b>Note:</b> There have been additional updates to Mathematica. Read about the updates in <a href="https://writings.stephenwolfram.com/2017/03/the-rd-pipeline-continues-launching-version-11-1">Version 11.1</a>, <a href="https://writings.stephenwolfram.com/2017/09/its-another-impressive-release-launching-version-11-2-today">Version 11.2</a> and <a href="https://writings.stephenwolfram.com/2018/03/roaring-into-2018-with-another-big-release-launching-version-11-3-of-the-wolfram-language-mathematica/">Version 11.3</a></p> <p>I’m thrilled today to announce the release of a major new version of <a id="mathematica-link" class="km-track-click" href="http://www.wolfram.com/mathematica/">Mathematica</a> and the <a id="wolfram-language-link" class="km-track-click" href="http://www.wolfram.com/language/">Wolfram Language</a>: <a id="new-in-11-link" class="km-track-click" href="http://www.wolfram.com/language/new-in-11">Version 11</a>, available immediately for both desktop and cloud. Hundreds of us have been energetically working on building this for the past two years—and in fact I’ve personally put several thousand hours into it. I’m very excited about what’s in it; it’s a major step forward, with a lot of both breadth and depth—and with remarkably central relevance to many of today’s most prominent technology areas.</p> <p><a id="new-in-11-link" class="km-track-click" href="http://www.wolfram.com/language/new-in-11"><img class="alignnone size-full wp-image-12045" title="Featured areas in Version 11 of Mathematica and the Wolfram Language" src="https://content.wolfram.com/sites/43/2016/08/version-11-featured-areas-mathematica-wolfram-language.png" alt="Featured areas in Version 11 of Mathematica and the Wolfram Language" width="500" height="494" srcset="https://content.wolfram.com/sites/43/2016/08/version-11-featured-areas-mathematica-wolfram-language.png 500w, https://content.wolfram.com/sites/43/2016/08/version-11-featured-areas-mathematica-wolfram-language-300x296.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></a></p> <p>It’s been more than 28 years since <a href="http://mathematica25.com/">Version 1 came out</a>—and nearly 30 years since I started its development. And all that time I’ve been continuing to pursue a bold vision—and to build a taller and taller stack of <a href="https://www.wolfram.com/technologies/">technology</a>. With most software, after a few years and a few versions, not a lot of important new stuff ever gets added. But with Mathematica and the Wolfram Language it’s been a completely different story: for three decades we’ve been taking major steps forward at every version, progressively conquering vast numbers of new areas.<span id="more-11969"></span></p> <p>It’s been an amazing intellectual journey for me and all of us. From the very beginning we had a strong set of fundamental <a href="https://www.wolfram.com/language/principles/">principles</a> and a strong underlying <a href="https://writings.stephenwolfram.com/2008/01/ten-thousand-hours-of-design-reviews/">design</a>—and for three decades we’ve been able to just keep building more and more on these foundations, creating what is by now an <a href="http://reference.wolfram.com/language/">unprecedentedly vast system</a> that has nevertheless maintained its unity, elegance and, frankly, modernity. In the early years we concentrated particularly on abstract areas such as <a href="http://reference.wolfram.com/language/guide/MathematicsAndAlgorithmsOverview.html">mathematics</a>. But over time we’ve dramatically expanded, taking ever larger steps and covering ever more kinds of <a href="http://www.wolfram.com/algorithmbase/">computation</a> and <a id="wolfram-knowledgebase-link" class="km-track-click" href="http://www.wolfram.com/knowledgebase/">knowledge</a>.</p> <p>Each new version represents both a lot of new ideas and a lot of hard work. But more than that, it represents ever greater leverage achieved with our technology. Because one of our <a href="http://www.wolfram.com/language/principles">key principles</a> is automation, and at every version we’re building on all the automation we’ve achieved before—in effect, we’ve got larger and larger building blocks that we’re able to use to go further and further more and more quickly. And of course what makes this possible is all that effort that I and others have put in over the years maintaining a <a href="http://www.wolfram.com/language/principles/">coherent design</a> for the whole system—so all those building blocks from every different area fit perfectly together.</p> <p>With traditional approaches to software development, it would have taken a great many years to create what we’ve added in Version 11. And the fact that we can deliver Version 11 now is a direct reflection of the effectiveness of our technology, our <a href="http://www.wolfram.com/language/principles/">principles</a> and our methodology. And as I look at Version 11, it’s very satisfying to see how far we’ve come not only in what’s in the system, but also in how effectively we can develop it. Not to mention that all these directions we’ve been pursuing for so many years as part of the logical development of our system have now turned out to be exactly what’s needed for many of today’s most active areas of technology development.</p> <p>For many years we called our core system Mathematica. But as we added new directions in knowledge and deployment, and expanded far beyond things related in any way to “math”, we decided to introduce the concept of the <a id="wolfram-language-link" class="km-track-click" href="http://www.wolfram.com/language/">Wolfram Language</a> to represent the core of everything we’re doing. And the Wolfram Language now defines the operation not only of <a id="mathematica-link" class="km-track-click" href="http://www.wolfram.com/mathematica/">Mathematica</a>, but also of <a id="wolfram-development-platform-link" class="km-track-click" href="http://www.wolfram.com/development-platform/">Wolfram Development Platform</a> and <a id="wolfram-programming-lab-link" class="km-track-click" href="http://www.wolfram.com/programming-lab/">Wolfram Programming Lab</a>, as well as other products and platforms. And because all our software engineering is unified, today we’re able to release Version 11 of all our Wolfram-Language-based systems, both desktop and <a id="wolframcloud.com-link" class="km-track-click" href="http://www.wolframcloud.com/">cloud</a>.</p> <p><a href="http://www.wolfram.com/products/"><img class="alignnone size-full wp-image-12037" title="A sample of products based on the Wolfram Language" src="https://content.wolfram.com/sites/43/2016/08/wolfram-language-based-systems-icons.png" alt="A sample of products based on the Wolfram Language" width="481" height="142" srcset="https://content.wolfram.com/sites/43/2016/08/wolfram-language-based-systems-icons.png 481w, https://content.wolfram.com/sites/43/2016/08/wolfram-language-based-systems-icons-300x88.png 300w" sizes="(max-width: 481px) 100vw, 481px" /></a></p> <p>OK, so what’s the big new thing in Version 11? Well, it’s not one big thing; it’s many big things. To give a sense of scale, there are <a href="http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn11.html">555 completely new functions</a> that we’re adding in Version 11—representing a huge amount of new functionality (by comparison, Version 1 had a total of <a href="http://reference.wolfram.com/history/">551 functions altogether</a>). And actually that function count is even an underrepresentation—because it doesn’t include the vast deepening of many existing functions.</p> <p>The way we manage development, we’ve always got a portfolio of projects going on, from fairly small ones, to ones that may take five years or more. And indeed Version 11 contains the results of several five-year projects. We’re always keen to deliver the results of our development as quickly as possible to users, so we’ve actually had several intermediate releases since Version 10—and effectively Version 11 represents the combination of many completely new developments together with ones that we’ve already previewed in <a href="http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn101.html">10.1</a>, <a href="http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn102.html">10.2</a>, <a href="http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn103.html">10.3</a> and <a href="http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn104.html">10.4</a>. (Many functions that were tagged as “Experimental” in 10.x releases are now in full production form in Version 11.0.)</p> <p><a name="TheFirstThingsYouNotice"></a></p> <h2 id="the-first-things-you-notice">The First Things You Notice…</h2> <p>When you first launch Version 11 on your desktop the first thing you’ll notice is that <a href="http://www.wolfram.com/language/11/user-interface-enhancements/">notebooks have a new look</a>, with crisper fonts and tighter design. When you type code there are lots of new <a href="http://www.wolfram.com/language/11/user-interface-enhancements/contextual-autocompletions.html">autocompletions</a> that appear (it’s getting harder and harder to type the wrong thing), and when you type text there’s a new <a href="http://www.wolfram.com/language/11/user-interface-enhancements/real-time-spellchecker.html">real-time spellchecker</a>, that we’ll be continually updating to make sure it has the latest words included.</p> <p>If your computer system is set to any of a dozen languages other than English, you’ll also immediately see something else: every function is automatically annotated with a “<a href="http://www.wolfram.com/language/11/multilingual-functionality/code-captions.html">code caption</a>” in the language you’ve set:</p> <p><a href="http://www.wolfram.com/language/11/multilingual-functionality/code-captions.html"><img class="alignnone size-full wp-image-12040" title="Code captions in Wolfram Language code, here in Japanese" src="https://content.wolfram.com/sites/43/2016/08/code-captions-wolfram-language.png" alt="Code captions in Wolfram Language code, here in Japanese" width="546" height="224" srcset="https://content.wolfram.com/sites/43/2016/08/code-captions-wolfram-language.png 546w, https://content.wolfram.com/sites/43/2016/08/code-captions-wolfram-language-300x123.png 300w" sizes="(max-width: 546px) 100vw, 546px" /></a></p> <p>When you actually run code, you’ll notice that <a href="http://www.wolfram.com/language/11/user-interface-enhancements/new-messages-interface.html">messages</a> look different too—and, very helpfully for debugging, they let you immediately see what chain of functions was being called when the message was produced.</p> <p><a name="3DPrinting"></a></p> <h2 id="3d-printing">3D Printing</h2> <p>There are lots of big, meaty new areas in Version 11. But let’s jump right into one of them: <a href="http://www.wolfram.com/language/new-in-11/for-existing-users/#3d_printing">3D printing</a>. I made my first 3D printout (which didn’t last long before disintegrating) back in 2002. And we’ve had the ability to export to <a href="http://reference.wolfram.com/language/ref/format/STL.html">STL</a> for years. But what’s new and exciting in Version 11 is that we’ve built a <a href="http://reference.wolfram.com/language/guide/3DPrinting.html">complete pipeline</a> that goes from creating 3D geometry to having it printed on your 3D printer (or through a printing service).</p> <p><a href="http://reference.wolfram.com/language/guide/3DPrinting.html"><img class="alignnone size-full wp-image-12049" title="Version 11 provides a complete pipeline for 3D printing" src="https://content.wolfram.com/sites/43/2016/08/3d-printing-flow-wolfram-language.png" alt="Version 11 provides a complete pipeline for 3D printing" width="437" height="368" srcset="https://content.wolfram.com/sites/43/2016/08/3d-printing-flow-wolfram-language.png 437w, https://content.wolfram.com/sites/43/2016/08/3d-printing-flow-wolfram-language-300x252.png 300w" sizes="(max-width: 437px) 100vw, 437px" /></a></p> <p>Often in the past I’ve wanted to take a 3D plot and just make a 3D print of it. And occasionally I’ve been lucky, and it’s been easy to do. But most of the time it’s a fiddly, complicated process. Because graphics that display on the screen don’t necessarily correspond to geometry that can actually be printed on a 3D printer. And it turns out to be a difficult problem of 3D computational geometry to conveniently set up or <a href="http://www.wolfram.com/language/11/3d-printing/automatically-detect-defects-and-repair-meshes.html">repair the geometry</a> so it really works on a 3D printer. (Oh, and if you get it wrong, you could have plastic randomly squirting out of your printer.)</p> <p>In Version 11 it’s finally realistic to take any 3D plot, and <a href="http://reference.wolfram.com/language/ref/Printout3D.html">just 3D print it</a>. Or you can get the <a href="http://www.wolfram.com/language/11/3d-printing/save-3d-print-ready-models.html">structure of a molecule</a> or the <a href="http://www.wolfram.com/language/11/core-geometry/mesh-from-data.html">elevation around a mountain</a>, and similarly just 3D print it. Over the years I’ve personally made many 3D printouts. But each one has been its own little adventure. But now, thanks to Version 11, 3D printouts of everything are easy. And now that I think about it, maybe I need a 3D printout of the growth of the Wolfram Language <a href="http://reference.wolfram.com/language/">by area</a> for my desk…</p> <p><a name="MachineLearning&NeuralNetworks"></a></p> <h2 id="machine-learning-and-neural-networks">Machine Learning & Neural Networks</h2> <p>In a sense, Mathematica and the Wolfram Language have always been doing AI. Over the years we’ve certainly been pioneers in solving lots of “AI-ish” problems—from mathematical solving to automated aesthetics to natural language understanding. But back in <a href="http://www.wolfram.com/mathematica/new-in-10/">Version 10</a> we also made a great step forward in <a href="http://reference.wolfram.com/language/guide/MachineLearning.html">machine learning</a>—developing extremely automated core functions (<a href="http://reference.wolfram.com/language/ref/Classify.html"><tt>Classify</tt></a> and <a href="http://reference.wolfram.com/language/ref/Predict.html"><tt>Predict</tt></a>) for learning by example.</p> <p>I have to say that I wasn’t sure how well these functions would do in practice. But actually it’s been amazing to see <a href="http://www.wolfram.com/mathematica/new-in-10/machine-learning/">how well they work</a>—and it’s been very satisfying to see so many of our users being able to incorporate machine learning into their work, just using the automation we’ve built, and without having to consult any machine learning experts.</p> <p>In Version 11 we’ve made many steps forward in <a href="http://www.wolfram.com/language/11/improved-machine-learning/">machine learning</a>. We’ve now got clean ways not just to do classification and prediction, but also to do <a href="http://reference.wolfram.com/language/ref/FeatureExtraction.html">feature extraction</a>, <a href="http://reference.wolfram.com/language/ref/DimensionReduction.html">dimension reduction</a>, <a href="http://reference.wolfram.com/language/ref/ClusterClassify.html">clustering</a> and so on. And we’ve also done a lot of training ourselves to deliver pre-trained <a href="http://reference.wolfram.com/language/guide/MachineLearning.html">machine-learning functions</a>. Machine-learning training is an interesting new kind of development. At its core, it’s a curation process. It’s just that instead of, say, collecting <a href="http://www.wolfram.com/language/11/richer-knowledgebase-access/explore-movieology.html">data on movies</a>, you’re collecting as many images as possible of different kinds of animals.</p> <p>Built into Version 11 are now functions like <a href="http://reference.wolfram.com/language/ref/ImageIdentify.html"><tt>ImageIdentify</tt></a> that identify <a href="https://www.imageidentify.com">over 10,000 different kinds of objects</a>. And through the whole design of the system, it’s easy to take the features that have been learned, and immediately use those to <a href="http://www.wolfram.com/language/11/improved-machine-learning/create-an-insect-identifier-tool.html">train new image classifiers</a> vastly more efficiently than before.</p> <p><a href="http://www.wolfram.com/language/11/improved-machine-learning/create-an-insect-identifier-tool.html"><img class="alignnone size-full wp-image-12051" title="ImageIdentify lets you easily and efficiently train new image classifiers" src="https://content.wolfram.com/sites/43/2016/08/imageidentify-wolfram-language.png" alt="ImageIdentify lets you easily and efficiently train new image classifiers" width="568" height="165" srcset="https://content.wolfram.com/sites/43/2016/08/imageidentify-wolfram-language.png 568w, https://content.wolfram.com/sites/43/2016/08/imageidentify-wolfram-language-300x87.png 300w" sizes="(max-width: 568px) 100vw, 568px" /></a></p> <p>We’ve done a lot to automate today’s most common machine learning tasks. But it’s become clear in the past few years that an amazing number of new areas can now be tackled by modern machine learning methods, and particularly by using neural networks. It’s really an amazing <a href="https://writings.stephenwolfram.com/2015/05/wolfram-language-artificial-intelligence-the-image-identification-project/">episode in the history of science</a>: the field of neural networks, that I’ve followed for almost 40 years, has gone from seeming basically hopeless to being one of the hottest fields around, with major new discoveries being made almost every week.</p> <p>But, OK, if you want to get involved, what should you do? Yes, you can cobble things together with a range of low-level libraries. But in building Version 11 we set ourselves the goal of creating a streamlined symbolic way to set up and train neural networks—in which as much of what has to be done as possible has been automated. It’s all very new, but in Version 11 we’ve now got functions like <a href="http://reference.wolfram.com/language/ref/NetGraph.html"><tt>NetGraph</tt></a> and <a href="http://reference.wolfram.com/language/ref/NetChain.html"><tt>NetChain</tt></a>, together with all sorts of “<a href="http://reference.wolfram.com/language/guide/NeuralNetworks.html">neural net special functions</a>”, like <a href="http://reference.wolfram.com/language/ref/DotPlusLayer.html"><tt>DotPlusLayer</tt></a> and <a href="http://reference.wolfram.com/language/ref/ConvolutionLayer.html"><tt>ConvolutionLayer</tt></a>. And with these functions it’s easy to take the latest networks and quickly get them set up in the Wolfram Language (recurrent networks didn’t quite make it into Version 11.0, but they’re coming soon).</p> <p><a href="http://www.wolfram.com/language/11/neural-networks/"><img class="alignnone size-full wp-image-12053" title="Neural network examples using new Version 11 functionality" src="https://content.wolfram.com/sites/43/2016/08/machine-learning-and-neural-network-examples-wolfram-language-11.png" alt="Neural network examples using new Version 11 functionality" width="474" height="391" srcset="https://content.wolfram.com/sites/43/2016/08/machine-learning-and-neural-network-examples-wolfram-language-11.png 474w, https://content.wolfram.com/sites/43/2016/08/machine-learning-and-neural-network-examples-wolfram-language-11-300x247.png 300w" sizes="(max-width: 474px) 100vw, 474px" /></a></p> <p>Of course, what makes this all really work well is the integration into the rest of the Wolfram Language. The neural network is just a <a href="http://reference.wolfram.com/language/ref/Graph.html"><tt>Graph</tt></a> object like any other graph. And inputs like <a href="http://reference.wolfram.com/language/guide/ImageProcessing.html">images</a> or <a href="http://reference.wolfram.com/language/guide/ProcessingTextualData.html">text</a> can immediately and automatically be processed using standard Wolfram Language capabilities into forms appropriate for neural network computation.</p> <p>From their name, “neural networks” sound like they’re related to brains. But actually they’re perfectly general computational structures: they just correspond to complex combinations of simple functions. They’re not unrelated to the simple programs that <a href="http://www.wolframscience.com/nksonline/toc.html">I’ve spent so long studying</a>—though they have the special feature that they’re set up to be easy to train from examples.</p> <p>We’ve had traditional <a href="http://reference.wolfram.com/language/guide/Statistics.html">statistical data fitting</a> and <a href="http://reference.wolfram.com/language/ref/Interpolation.html">interpolation</a> forever. But what’s new with neural networks is a vastly richer space of possible computational structures to fit data to, or to train. It’s been remarkable just in the past couple of years to see a sequence of fields revolutionized by this—and there will be more to come.</p> <p>I’m hoping that we can accelerate this with Version 11. Because we’ve managed to make “neural net programming” really just another programming paradigm integrated with all the others in the Wolfram Language. Yes, it’s very efficient and can deal with huge training sets. But ultimately probably the most powerful thing is that it immediately fits in with everything else the Wolfram Language does. And even in Version 11 we’re already using it in many of our internal algorithms in areas like <a href="http://reference.wolfram.com/language/guide/ImageProcessing.html">image</a>, <a href="http://reference.wolfram.com/language/guide/SignalProcessing.html">signal</a> and <a href="http://reference.wolfram.com/language/guide/TextAnalysis.html">text</a> processing. It’s still early days in the history of “neural net programming”—but I’m excited for the Wolfram Language to play a central part in what’s coming.</p> <p><a name="Audio"></a></p> <h2 id="audio">Audio</h2> <p>OK, let’s turn to another new area of Version 11: <a href="http://www.wolfram.com/language/11/computational-audio">audio</a>. Our goal is to be able to handle any kind of data directly in the Wolfram Language. We’ve already got <a href="http://reference.wolfram.com/language/ref/Graphics.html">graphics</a> and <a href="http://reference.wolfram.com/language/ref/Image.html">images</a> and <a href="http://reference.wolfram.com/language/guide/GeometricComputation.html">geometry</a> and <a href="http://reference.wolfram.com/language/guide/GraphsAndNetworks.html">networks</a> and <a href="http://reference.wolfram.com/language/guide/Formulas.html">formulas</a> and <a href="http://reference.wolfram.com/language/">lots else</a>, all consistently represented as first-class symbolic structures in the language. And as of Version 11, we’ve now always got another type of first-class data: <a href="http://reference.wolfram.com/language/ref/Audio.html">audio</a>.</p> <p><a href="http://www.wolfram.com/language/11/computational-audio"><img class="alignnone size-full wp-image-12055" title="Version 11 introduces fully integrated support for audio processing" src="https://content.wolfram.com/sites/43/2016/08/audio-data-wolfram-language.png" alt="Version 11 introduces fully integrated support for audio processing" width="514" height="284" srcset="https://content.wolfram.com/sites/43/2016/08/audio-data-wolfram-language.png 514w, https://content.wolfram.com/sites/43/2016/08/audio-data-wolfram-language-300x165.png 300w" sizes="(max-width: 514px) 100vw, 514px" /></a></p> <p>Audio is mostly complicated because it’s big. But in Version 11 we’ve got everything set up so it’s seamless to handle, say, an <a href="http://www.wolfram.com/language/11/computational-audio/hello-audio.html">hour of audio</a> directly in the Wolfram Language. Behind the scenes there’s all sorts of engineering that’s caching and streaming and so on. But it’s all automated—and in the language it’s just a simple <a href="http://reference.wolfram.com/language/ref/Audio.html"><tt>Audio</tt></a> object. And that <a href="http://reference.wolfram.com/language/ref/Audio.html"><tt>Audio</tt></a> object is immediately amenable to all the sophisticated signal processing and analysis that’s available in the Wolfram Language.</p> <p><a name="BonesFoodsandtheUniverse"></a></p> <h2 id="bones-foods-and-the-universe">Bones, Foods, and the Universe…</h2> <p>The Wolfram Language is a knowledge-based language. Which means it’s got lots of knowledge—about both computation and the world—built into it. And these days the Wolfram Language covers <a href="http://www.wolframalpha.com/examples/">thousands of domains</a> of real-world knowledge—from countries to movies to companies to planets. There’s new data flowing into the central <a id="wolfram-knowledgebase-link" class="km-track-click" href="http://www.wolfram.com/knowledgebase/">Wolfram Knowledgebase</a> in the cloud all the time, and we’re carefully curating data on new things that exist in the world (who knew, for example, that there were new administrative divisions recently created in Austria?). Lots of this data is visible in <a id="wolfram-alpha-link" class="km-track-click" href="http://www.wolframalpha.com/">Wolfram|Alpha</a> (as well as intelligent assistants powered by it). But it’s in the Wolfram Language that the data really comes alive for full computation—and where all the effort we put into ensuring its alignment and consistency becomes evident.</p> <p>We’re always working to expand the domains of knowledge covered by the Wolfram Language. And in Version 11 several domains that we’ve been working on for many years are finally now ready. One that’s been particularly difficult is <a href="http://reference.wolfram.com/language/ref/AnatomyData.html">anatomy data</a>. But in Version 11 we’ve now got <a href="http://reference.wolfram.com/language/ref/AnatomyPlot3D.html">detailed 3D models</a> of all the significant structures in the human body. So you can see how those complicated bones in the foot fit together. And you can do computations on them. Or 3D print them. And you can understand the network of arteries around the heart. I must say that as I’ve explored this, I’m more amazed than ever at the level of morphological complexity that exists in the human body. But as of Version 11, it’s now a domain where we can actually do computations. And there are perhaps-unexpected new functions like <a href="http://reference.wolfram.com/language/ref/AnatomyPlot3D.html"><tt>AnatomyPlot3D</tt></a> to support it. (There’s certainly more to be done, by the way: for example, our anatomy data is only for a single “average adult male”, and the joints can’t move, etc.)</p> <p><a href="http://reference.wolfram.com/language/ref/AnatomyPlot3D.html"><img class="alignnone size-full wp-image-12057" title="Built right in to Version 11: Detailed 3D models of all the significant structures in the human body" src="https://content.wolfram.com/sites/43/2016/08/anatomy-data-wolfram-language.png" alt="Built right in to Version 11: Detailed 3D models of all the significant structures in the human body" width="526" height="321" srcset="https://content.wolfram.com/sites/43/2016/08/anatomy-data-wolfram-language.png 526w, https://content.wolfram.com/sites/43/2016/08/anatomy-data-wolfram-language-300x183.png 300w" sizes="(max-width: 526px) 100vw, 526px" /></a></p> <p>A completely different domain of data now handled in the Wolfram Language is food. There’s a lot that’s complicated in this domain. First, there are issues of ontology. What is an apple? Well, there’s a generic apple, and there are also many specific types of apples. Then there are issues of defining amounts of things. A <a href="http://www.wolframalpha.com/input/?i=cup+of+strawberries">cup of strawberries</a>. <a href="http://www.wolframalpha.com/input/?i=three+apples">Three apples</a>. A <a href="http://www.wolframalpha.com/input/?i=quarter+pounder">quarter pounder</a>. It’s taken many years of work, but we’ve now got a very robust symbolic way to represent food—from which we can immediately compute nutritional properties and lots of other things.</p> <p><img class="alignnone size-full wp-image-12059" title="Version 11 offers extensive technical data on nutritional and other properties of thousands of foods" src="https://content.wolfram.com/sites/43/2016/08/food-data-wolfram-language.png" alt="Version 11 offers extensive technical data on nutritional and other properties of thousands of foods" width="555" height="282" srcset="https://content.wolfram.com/sites/43/2016/08/food-data-wolfram-language.png 555w, https://content.wolfram.com/sites/43/2016/08/food-data-wolfram-language-300x152.png 300w" sizes="(max-width: 555px) 100vw, 555px" /></p> <p>Another area that’s also been long coming is <a href="http://www.wolfram.com/language/11/geo-data/historicalcountry-polygons.html">historical country data</a>. We’ve had very complete data on countries in modern times (typically from 1960 or 1970 on). But what about earlier history? What about <a href="http://www.wolframalpha.com/input/?i=prussia">Prussia</a>? What about the <a href="http://www.wolframalpha.com/input/?i=roman+empire">Roman Empire</a>? Well, in Version 11 we’ve finally got at least approximate border information for all serious country-like entities, throughout recorded history. So one can do computations about the rise and fall of empires right from within the Wolfram Language.</p> <p><a href="http://www.wolfram.com/language/11/geo-data/historicalcountry-polygons.html"><img class="alignnone size-full wp-image-12061" title="Easily find—and do computation with—the maximum geographical extent of the Roman Empire and much more" src="https://content.wolfram.com/sites/43/2016/08/historical-country-data-wolfram-language.png" alt="Easily find—and do computation with—the maximum geographical extent of the Roman Empire and much more" width="527" height="171" srcset="https://content.wolfram.com/sites/43/2016/08/historical-country-data-wolfram-language.png 527w, https://content.wolfram.com/sites/43/2016/08/historical-country-data-wolfram-language-300x97.png 300w" sizes="(max-width: 527px) 100vw, 527px" /></a></p> <p>Talking of history, a small but very useful addition in Version 11 is historical word frequency data. Just ask <a href="http://reference.wolfram.com/language/ref/WordFrequencyData.html"><tt>WordFrequencyData</tt></a> for a <a href="http://reference.wolfram.com/language/guide/TimeSeries.html">time series</a>, and you’ll be able to see how much people talked about “war”—or “turnips”—at different times in history. Almost every plot is a history lesson.</p> <p><a href="http://reference.wolfram.com/language/ref/WordFrequencyData.html"><img class="alignnone size-full wp-image-12063" title="WordFrequencyData in Version 11" src="https://content.wolfram.com/sites/43/2016/08/word-frequency-data-time-series-wolfram-language.png" alt="WordFrequencyData in Version 11" width="554" height="146" srcset="https://content.wolfram.com/sites/43/2016/08/word-frequency-data-time-series-wolfram-language.png 554w, https://content.wolfram.com/sites/43/2016/08/word-frequency-data-time-series-wolfram-language-300x79.png 300w" sizes="(max-width: 554px) 100vw, 554px" /></a></p> <p>Another convenient function in Version 11 is <a href="http://reference.wolfram.com/language/ref/WikipediaData.html"><tt>WikipediaData</tt></a>, which immediately gives any Wikipedia entry (or various kinds of data it contains). There’s also <a href="http://reference.wolfram.com/language/ref/WolframLanguageData.html"><tt>WolframLanguageData</tt></a>, which gives computable data on the Wolfram Language itself—like the examples in its documentation, links between functions, and so on.</p> <p>In many domains one’s mostly just dealing with static data (“what is the density of gold?”; “what was the population of London in 1959?”). But there are other domains where one’s not really interested in static data so much as data-backed computation. There are several new examples of this in Version 11. Like <a href="http://reference.wolfram.com/language/ref/MortalityData.html">human mortality data</a> (“what is the probability of dying between age X and Y?”), <a href="http://reference.wolfram.com/language/ref/StandardOceanData.html">standard ocean data</a> (“what is the pressure at a depth X?”), <a href="http://reference.wolfram.com/language/ref/StoppingPowerData.html">radioactive stopping power</a> and <a href="http://reference.wolfram.com/language/ref/HumanGrowthData.html">human growth data</a>—as well as data on the whole <a href="http://reference.wolfram.com/language/ref/UniverseModelData.html">universe</a> according to standard cosmological models.</p> <p>Also new in Version 11 are <a href="http://reference.wolfram.com/language/ref/WeatherForecastData.html"><tt>WeatherForecastData</tt></a> and <a href="http://reference.wolfram.com/language/ref/MathematicalFunctionData.html"><tt>MathematicalFunctionData</tt></a>. Oh, as well as data on <a href="http://www.wolfram.com/language/11/knowledgebase-expansion/find-powerful-pokemon.html">Pokémon</a> and lots of other useful things.</p> <p><a href="http://www.wolfram.com/language/11/knowledgebase-expansion/find-powerful-pokemon.html"><img class="alignnone size-full wp-image-12065" title="The Wolfram Language has caught 'em all" src="https://content.wolfram.com/sites/43/2016/08/pokemon-data-wolfram-language.png" alt="The Wolfram Language has caught 'em all" width="569" height="292" srcset="https://content.wolfram.com/sites/43/2016/08/pokemon-data-wolfram-language.png 569w, https://content.wolfram.com/sites/43/2016/08/pokemon-data-wolfram-language-300x153.png 300w" sizes="(max-width: 569px) 100vw, 569px" /></a></p> <p><a name="ComputingwithReal-WorldEntities "></a></p> <h2 id="computing-with-real-world-entities">Computing with Real-World Entities</h2> <p>One of the very powerful features of the Wolfram Language is its ability to compute directly with real-world entities. To the Wolfram Language, the US, or Russia, or a type of lizard are all just entities that can be manipulated as symbolic constructs using the overall symbolic paradigm of the language. Entities don’t directly have values; they’re just symbolic objects. But their properties can have values: <tt>[[USA]]["Population"]</tt> is 322 million.</p> <p>But let’s say we don’t just want to take some entity (like the US) and find values of its properties. Let’s say instead we want to find what entities have certain properties with particular values. Like let’s say we want to find the 5 largest countries in the world by population. Well, in Version 11 there’s a new way to do this. Instead of specifying a particular explicit entity, we instead specify a computation that implicitly defines a class of entities. And so for example we can get a list of the 5 largest countries by population like this:</p> <p><a href="http://reference.wolfram.com/language/ref/TakeLargest.html"><img class="alignnone size-full wp-image-12066" title="EntityList[Entity["Country", "Population" -> TakeLargest[5]]]" src="https://content.wolfram.com/sites/43/2016/08/entitylist-wolfram-language.png" alt="EntityList[Entity["Country", "Population" -> TakeLargest[5]]]" width="408" height="61" srcset="https://content.wolfram.com/sites/43/2016/08/entitylist-wolfram-language.png 408w, https://content.wolfram.com/sites/43/2016/08/entitylist-wolfram-language-300x44.png 300w" sizes="(max-width: 408px) 100vw, 408px" /></a></p> <p><a href="http://reference.wolfram.com/language/ref/TakeLargest.html"><tt>TakeLargest[5]</tt></a> is an <a href="http://reference.wolfram.com/language/guide/FunctionCompositionAndOperatorForms.html">operator form</a> of a new function in Version 11 that gets the largest elements in a list. Implicit entities end up making a lot of use of operator forms—much like queries in <a href="http://reference.wolfram.com/language/ref/Dataset.html"><tt>Dataset</tt></a>. And in a sense they’re also making deep use of the symbolic character of the Wolfram Language—because they’re treating the functions that define them just like data.</p> <p>The whole mechanism of entities and properties and implicit entities works for all the different types of entities that exist in the Wolfram Language. But as of Version 11, it’s not limited to built-in types of entities. There’s a new construct called <a href="http://reference.wolfram.com/language/ref/EntityStore.html"><tt>EntityStore</tt></a> that lets you define your own types of entities, and specify their properties and values and so on—and then seamlessly use them in any computation.</p> <p>Just as <a href="http://reference.wolfram.com/language/ref/Dataset.html"><tt>Dataset</tt></a> is a powerful hierarchical generalization of typical database concepts, so <a href="http://reference.wolfram.com/language/ref/EntityStore.html"><tt>EntityStore</tt></a> is a kind of symbolic generalization of a typical relational database. And if you set up a sophisticated entity store, you can just use <a href="http://reference.wolfram.com/language/ref/CloudDeploy.html"><tt>CloudDeploy</tt></a> to immediately deploy it to the cloud, so you can use it whenever you want.</p> <p><a name="GeoEverything"></a></p> <h2 id="geo-everything">Geo Everything</h2> <p>One aspect of “knowing about the real world” is knowing about <a href="http://reference.wolfram.com/language/guide/GeographicData.html">geography</a>. But the Wolfram Language doesn’t just have access to detailed geographic data (not only for Earth, but also for the <a href="http://reference.wolfram.com/language/ref/PlanetaryMoonData.html">Moon</a>, <a href="http://reference.wolfram.com/language/ref/PlanetData.html">Mars</a>, even <a href="http://reference.wolfram.com/language/ref/MinorPlanetData.html">Pluto</a>); it can also compute with this data. It’s got a huge collection of <a href="http://reference.wolfram.com/language/ref/GeoProjection.html">geo projections</a>, all immediately computable, and all set up to support very <a href="http://www.wolfram.com/language/11/geo-computation/choice-of-datum.html">careful and detailed geodesy</a>. Remember <a href="http://www.wolframalpha.com/input/?i=spherical+trigonometry&rawformassumption=%7B%22C%22,+%22spherical+trigonometry%22%7D+-%3E+%7B%22MathWorld%22%7D">spherical trigonometry</a>? Well, the Wolfram Language doesn’t just assume the Earth is a sphere, but correctly computes distances and areas and so on, using the actual shape of the Earth.</p> <p><a href="http://reference.wolfram.com/language/ref/GeoProjection.html"><img class="alignnone size-full wp-image-12068" title="Just a few of the many geo projections in the Wolfram Language" src="https://content.wolfram.com/sites/43/2016/08/geo-projections-wolfram-language.png" alt="Just a few of the many geo projections in the Wolfram Language" width="567" height="249" srcset="https://content.wolfram.com/sites/43/2016/08/geo-projections-wolfram-language.png 567w, https://content.wolfram.com/sites/43/2016/08/geo-projections-wolfram-language-300x131.png 300w" sizes="(max-width: 567px) 100vw, 567px" /></a></p> <p>When it comes to making <a href="http://reference.wolfram.com/language/guide/MapsAndCartography.html">maps</a>, the Wolfram Language now has access not only to the street map of the world, but also to things like <a href="http://www.wolfram.com/language/11/geo-data/historicalcountry-polygons.html">historical country borders</a>, as well as at least low-resolution <a href="http://www.wolfram.com/language/11/geo-data/satellite-tiles-for-the-earth.html">satellite imagery</a>. And given the street map, there’s an important new class of computations that can be done: <a href="http://reference.wolfram.com/language/ref/TravelDirections.html">travel directions</a> (and <a href="http://reference.wolfram.com/language/ref/TravelTime.html">travel times</a>) along streets from anywhere to anywhere.</p> <p><a href="http://www.wolfram.com/language/11/geo-computation/travel-time-and-distance.html?product=language"><img class="alignnone size-full wp-image-12070" title="Travel directions, time, and distance—to anywhere" src="https://content.wolfram.com/sites/43/2016/08/travel-directions-wolfram-language.png" alt="Travel directions, time, and distance—to anywhere" width="430" height="217" srcset="https://content.wolfram.com/sites/43/2016/08/travel-directions-wolfram-language.png 430w, https://content.wolfram.com/sites/43/2016/08/travel-directions-wolfram-language-300x151.png 300w" sizes="(max-width: 430px) 100vw, 430px" /></a></p> <p><a name="Don'tForgetCalculus"></a></p> <h2 id="dont-forget-calculus">Don’t Forget Calculus…</h2> <p>Version 11 has lots and lots of new capabilities across <a href="http://reference.wolfram.com/language/">all areas of the Wolfram Language</a>. But it’s also got lots of new capabilities in traditional Mathematica areas—like <a href="http://www.wolfram.com/language/11/symbolic-and-numeric-calculus/">calculus</a>. And back in earlier versions, what we’ve just added for calculus in Version 11 is big enough that it would have undoubtedly been the headline new feature of the version.</p> <p>One example is <a href="http://www.wolfram.com/language/11/differential-eigensystems/?product=language">differential eigensystems</a>: being able to solve <a href="http://reference.wolfram.com/language/ref/DEigenvalues.html">eigenvalue versions</a> of both <a href="http://reference.wolfram.com/language/guide/DifferentialEquations.html">ODEs and PDEs</a>. There’s a huge stack of algorithmic technology necessary to make this possible—and in fact we’ve been building towards it for more than 25 years. And what’s really important is that it’s general: it’s not something where one has to carefully set up some particular problem using elaborate knowledge of numerical analysis. It’s something where one just specifies the <a href="http://reference.wolfram.com/language/guide/PDEModelingAndAnalysis.html">equations and their boundary conditions</a>—and then the system automatically figures out how to solve them.</p> <p><a href="http://www.wolfram.com/language/11/symbolic-and-numeric-calculus/"><img class="alignnone size-full wp-image-12072" title="Calculus examples using new Version 11 functionality" src="https://content.wolfram.com/sites/43/2016/08/calculus-examples-wolfram-language-11.png" alt="Calculus examples using new Version 11 functionality" width="540" height="272" srcset="https://content.wolfram.com/sites/43/2016/08/calculus-examples-wolfram-language-11.png 540w, https://content.wolfram.com/sites/43/2016/08/calculus-examples-wolfram-language-11-300x151.png 300w" sizes="(max-width: 540px) 100vw, 540px" /></a></p> <p>Back around 1976 I wrote a <a href="http://www.wolframalpha.com/input/?i=fortran">Fortran</a> program to solve an eigenvalue version of the 1D <a href="http://www.wolframalpha.com/input/?i=schrodinger+equation">Schrödinger equation</a> for a <a href="https://www.stephenwolfram.com/publications/academic/decoupling-axial-mesons-currents.pdf">particle physics problem</a> I was studying. In 1981 I wrote <a href="http://www.wolframalpha.com/input/?i=c+language">C</a> programs to do the same thing for some <a href="https://www.stephenwolfram.com/publications/academic/properties-vacuum-mechanical-thermodynamic.pdf">equations in relativistic quantum mechanics</a>. I’ve been patiently waiting for the day when I can just type in these problems, and immediately get answers. And now with Version 11 it’s here.</p> <p>Of course, what’s in Version 11 is much more powerful and more general. I was dealing with simple boundary conditions. But in Version 11 one can use the whole Wolfram Language <a href="http://reference.wolfram.com/language/guide/ComputationalGeometry.html">geometry</a> system—and all the data we have—to set up boundary conditions. So it’s easy to find the <a href="http://www.wolfram.com/language/11/differential-eigensystems">eigenmodes of a “drum” of any shape</a>—like the <a href="http://reference.wolfram.com/language/ref/CountryData.html">shape of the US</a>.</p> <p><a href="http://www.wolfram.com/language/11/differential-eigensystems"><img class="alignnone size-full wp-image-12074" title="Differential eigensystems computations, fully integrated with the power of the Wolfram Language" src="https://content.wolfram.com/sites/43/2016/08/eigenmodes-of-drum-shaped-like-united-states-wolfram-language.png" alt="Differential eigensystems computations, fully integrated with the power of the Wolfram Language" width="449" height="224" srcset="https://content.wolfram.com/sites/43/2016/08/eigenmodes-of-drum-shaped-like-united-states-wolfram-language.png 449w, https://content.wolfram.com/sites/43/2016/08/eigenmodes-of-drum-shaped-like-united-states-wolfram-language-300x149.png 300w" sizes="(max-width: 449px) 100vw, 449px" /></a></p> <p>For something like that, there’s no choice but to do the computation numerically. Still, Version 11 will do <a href="http://reference.wolfram.com/language/ref/DEigensystem.html">differential eigensystem computations</a> symbolically when it can. And Version 11 also adds some major new capabilities for <a href="http://www.wolfram.com/language/11/partial-differential-equations">general symbolic differential equations</a>. In particular, we’ve had a large R&D project that’s now gotten us to the point where we can compute a symbolic solution to pretty much any symbolic PDE that would appear in any kind of textbook or the like.</p> <p>Back in 1979 when I <a href="https://writings.stephenwolfram.com/2013/06/there-was-a-time-before-mathematica/">created a precursor to Mathematica</a> I made a list of things I hoped we’d eventually be able to do. One of the things on that list was to solve integral equations. Well, I’m excited to be able to say that 37 years later, we’ve finally got the <a href="http://www.wolfram.com/algorithmbase/">algorithmic technology stack</a> to make this possible—and Version 11 introduces symbolic <a href="http://www.wolfram.com/language/11/symbolic-and-numeric-calculus/solve-an-integro-differential-equation.html">solutions to many classes of integro-differential equations</a>.</p> <p>There’s more in calculus too. Like <a href="http://reference.wolfram.com/language/ref/GreenFunction.html">Green’s functions</a> for general equations in general domains. And, long awaited (at least by me): <a href="http://reference.wolfram.com/language/ref/MellinTransform.html">Mellin transforms</a>. (They’ve been a favorite of mine ever since they were central to a 1977 <a href="https://www.stephenwolfram.com/publications/academic/positivity-constraints-qcd.pdf">particle physics paper</a> of mine.)</p> <p>It’s not classic calculus fare, but in Version 11 we’ve also added a lot of strength in what one might consider “modern calculus”—the aspects of calculus needed to support areas like machine learning. We’ve got more <a href="http://reference.wolfram.com/language/ref/FindMinimum.html">efficient and robust minimization</a>, and we’ve also got sophisticated <a href="http://reference.wolfram.com/language/ref/BayesianMinimization.html">Bayesian minimization</a>, suitable for things like <a href="http://reference.wolfram.com/language/guide/MachineLearning.html">unsupervised machine learning</a>.</p> <p><a name="Education"></a></p> <h2 id="education">Education</h2> <p>Things like <a href="http://reference.wolfram.com/language/guide/PDEModelingAndAnalysis.html">partial differential equations</a> are sophisticated math, that happen to be very important in lots of practical applications in physics and engineering and so on. But what about <a href="http://reference.wolfram.com/language/guide/PrecollegeEducation.html">more basic kinds of math</a>, of the kind that’s for example relevant to high-school education? Well, for a long time Mathematica has covered that very thoroughly. But as our algorithmic technology stack has grown, there are a few new things that become possible, even for more elementary math.</p> <p>One example new in Version 11 is full <a href="http://www.wolfram.com/language/11/visualization--labels-scales-exclusions/automatic-exclusions.html">automatic handling of discontinuities, asymptotes, and so on</a> in plots of functions. So now, for example, <tt><a href="http://reference.wolfram.com/language/ref/Tan.html">Tan</a>[x]</tt> is plotted in the perfect high-school way, not joining –∞ and +∞. For <tt>Tan[x]</tt> that’s pretty simple to achieve. But there’s some seriously sophisticated algorithmic technology inside to handle this for more complicated functions.</p> <p><a href="http://www.wolfram.com/language/11/visualization--labels-scales-exclusions/automatic-exclusions.html"><img class="alignnone size-full wp-image-12078" title="Full automatic handling of discontinuities, asymptotes, and more" src="https://content.wolfram.com/sites/43/2016/08/function-plots-wolfram-language1.png" alt="Full automatic handling of discontinuities, asymptotes, and more" width="572" height="243" srcset="https://content.wolfram.com/sites/43/2016/08/function-plots-wolfram-language1.png 572w, https://content.wolfram.com/sites/43/2016/08/function-plots-wolfram-language1-300x127.png 300w" sizes="(max-width: 572px) 100vw, 572px" /></a></p> <p>And, by the way, another huge new thing in Version 11 is <a href="http://reference.wolfram.com/language/ref/MathematicalFunctionData.html"><tt>MathematicalFunctionData</tt></a>—computable access to 100,000 properties and relations about <a href="http://reference.wolfram.com/language/guide/MathematicalFunctions.html">mathematical functions</a>—in a sense <a href="https://writings.stephenwolfram.com/2014/08/computational-knowledge-and-the-future-of-pure-mathematics/">encapsulating centuries of mathematical research</a> and making it immediately available for computation.</p> <p>We’ve been doing a lot recently using the Wolfram Language as a way to teach computational thinking at all levels. And among many other things, we’ve wanted to make sure that any computation that comes up—say in math—in elementary school education is really elementary to do in the Wolfram Language. And so we’ve got little functions like <a href="http://reference.wolfram.com/language/ref/NumberExpand.html"><tt>NumberExpand</tt></a>, which takes <tt>123</tt> and writes it as <tt>{100, 20, 3}</tt>. And we’ve also got <a href="http://reference.wolfram.com/language/ref/RomanNumeral.html"><tt>RomanNumeral</tt></a> and <a href="http://reference.wolfram.com/language/guide/NumberDigits.html">so on</a>.</p> <p>And, partly as a tribute to the legacy of <a href="http://www.wolframalpha.com/input/?i=Logo+programming+language">Logo</a>, we’ve introduced <a href="http://reference.wolfram.com/language/ref/AnglePath.html"><tt>AnglePath</tt></a>—a kind of industrial-scale version of “<a href="http://www.wolfram.com/language/11/algebra-and-number-theory/turtle-graphics.html">turtle graphics</a>”, that happens to be useful not just for elementary education, but for serious simulations, say of different types of random walks.</p> <p><a href="http://www.wolfram.com/language/11/algebra-and-number-theory/turtle-graphics.html"><img class="alignnone size-full wp-image-12080" title="AnglePath, new in Version 11" src="https://content.wolfram.com/sites/43/2016/08/turtle-graphics-anglepath-wolfram-language.png" alt="AnglePath, new in Version 11" width="505" height="257" srcset="https://content.wolfram.com/sites/43/2016/08/turtle-graphics-anglepath-wolfram-language.png 505w, https://content.wolfram.com/sites/43/2016/08/turtle-graphics-anglepath-wolfram-language-300x152.png 300w" sizes="(max-width: 505px) 100vw, 505px" /></a></p> <p><a name="MakingEverythingFitTogether"></a></p> <h2 id="making-everything-fit-together">Making Everything Fit Together</h2> <p>One of the <a href="http://www.wolfram.com/language/principles/">central goals</a> of the Wolfram Language is to have everything seamlessly work together. And in Version 11 there are some powerful new examples of this going on.</p> <p><a href="http://reference.wolfram.com/language/guide/TimeSeries.html">Time series</a>, for example, now <a href="http://www.wolfram.com/language/11/time-series-processing/?product=language">work directly with arithmetic</a>. So you can take two air pressure time series, and just subtract them. Of course, this would be easy if all the time points in the series lined up. But in Version 11 they don’t have to: the Wolfram Language automatically handles arbitrarily irregular time series.</p> <p>Another example concerns units. In Version 11, <a href="http://reference.wolfram.com/language/guide/ProbabilityAndStatistics.html">statistical distributions</a> now <a href="http://www.wolfram.com/language/11/quantities-in-probability-and-statistics/">work seamlessly with units</a>. So a normal distribution can have not just a variance of 2.5, but a variance of 2.5 meters. And all computations and <a href="http://www.wolfram.com/language/11/quantities-in-probability-and-statistics/convert-units-of-a-quantitydistribution.html">unit conversions</a> are handled completely automatically.</p> <p><a href="http://www.wolfram.com/language/11/core-geometry/">Geometry and geometric regions</a> have also been seamlessly integrated into more parts of the system. Solvers that used to just take variables can now be given arbitrary regions to operate over. Another connection is between images and regions: <a href="http://reference.wolfram.com/language/ref/ImageMesh.html"><tt>ImageMesh</tt></a> now takes any image and constructs a <a href="http://www.wolfram.com/language/11/core-geometry/mesh-from-images.html">geometric mesh</a> from it. So, for example, you can do serious computational geometry with your favorite cat picture if you want.</p> <p>One final example: random objects. <a href="http://reference.wolfram.com/language/ref/RandomInteger.html"><tt>RandomInteger</tt></a> and <a href="http://reference.wolfram.com/language/ref/RandomReal.html"><tt>RandomReal</tt></a> are old functions. <a href="http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn80.html">Version 8</a> introduced <a href="http://reference.wolfram.com/language/ref/RandomVariate.html"><tt>RandomVariate</tt></a> for picking random objects from arbitrary symbolic probability distributions. Then in <a href="http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn90.html">Version 9</a> came <a href="http://reference.wolfram.com/language/ref/RandomFunction.html"><tt>RandomFunction</tt></a>, for generating functions from random processes. But now in Version 11 there’s <a href="http://reference.wolfram.com/language/guide/RandomNumberGeneration.html">more randomness</a>. There’s <a href="http://reference.wolfram.com/language/ref/RandomPoint.html"><tt>RandomPoint</tt></a>, which picks a random point in any geometric region. And there’s also <a href="http://reference.wolfram.com/language/ref/RandomEntity.html"><tt>RandomEntity</tt></a> that picks a random entity, as well as <a href="http://reference.wolfram.com/language/ref/RandomWord.html"><tt>RandomWord</tt></a>—that’s useful for natural language processing research, as well as being a nice way to test your vocabulary in <a href="http://www.wolfram.com/language/11/multilingual-functionality/">lots of languages</a>… And finally, in Version 11 there’s a whole major new mathematical area of randomness: <a href="http://www.wolfram.com/language/11/random-matrices/">random matrices</a>—implemented with all the depth and completeness that we’ve made a hallmark of Mathematica and the Wolfram Language.</p> <p><a name="Visualization"></a></p> <h2 id="visualization">Visualization</h2> <p>One of the long-term achievements of Mathematica and the Wolfram Language has been that they’ve made visualization a routine part of everyday work. Our goal has always been to make it as automatic as possible to visualize as much as possible. And Version 11 now makes a whole collection of <a href="http://www.wolfram.com/language/11/new-visualization-domains">new things automatic to visualize</a>.</p> <p>There are very flexible <a href="http://reference.wolfram.com/language/ref/WordCloud.html">word clouds</a> that let one visualize text and collections of strings. There are <a href="http://reference.wolfram.com/language/ref/TimelinePlot.html">timeline plots</a> for visualizing events in time. There are <a href="http://reference.wolfram.com/language/ref/AudioPlot.html">audio plots</a> that immediately visualize short and long pieces of audio. There are <a href="http://reference.wolfram.com/language/ref/Dendrogram.html">dendrograms</a> that use machine learning methods to show <a href="http://reference.wolfram.com/language/guide/ClusterAnalysis.html">hierarchical clustering</a> of images, text, or any other kind of data. There are <a href="http://reference.wolfram.com/language/ref/GeoHistogram.html">geo histograms</a> to show geographic density. There’s a <a href="http://reference.wolfram.com/language/ref/TextStructure.html"><tt>TextStructure</tt></a> function that diagrams the grammar of English sentences. And there are <a href="http://reference.wolfram.com/language/ref/AnatomyPlot3D.html">anatomy plots</a>, to show features in the human body (making use of symbolic specifications, since there aren’t any explicit coordinates).</p> <p><a href="http://www.wolfram.com/language/11/new-visualization-domains"><img class="alignnone size-full wp-image-12082" title="A few of the many visualization possibilities with the Wolfram Language" src="https://content.wolfram.com/sites/43/2016/08/visualizations-in-wolfram-language.png" alt="A few of the many visualization possibilities with the Wolfram Language" width="467" height="342" srcset="https://content.wolfram.com/sites/43/2016/08/visualizations-in-wolfram-language.png 467w, https://content.wolfram.com/sites/43/2016/08/visualizations-in-wolfram-language-300x219.png 300w" sizes="(max-width: 467px) 100vw, 467px" /></a></p> <p>What other kinds of things are there to visualize? Well, one thing I’ve ended up visualizing a lot (especially in <a href="http://www.wolframscience.com">my efforts in basic science</a>) are the rules for simple programs like cellular automata. And in Version 11 we’ve added <a href="http://reference.wolfram.com/language/ref/RulePlot.html"><tt>RulePlot</tt></a> for automatically visualizing rules in many different styles.</p> <p><a href="http://reference.wolfram.com/language/ref/RulePlot.html"><img class="alignnone size-full wp-image-12087" title="RulePlot automatically visualizes rules for Turing machines, cellular automata, and more" src="https://content.wolfram.com/sites/43/2016/08/simple-programs-rule-visualization-wolfram-language.png" alt="RulePlot automatically visualizes rules for Turing machines, cellular automata, and more" width="451" height="90" srcset="https://content.wolfram.com/sites/43/2016/08/simple-programs-rule-visualization-wolfram-language.png 451w, https://content.wolfram.com/sites/43/2016/08/simple-programs-rule-visualization-wolfram-language-300x59.png 300w" sizes="(max-width: 451px) 100vw, 451px" /></a></p> <p>Another longstanding visualization challenge has been how to <a href="http://www.wolfram.com/language/11/volume-visualization/">automatically visualize 3D distributions of data</a>. The issue tends to be that it’s hard to “see into” the 3D volume. But in Version 11 we’ve got a <a href="http://www.wolfram.com/language/11/volume-visualization">bunch of functions</a> that solve this in different ways, often by making slices at positions that are defined by our <a href="http://reference.wolfram.com/language/guide/GeometricComputation.html">geometry</a> system.</p> <p><a href="http://www.wolfram.com/language/11/volume-visualization/"><img class="alignnone size-full wp-image-12084" title="Automatically visualize 3D distributions of data" src="https://content.wolfram.com/sites/43/2016/08/3d-data-slices-wolfram-language.png" alt="Automatically visualize 3D distributions of data" width="532" height="368" srcset="https://content.wolfram.com/sites/43/2016/08/3d-data-slices-wolfram-language.png 532w, https://content.wolfram.com/sites/43/2016/08/3d-data-slices-wolfram-language-300x207.png 300w" sizes="(max-width: 532px) 100vw, 532px" /></a></p> <p>In the quest for automation in visualization, another big area is labeling. And in Version 11 we’ve added <a href="http://reference.wolfram.com/language/ref/Callout.html"><tt>Callout</tt></a> to make it possible to specify <a href="http://www.wolfram.com/language/11/visualization--labels-scales-exclusions/controlling-callout-labels.html">callouts</a> for points, lines and regions (we’ve already got <a href="http://reference.wolfram.com/language/guide/Legends.html">legends</a> and <a href="http://reference.wolfram.com/language/ref/Tooltip.html">tooltips</a> and <a href="http://reference.wolfram.com/language/guide/ChartLabelingLegendingAndAnnotation.html">so on</a>). There’s a trivial way to do callouts: just always put them (say) on the left. But that’d be really bad in practice, because lots of callouts could end up colliding. And what Version 11 does instead is something much more sophisticated, involving algorithmically laying out callouts to optimally achieve aesthetic and communication goals.</p> <p><a href="http://www.wolfram.com/language/11/visualization--labels-scales-exclusions/controlling-callout-labels.html"><img class="alignnone size-full wp-image-12089" title="Automatic, elegant placement of callout labels" src="https://content.wolfram.com/sites/43/2016/08/callout-data-labels-in-wolfram-language.png" alt="Automatic, elegant placement of callout labels" width="544" height="244" srcset="https://content.wolfram.com/sites/43/2016/08/callout-data-labels-in-wolfram-language.png 544w, https://content.wolfram.com/sites/43/2016/08/callout-data-labels-in-wolfram-language-300x134.png 300w" sizes="(max-width: 544px) 100vw, 544px" /></a></p> <p><a name="FromStringstoText"></a></p> <h2 id="from-strings-to-text">From Strings to Text…</h2> <p>Mathematica and the Wolfram Language have always been able to handle <a href="http://reference.wolfram.com/language/guide/StringManipulation.html">character strings</a>. And in Version 10 there was a huge step forward with the introduction of <a href="http://reference.wolfram.com/language/ref/Interpreter.html"><tt>Interpreter</tt></a>—in which we took the <a href="http://www.wolfram.com/natural-language-understanding/">natural language understanding</a> breakthroughs we made for <a id="wolfram-alpha-link" class="km-track-click" href="http://www.wolframalpha.com/">Wolfram|Alpha</a>, and applied them to interpreting strings in hundreds of domains. Well, in Version 11 we’re taking another big step—providing a variety of functions for large-scale <a href="http://www.wolfram.com/language/11/text-and-language-processing/">natural language processing and text manipulation</a>.</p> <p>There are functions like <a href="http://reference.wolfram.com/language/ref/TextWords.html"><tt>TextWords</tt></a> and <a href="http://reference.wolfram.com/language/ref/TextSentences.html"><tt>TextSentences</tt></a> for breaking text into words and sentences. (It takes fancy machine learning to do a good job, and not, for example, to be confused by things like the periods in “St. John’s St.”) Then there are functions like <a href="http://reference.wolfram.com/language/ref/TextCases.html"><tt>TextCases</tt></a>, which lets one automatically pick out different natural-language classes, like countries or dates, or, for that matter, nouns or verbs.</p> <p>It’s pretty interesting being able to treat words as data. <a href="http://reference.wolfram.com/language/ref/WordList.html"><tt>WordList</tt></a> gives lists of different kinds of words. <a href="http://reference.wolfram.com/language/ref/WordDefinition.html"><tt>WordDefinition</tt></a> gives definitions.</p> <p>Then there are <a href="http://www.wolfram.com/language/11/multilingual-functionality/">multilingual capabilities</a>. <a href="http://reference.wolfram.com/language/ref/Alphabet.html"><tt>Alphabet</tt></a> gives pretty much every kind of alphabet; <a href="http://reference.wolfram.com/language/ref/Transliterate.html"><tt>Transliterate</tt></a> transliterates between writing systems. And <a href="http://reference.wolfram.com/language/ref/WordTranslation.html"><tt>WordTranslation</tt></a> gives translations of words into about 200 languages. Great raw material for all sorts of <a href="http://reference.wolfram.com/language/guide/LinguisticData.html">linguistics</a> investigations.</p> <p><a href="http://www.wolfram.com/language/11/multilingual-functionality/"><img class="alignnone size-full wp-image-12091" title="Multilingual functionality in Version 11" src="https://content.wolfram.com/sites/43/2016/08/multilingual-capabilities-wolfram-language.png" alt="Multilingual functionality in Version 11" width="573" height="145" srcset="https://content.wolfram.com/sites/43/2016/08/multilingual-capabilities-wolfram-language.png 573w, https://content.wolfram.com/sites/43/2016/08/multilingual-capabilities-wolfram-language-300x75.png 300w" sizes="(max-width: 573px) 100vw, 573px" /></a></p> <p><a name="TheMostModernSystemsProgramming"></a></p> <h2 id="the-most-modern-systems-programming">The Most Modern Systems Programming</h2> <p>The Wolfram Language is arguably the highest-level language that’s ever been created. But in Version 11 we’ve added a bunch of capabilities for “reaching all the way down” to the lowest level of computer systems. First of all, there’s <a href="http://reference.wolfram.com/language/ref/ByteArray.html"><tt>ByteArray</tt></a> that can store and manipulate raw sequences of bytes. Then there are functions that deal with raw networks, like <a href="http://reference.wolfram.com/language/ref/PingTime.html"><tt>PingTime</tt></a> and <a href="http://reference.wolfram.com/language/ref/SocketConnect.html"><tt>SocketConnect</tt></a>.</p> <p>There’s a new framework for <a href="http://www.wolfram.com/language/11/channel-framework/">publish-subscribe “channels”</a>. You can create a channel, then either the Wolfram Language or an external system can send it data, and you can set up a “listener” that will do something in your Wolfram Language session whenever the data arrives. There’s a lot that can be built with this setup, whether it’s connecting to <a href="http://www.wolfram.com/language/11/channel-framework/dashboard-for-remote-data.html">external services</a> and <a href="http://www.wolfram.com/language/11/channel-framework/collect-data-from-arduino-yun.html">devices</a>, handling <a href="http://www.wolfram.com/language/11/channel-framework/process-incoming-email.html">notifications</a> and third-party authentication—or creating your very own <a href="http://www.wolfram.com/language/11/channel-framework/programmable-chat.html">chat system</a>.</p> <p>Something else new in Version 11 is <a href="http://reference.wolfram.com/language/guide/Cryptography.html">built-in cryptography</a>. It’s a very clean symbolic framework that lets you set up pretty much whatever protocol you want, using <a href="http://www.wolfram.com/language/11/systems-level-functionality/use-symmetric-key-encryption-and-decryption.html">public</a> or <a href="http://www.wolfram.com/language/11/systems-level-functionality/use-asymmetric-key-cryptography.html">private</a> key systems.</p> <p>What about interacting with the web? The symbolic character of the Wolfram Language is again very powerful here. Because for example it lets one have <a href="http://reference.wolfram.com/language/ref/HTTPRequest.html"><tt>HTTPRequest</tt></a> and <a href="http://reference.wolfram.com/language/ref/HTTPResponse.html"><tt>HTTPResponse</tt></a> as <a href="http://reference.wolfram.com/language/guide/HTTPRequestsAndResponses.html">symbolic structures</a>. And it also lets one have functions like <a href="http://reference.wolfram.com/language/ref/URLSubmit.html"><tt>URLSubmit</tt></a>, with symbolically defined handler functions for callbacks from asynchronous URL submission. There’s even now a <a href="http://reference.wolfram.com/language/ref/CookieFunction.html"><tt>CookieFunction</tt></a>, for symbolic handling of cookies.</p> <p>Yes, one can do systems programming in pretty much any language—or even for example in a shell. But what I’ve found is that doing it in the Wolfram Language is incredibly more powerful. Let’s say you’re <a href="https://writings.stephenwolfram.com/2015/04/scientific-bug-hunting-in-the-cloud-an-unexpected-ceo-adventure/">exploring the performance</a> of a computer system. Well, first of all, everything you’re doing is kept nicely in a <a href="http://reference.wolfram.com/language/guide/NotebooksAndDocumentsOverview.html">notebook</a>, where you can add comments, etc. Then—very importantly—everything you do can be immediately visualized. Or you can apply machine learning, or whatever. Want to study network performance? Use <a href="http://reference.wolfram.com/language/ref/PingTime.html"><tt>PingTime</tt></a> to generate a list of ping times; then immediately make a histogram, correlate with other data, or whatever.</p> <p>Something else we’re adding in Version 11 is <a href="http://reference.wolfram.com/language/ref/FileSystemMap.html"><tt>FileSystemMap</tt></a>: being able to treat a file system like a collection of nested lists (or associations) and then mapping any function over it. So for example you can take a directory full of images, and use <a href="http://reference.wolfram.com/language/ref/FileSystemMap.html"><tt>FileSystemMap</tt></a> to apply <a href="http://reference.wolfram.com/language/guide/ImageProcessing.html">image processing</a> to all of them.</p> <p>Oh, and another thing: Version 11 also includes, though it’s still tagged as experimental, a full industrial-strength system for <a href="http://reference.wolfram.com/language/ref/ResourceSearch.html">searching text documents</a>, both locally and in the cloud.</p> <p><a name="BuildingThingsontheWeb"></a></p> <h2 id="building-things-on-the-web">Building Things on the Web</h2> <p>An incredibly powerful feature of the Wolfram Language is that it runs not only on the desktop but also <a id="www.w.c/cloud-link" class="km-track-click" href="http://www.wolfram.com/cloud/">in the cloud</a>. And in Version 11 there are lots of new capabilities that use the cloud, for example to create things on the web.</p> <p>Let’s start with the fairly straightforward stuff. <tt><a href="http://reference.wolfram.com/language/ref/CloudDeploy.html">CloudDeploy</a>[<a href="http://reference.wolfram.com/language/ref/FormFunction.html">FormFunction</a>[...]]</tt> lets you immediately <a href="http://reference.wolfram.com/language/guide/CreatingFormsAndApps.html">create a form-based app</a> on the web. But now it’s easy to make the form even more sophisticated. There are lots of new types of “smart fields” that automatically use <a href="http://www.wolfram.com/natural-language-understanding">natural language understanding</a> to interpret your input. There are new constructs, like <a href="http://reference.wolfram.com/language/ref/RepeatingElement.html"><tt>RepeatingElement</tt></a> and <a href="http://reference.wolfram.com/language/ref/CompoundElement.html"><tt>CompoundElement</tt></a>, that automatically set up fields to get input for lists and associations. And there’s a whole new <a href="http://reference.wolfram.com/language/guide/ProgrammableLinguisticInterface.html">Programmable Linguistic Interface</a> that lets you define your own grammar to extend the <a href="http://www.wolfram.com/natural-language-understanding/">natural language understanding</a> that’s already built into the Wolfram Language.</p> <p>The forms you specify symbolically in the Wolfram Language can be <a href="http://www.wolfram.com/language/11/cloud-and-web-interfaces">quite sophisticated</a>—with multiple pages and lots of interdependencies and formatting. But ultimately they’re still just forms where you set up your input, then submit it. Version 11 introduces the new <a href="http://reference.wolfram.com/language/ref/AskFunction.html"><tt>AskFunction</tt></a> framework which lets you set up more complex interactions—like back-and-forth dialogs in which you “interview” the user to get data. In the Wolfram Language, the whole process is specified by a symbolic structure—which <a href="http://reference.wolfram.com/language/ref/CloudDeploy.html"><tt>CloudDeploy</tt></a> then makes immediately active on the web.</p> <p>It’s a goal of the Wolfram Language to make it easy to build complex things on the web. In Version 11, we’ve added <a href="http://reference.wolfram.com/language/ref/FormPage.html"><tt>FormPage</tt></a> to let you build a “recycling form” (like on <a id="wolfram-alpha-link" class="km-track-click" href="http://www.wolframalpha.com/">wolframalpha.com</a>), and <a href="http://reference.wolfram.com/language/ref/GalleryView.html"><tt>GalleryView</tt></a> to let you take a list of assets in the Wolfram Language, and immediately deploy them as a “gallery” on the web (like in <a href="http://demonstrations.wolfram.com/">demonstrations.wolfram.com</a>).</p> <p><a href="http://reference.wolfram.com/language/ref/GalleryView.html"><img class="alignnone size-full wp-image-12094" title="GalleryView in Version 11: Immediately deploy assets as a web gallery" src="https://content.wolfram.com/sites/43/2016/08/galleryview-instantly-deploys-web-gallery-wolfram-language.png" alt="GalleryView in Version 11: Immediately deploy assets as a web gallery" width="608" height="245" srcset="https://content.wolfram.com/sites/43/2016/08/galleryview-instantly-deploys-web-gallery-wolfram-language.png 608w, https://content.wolfram.com/sites/43/2016/08/galleryview-instantly-deploys-web-gallery-wolfram-language-300x120.png 300w" sizes="(max-width: 608px) 100vw, 608px" /></a></p> <p>If you want to operate at a lower level, there are lots of new functions, like <a href="http://reference.wolfram.com/language/ref/URLDispatcher.html"><tt>URLDispatcher</tt></a> and <a href="http://reference.wolfram.com/language/ref/GenerateHTTPResponse.html"><tt>GenerateHTTPResponse</tt></a>, that let you determine exactly how web requests will be handled by things you set up in the cloud.</p> <p>Also new in Version 11 are functions like <a href="http://reference.wolfram.com/language/ref/CloudPublish.html"><tt>CloudPublish</tt></a> and <a href="http://reference.wolfram.com/language/ref/CloudShare.html"><tt>CloudShare</tt></a> that let you control access to things you put in the cloud from the Wolfram Language. A small but I think important new feature is <a href="http://reference.wolfram.com/language/ref/SourceLink.html"><tt>SourceLink</tt></a>, which lets you automatically link from, say, a graphic that you deploy in the cloud back to the notebook (also in the cloud) in which it was created. I think this will be a great tool for “data-backed publication”—in which every picture you see in a paper, for example, links back to what created it. (Inside <a href="http://www.wolfram.com/">our company</a>, I’m also insisting that <a href="http://reference.wolfram.com/language/guide/AutomatedReports.html">automated reports we generate</a>—from the Wolfram Language of course—include source links, so I can always get the raw data and analyze it myself or whatever.)</p> <p><a name="DataIntotheCloud"></a></p> <h2 id="data-into-the-cloud">Data Into the Cloud</h2> <p>Already there experimentally in Version 10—but now fully supported in Version 11—is the whole <a href="https://datadrop.wolframcloud.com/">Wolfram Data Drop</a> mechanism, which lets you accumulate data from anywhere into the <a id="www.w.c/cloud-link" class="km-track-click" href="http://www.wolfram.com/cloud/">Wolfram Cloud</a>. I have to say I think I underestimated the breadth of usefulness of the <a id="wolfram-data-drop-link" class="km-track-click" href="https://datadrop.wolframcloud.com/">Wolfram Data Drop</a>. I <a href="https://writings.stephenwolfram.com/2015/03/the-wolfram-data-drop-is-live/">thought</a> it would be used primarily to store data from <a href="http://devices.wolfram.com/">sensors and the like</a>. And, yes, there are lots of applications along these lines. But what I’ve found is that the Data Drop is incredibly useful purely inside the Wolfram Language. Let’s say you’ve got a web form that’s running in the Wolfram Language. You might process each request—but then throw the result into a databin in the Wolfram Data Drop so you can analyze them all together.</p> <p>Wolfram Data Drop is basically set up to accumulate time series of data. In Version 11 another way to store data in the cloud is <a href="http://reference.wolfram.com/language/ref/CloudExpression.html"><tt>CloudExpression</tt></a>. You can put any Wolfram Language expression into a cloud expression, and it’ll be persistently stored there, with each part being extracted or set by all the usual operations (like <a href="http://reference.wolfram.com/language/ref/Part.html"><tt>Part</tt></a> and <a href="http://reference.wolfram.com/language/ref/AppendTo.html"><tt>AppendTo</tt></a>) that one could use on a symbol in a Wolfram Language session. <a href="http://reference.wolfram.com/language/ref/CloudExpression.html"><tt>CloudExpression</tt></a> is a great way to store structured data where one’s continually modifying parts, but one wants all the data to be persistent in the cloud.</p> <p>Things you store in the cloud are immediately persistent. In Version 11, there’s also <a href="http://reference.wolfram.com/language/ref/LocalObject.html"><tt>LocalObject</tt></a>—which is the local analog of <a href="http://reference.wolfram.com/language/ref/CloudObject.html"><tt>CloudObject</tt></a>—and provides persistent local storage on your machine. <a href="http://reference.wolfram.com/language/ref/LocalCache.html"><tt>LocalCache</tt></a> is a seamless way of ensuring that things you’re using are cached in the local object store.</p> <p><a name="ConnectingEverywhere"></a></p> <h2 id="connecting-everywhere">Connecting Everywhere</h2> <p>In the Wolfram Language we curate lots of data that we include directly in the <a id="wolfram-knowledgebase-link" class="km-track-click" href="http://www.wolfram.com/knowledgebase/">knowledgebase</a>—but we also curate ways to access more data, such as <a href="http://reference.wolfram.com/language/guide/ListingOfSupportedExternalServices.html">external APIs</a>. Version 11 includes many new connections, for example to <a href="http://reference.wolfram.com/language/ref/service/Flickr.html">Flickr</a>, <a href="http://reference.wolfram.com/language/ref/service/Reddit.html">Reddit</a>, <a href="http://reference.wolfram.com/language/ref/service/MailChimp.html">MailChimp</a>, <a href="http://reference.wolfram.com/language/ref/service/SurveyMonkey.html">SurveyMonkey</a>, <a href="http://reference.wolfram.com/language/ref/service/SeatGeek.html">SeatGeek</a>, <a href="http://reference.wolfram.com/language/ref/service/ArXiv.html">ArXiv</a> and <a href="http://reference.wolfram.com/language/guide/ListingOfSupportedExternalServices.html">more</a>.</p> <p><a href="http://reference.wolfram.com/language/guide/ListingOfSupportedExternalServices.html"><img class="alignnone size-full wp-image-12096" title="Version 11 adds many new connections to external APIs" src="https://content.wolfram.com/sites/43/2016/08/external-api-connectivity-wolfram-language.png" alt="Version 11 adds many new connections to external APIs" width="496" height="167" srcset="https://content.wolfram.com/sites/43/2016/08/external-api-connectivity-wolfram-language.png 496w, https://content.wolfram.com/sites/43/2016/08/external-api-connectivity-wolfram-language-300x101.png 300w" sizes="(max-width: 496px) 100vw, 496px" /></a></p> <p>The Wolfram Language is also an extremely powerful way to deploy your own APIs. And in Version 11 there’s an expanding set of authentication mechanisms that are supported for APIs—for example <a href="http://reference.wolfram.com/language/ref/PermissionsKey.html"><tt>PermissionsKey</tt></a> for giving appids. <a href="http://reference.wolfram.com/language/ref/CloudLoggingData.html"><tt>CloudLoggingData</tt></a> also now gives what can be extremely detailed data about how any API or other cloud object you have is being accessed.</p> <p>An <a href="http://reference.wolfram.com/language/guide/CreatingAnInstantAPI.html">API</a> that you call on the web basically gets data passed to it through the URL that it’s given. In Version 11 we have a new kind of API-like construct that operates not through the web and URLs, but through email. <a href="http://reference.wolfram.com/language/ref/MailReceiverFunction.html"><tt>MailReceiverFunction</tt></a> is like <a href="http://reference.wolfram.com/language/ref/APIFunction.html"><tt>APIFunction</tt></a>, except when it’s deployed it defines an email address, and then any mail that’s sent to that email address gets fed to the code in the mail receiver function. <a href="http://reference.wolfram.com/language/ref/MailReceiverFunction.html"><tt>MailReceiverFunction</tt></a> lets you get very detailed in separating out different parts of a mail message and its headers—and then lets you apply any Wolfram Language function you want—so you can do arbitrarily sophisticated automation in <a href="http://reference.wolfram.com/language/guide/AutomaticMailProcessing.html">processing email</a>. And particularly for someone like me who gets a <a href="https://writings.stephenwolfram.com/2012/03/the-personal-analytics-of-my-life/">huge amount of email</a> from humans as well as automated systems, this is a pretty nice thing.</p> <p><a name="WolframScript"></a></p> <h2 id="wolframscript">WolframScript</h2> <p>You can access the Wolfram Language through a notebook, on the desktop or in the cloud. You can access it through a <a href="http://reference.wolfram.com/language/ref/ScheduledTask.html">scheduled task</a> in the cloud, or through an <a href="http://reference.wolfram.com/language/ref/APIFunction.html">API</a> or a <a href="http://reference.wolfram.com/language/ref/MailReceiverFunction.html">mail receiver function</a>. It’s always been possible to run the Wolfram Language from a command line too, but in Version 11 there’s a powerful new way to do that, using <a href="http://reference.wolfram.com/language/ref/program/wolframscript.html">WolframScript</a>.</p> <p>The idea of WolframScript is to provide a very simple but flexible interface to the Wolfram Language. WolframScript lets you run on a local <a href="http://www.wolfram.com/engine/">Wolfram Engine</a> on your computer—or just by saying <tt>-cloud</tt> it lets you run in the cloud. It lets you run code from a file or directly from the command line. And it lets you get back results in <a href="http://reference.wolfram.com/language/guide/ListingOfAllFormats.html">any format</a>—including text or images or sounds or PDF or <a href="http://www.wolfram.com/cdf/">CDF</a> or whatever. And in the usual Unix way, it lets you use <tt>#!wolframscript</tt> to create a script that can be called standalone and will run with WolframScript.</p> <p>There’s more too. You can set up WolframScript to operate like a Wolfram Language <tt><a href="http://reference.wolfram.com/language/ref/FormFunction.html">FormFunction</a></tt>—pulling in arguments of whatever types you specify (and doing interpretation when needed). And you can also use WolframScript to call an <a href="http://reference.wolfram.com/language/guide/CreatingAnInstantAPI.html">API</a> you’ve already defined in the cloud.</p> <p>In our own company, there are lots of places where we’re using the Wolfram Language as part of some large and often distributed system. WolframScript provides a very clean way to just “throw in a Wolfram Language component” anywhere you want.</p> <p><a href="https://content.wolfram.com/sites/43/2016/08/wolframscript-wolfram-language.png"><img class="alignnone size-full wp-image-12098" title="WolframScript provides a simple, flexible interface to the Wolfram Language" src="https://content.wolfram.com/sites/43/2016/08/wolframscript-wolfram-language.png" alt="WolframScript provides a simple, flexible interface to the Wolfram Language" width="581" height="147" srcset="https://content.wolfram.com/sites/43/2016/08/wolframscript-wolfram-language.png 581w, https://content.wolfram.com/sites/43/2016/08/wolframscript-wolfram-language-300x75.png 300w" sizes="(max-width: 581px) 100vw, 581px" /></a></p> <p><a name="TheCoreLanguage"></a></p> <h2 id="the-core-language">The Core Language</h2> <p>I’ve talked about all sorts of things that broaden and deepen the algorithmic capabilities of Mathematica and the Wolfram Language. But what about the structure of the <a href="http://reference.wolfram.com/language/guide/CoreLanguageOverview.html">core Wolfram Language</a> itself? Of course, we’re committed to always maintaining compatibility (and I’m happy to say that all our attention to design on an ongoing basis tends to make this rather easy). But we also want to progressively strengthen and polish the language.</p> <p>In natural languages, one process of evolution tends to be the construction of new words from common idioms. And we’re doing essentially the same thing in the Wolfram Language. We’ve made an active effort to study what “lumps of repeated computational work” appear most frequently across lots of Wolfram Language code. Then—assuming we can <a href="https://writings.stephenwolfram.com/2010/10/the-poetry-of-function-naming/">come up with a good name</a> for a particular lump of computational work—we add it as a new function.</p> <p>In the early days of Mathematica I used to take the point of view that if there were functions that let you do something using an idiom, then that was fine. But what I realized is that if an idiom is compressed into a single function whose name communicates clearly what it’s for, then one gets code that’s easier to read. And coupled with the convenience of not have to reconstruct an idiom many times, this justifies having a new function.</p> <p>For the last several years, two initiatives we’d had within our company are Incremental Language Development (ILD), and Language Consistency & Completeness (LCC). The idea of ILD is to do things like introduce functions that are equivalent to common idioms. The idea of LCC is to do things like make sure that anything—like <a href="http://reference.wolfram.com/language/guide/PatternMatchingFunctions.html">pattern matching</a>, or <a href="http://reference.wolfram.com/language/guide/Units.html">units</a>, or <a href="http://reference.wolfram.com/language/ref/URL.html">symbolic URLs</a>—is supported wherever it makes sense across the system.</p> <p>So, for example, a typical ILD addition in Version 11 is the function <a href="http://reference.wolfram.com/language/ref/MinMax.html"><tt>MinMax</tt></a> that returns min and max in a list (it’s amazing how many fiddly applications of <a href="http://reference.wolfram.com/language/ref/Map.html"><tt>Map</tt></a> that saves). A typical LCC addition is support for <a href="http://www.wolfram.com/language/11/core-language/pattern-matching-with-associations.html">pattern matching in associations</a>.</p> <p>Between ILD and LCC there are lots of <a href="http://www.wolfram.com/language/11/core-language/">additions to the core language</a> in Version 11. Functions like <a href="http://reference.wolfram.com/language/ref/Cases.html"><tt>Cases</tt></a> have been extended to <a href="http://reference.wolfram.com/language/ref/SequenceCases.html"><tt>SequenceCases</tt></a>—looking for sequences in a list instead of individual elements. There’s also now <a href="http://reference.wolfram.com/language/ref/SequenceFoldList.html"><tt>SequenceFoldList</tt></a>, which is like <a href="http://reference.wolfram.com/language/ref/FoldList.html"><tt>FoldList</tt></a>, except it can “look back” to a sequence of elements of any length. In a similar vein, there’s <a href="http://reference.wolfram.com/language/ref/FoldPairList.html"><tt>FoldPairList</tt></a>, which generalizes <a href="http://reference.wolfram.com/language/ref/FoldList.html"><tt>FoldList</tt></a> by allowing the result “returned” at each step to be different from the result that’s passed on in the folding process. (This might sound abstract, and at some level it is—but this is a very useful operation whenever one wants to maintain a separate internal state while sequentially ingesting data.)</p> <p>Another new construct that might at first sound weird is <a href="http://reference.wolfram.com/language/ref/Nothing.html"><tt>Nothing</tt></a>. Despite its name, <a href="http://reference.wolfram.com/language/ref/Nothing.html"><tt>Nothing</tt></a> does something very useful: whenever it appears in a list, it’s immediately removed. Which means, for example, that to get rid of something in a list, you just have to replace it by <a href="http://reference.wolfram.com/language/ref/Nothing.html"><tt>Nothing</tt></a>.</p> <p>There are lots of little conveniences we’ve added in Version 11. <a href="http://reference.wolfram.com/language/ref/First.html"><tt>First</tt></a>, for example, now has a second argument, that says what to give if there’s no first element—and avoids having to include an <a href="http://reference.wolfram.com/language/ref/If.html"><tt>If</tt></a> for that case. There’s also a nice general mechanism for things like this: <a href="http://reference.wolfram.com/language/ref/UpTo.html"><tt>UpTo</tt></a>. You can say <tt><a href="http://reference.wolfram.com/language/ref/Take.html">Take</a>[<em>list</em>,<a href="http://reference.wolfram.com/language/ref/UpTo.html">UpTo</a>[4]]</tt> to get up to 4 elements in <em>list</em>, or however many elements there happen to be. <a href="http://reference.wolfram.com/language/ref/UpTo.html"><tt>UpTo</tt></a> is supported in lots of places—and it simplifies lots of code.</p> <p>Another little convenience is <a href="http://reference.wolfram.com/language/ref/Echo.html"><tt>Echo</tt></a>. When you’re trying to tell what’s going on inside a piece of code, you sometimes want to print some intermediate result. <a href="http://reference.wolfram.com/language/ref/Echo.html"><tt>Echo</tt></a> is a function that prints, then returns what it printed—so you can sprinkle it in your code without changing what the code does.</p> <p>It’s hard to believe there are useful basic list operations still to add, but Version 11 has a few. <a href="http://reference.wolfram.com/language/ref/Subdivide.html"><tt>Subdivide</tt></a> is like <a href="http://reference.wolfram.com/language/ref/Range.html"><tt>Range</tt></a> except it subdivides the range into equal parts. <a href="http://reference.wolfram.com/language/ref/TakeLargest.html"><tt>TakeLargest</tt></a> and related functions generalize <a href="http://reference.wolfram.com/language/ref/Max.html"><tt>Max</tt></a> etc. to give not just the largest, but the <em>n</em> largest elements in a list.</p> <p>There’s a function <a href="http://reference.wolfram.com/language/ref/Groupings.html"><tt>Groupings</tt></a>, which I’d been thinking about for years but only now figured out a good design for—and which effectively generates all possible trees formed with certain binary or other combiners (“what numbers can you get by combining a list of 1s in all possible ways with <a href="http://reference.wolfram.com/language/ref/Plus.html"><tt>Plus</tt></a> and <a href="http://reference.wolfram.com/language/ref/Times.html"><tt>Times</tt></a>?”).</p> <p>There are nips and tucks to the language in all sorts of places. Like in <a href="http://reference.wolfram.com/language/ref/Table.html"><tt>Table</tt></a>, for example, where you can say <tt><a href="http://reference.wolfram.com/language/ref/Table.html">Table</a>[<em>x</em>,<em>n</em>]</tt> rather than needing to say <tt><a href="http://reference.wolfram.com/language/ref/Table.html">Table</a>[<em>x</em>,{<em>n</em>}]</tt>. And in general there are lots and lots of things that make the core of Version 11 of the Wolfram Language just a little smoother, nicer and more elegant to use.</p> <p><a name="AndTheresMuchMore"></a></p> <h2 id="and-theres-much-more">And There’s Much More</h2> <p>This has been a long blog post. But I’m not even close to having covered everything that’s new in Version 11. There’s more information on the web. Check out the <a id="new-in-11-link" class="km-track-click" href="http://www.wolfram.com/language/new-in-11/">featured new areas</a>, or the information for existing users or the summary of new features. (See also the list of new features specifically <a href="http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn110.html">from Version 10.4 to 11.0</a>.)</p> <p>But most of all, get into using Version 11! If you want quick (and free) exposure to it, try it in the <a id="wolfram-open-cloud-link" class="km-track-click" href="https://www.open.wolframcloud.com/">Wolfram Open Cloud</a>. Or just start using <a href="http://www.wolfram.com/mathematica">Mathematica 11</a> or Version 11 of any other <a href="http://www.wolfram.com/products">products</a> based on the <a id="wolfram-language-link" class="km-track-click" href="http://www.wolfram.com/language/">Wolfram Language</a>.</p> <p>I’ve been using test versions of Version 11 for some time now—and to me Version 10 already looks and feels very “old fashioned”, lacking those nice new interface features and all the new functionality and little conveniences. I’m really pleased with the way Version 11 has turned out. It’s yet another big step in what’s already been a 30-year journey of Mathematica and the Wolfram Language. And I’m excited to see all the wonderful things that all sorts of people around the world will now be able to do for first time with <a href="http://www.wolfram.com/mathematica/new-in-11/">Mathematica 11</a> and the other <a href="http://www.wolfram.com/language/new-in-11/">Version 11 Wolfram Language</a> products.</p> <hr /> <p><em>To comment, please visit the copy of this post at the <a href="https://blog.wolfram.com/2016/08/08/today-we-launch-version-11/">Wolfram Blog »</a></em></p> </div> <div class="post_foot single"> <div class="category"> <div class="citingsOuterWrapper"> <div class="citingsInnerWrapper"> <button type="button" class="citingsOpenButton"> <span class="citingsOpenButtonText">Cite this as</span> </button> <button type="button" class="citingsCloseButton"> <div class="citingsCloseButtonIcon"></div> </button><span class="citingClosedPlainText citingText wolfram-c2c-wrapper" data-C2C-Inline="Stephen Wolfram (2016), "Today We Launch Version 11!," Stephen Wolfram Writings. writings.stephenwolfram.com/2016/08/today-we-launch-version-11." data-C2C-type="text/plain">Stephen Wolfram (2016), "Today We Launch Version 11!," Stephen Wolfram Writings. writings.stephenwolfram.com/2016/08/today-we-launch-version-11.</span><div class="citing"><div class="citingType">Text</div><div class="citingText wolfram-c2c-wrapper" data-C2C-Inline="Stephen Wolfram (2016), "Today We Launch Version 11!," Stephen Wolfram Writings. writings.stephenwolfram.com/2016/08/today-we-launch-version-11." data-C2C-type="text/plain">Stephen Wolfram (2016), "Today We Launch Version 11!," Stephen Wolfram Writings. writings.stephenwolfram.com/2016/08/today-we-launch-version-11.</div></div><div class="citing"><div class="citingType">CMS</div><div class="citingText wolfram-c2c-wrapper" data-C2C-Inline="Wolfram, Stephen. "Today We Launch Version 11!" Stephen Wolfram Writings. August 8, 2016. writings.stephenwolfram.com/2016/08/today-we-launch-version-11." data-C2C-type="text/plain">Wolfram, Stephen. "Today We Launch Version 11!" Stephen Wolfram Writings. August 8, 2016. writings.stephenwolfram.com/2016/08/today-we-launch-version-11.</div></div><div class="citing"><div class="citingType">APA</div><div class="citingText wolfram-c2c-wrapper" data-C2C-Inline="Wolfram, S. (2016, August 8). Today We Launch Version 11! Stephen Wolfram Writings. writings.stephenwolfram.com/2016/08/today-we-launch-version-11." data-C2C-type="text/plain">Wolfram, S. (2016, August 8). Today We Launch Version 11! Stephen Wolfram Writings. writings.stephenwolfram.com/2016/08/today-we-launch-version-11.</div></div> </div> <div class="citingsShowSpacer"></div></div> <p>Posted in: <a href="https://writings.stephenwolfram.com/category/mathematica/" rel="category tag">Mathematica</a>, <a href="https://writings.stephenwolfram.com/category/new-technology/" rel="category tag">New Technology</a>, <a href="https://writings.stephenwolfram.com/category/wolfram-language/" rel="category tag">Wolfram Language</a></p> </div> </div> <div id="comments_wrapper"> <span id="comments"></span> </div><!-- wrapper --> <script type="text/javascript"> function checkCommentFields() { if($(".socialLoggedIn").is(":visible")) return true; var ret = true; if($("#author").val().trim().length < 2) { $("#nameError").fadeIn(); ret = false; } else { $("#nameError").fadeOut(); } if(!validEmail($("#email").val().trim())) { $("#emailError").fadeIn(); ret = false; } else { $("#emailError").fadeOut(); } if($("#comment").val().trim().length < 5) { $("#commentError").fadeIn(); ret = false; } else { $("#commentError").fadeOut(); } return ret; } $(document).ready(function(){ $('.comment-author a').attr("target", "_blank"); if(window.location.href.indexOf("comment-page-1") > -1) { $('#comment-section').removeClass('hide'); } $("#author").keyup(function() { if($("#nameError").is(":visible") && $("#author").val().trim().length >= 2) $("#nameError").fadeOut(); }); $("#email").keyup(function() { if($("#emailError").is(":visible") && validEmail($("#email").val().trim())) $("#emailError").fadeOut(); }); $("#comment").keyup(function() { if($("#commentError").is(":visible") && $("#comment").val().trim().length >= 5) $("#commentError").fadeOut(); }); }); function validEmail(email) { signPos = email.indexOf("@"); dotPos = email.lastIndexOf("."); if (email.length < 6 || signPos == -1 || dotPos == -1 || (dotPos < signPos) || (dotPos - signPos == 1) || dotPos == email.length-1 ) { return false; } return true; } </script> <div id="footer_recent_posts"> <p class="sidebar-heading">Related Writings</p> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"> <a href="https://writings.stephenwolfram.com/2024/07/yet-more-new-ideas-and-new-functions-launching-version-14-1-of-wolfram-language-mathematica/" rel="bookmark" title="Permanent Link to Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica" > <img width="128" height="108" src="https://content.wolfram.com/sites/43/2024/07/swblog-v14.1-icon.png" class="lazy wp-post-image" alt="" title="" /> </a> </div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2024/07/yet-more-new-ideas-and-new-functions-launching-version-14-1-of-wolfram-language-mathematica/" rel="bookmark" title="Permanent Link to Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica" >Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica</a></p> <p><time datetime="2024-07-31">July 31, 2024</time></p> </div> </div> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"> <a href="https://writings.stephenwolfram.com/2024/01/the-story-continues-announcing-version-14-of-wolfram-language-and-mathematica/" rel="bookmark" title="Permanent Link to The Story Continues: Announcing Version 14 of Wolfram Language and Mathematica" > <img width="128" height="108" src="https://content.wolfram.com/sites/43/2024/01/swblog-v14.0-icon.png" class="lazy wp-post-image" alt="" title="" /> </a> </div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2024/01/the-story-continues-announcing-version-14-of-wolfram-language-and-mathematica/" rel="bookmark" title="Permanent Link to The Story Continues: Announcing Version 14 of Wolfram Language and Mathematica" >The Story Continues: Announcing Version 14 of Wolfram Language and Mathematica</a></p> <p><time datetime="2024-01-09">January 9, 2024</time></p> </div> </div> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"> <a href="https://writings.stephenwolfram.com/2023/10/how-to-think-computationally-about-ai-the-universe-and-everything/" rel="bookmark" title="Permanent Link to How to Think Computationally about AI, the Universe and Everything" > <img width="128" height="108" src="https://content.wolfram.com/sites/43/2023/10/icon-sw-ted-2023.png" class="lazy wp-post-image" alt="" title="" /> </a> </div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2023/10/how-to-think-computationally-about-ai-the-universe-and-everything/" rel="bookmark" title="Permanent Link to How to Think Computationally about AI, the Universe and Everything" >How to Think Computationally about AI, the Universe and Everything</a></p> <p><time datetime="2023-10-27">October 27, 2023</time></p> </div> </div> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"> <a href="https://writings.stephenwolfram.com/2023/09/expression-evaluation-and-fundamental-physics/" rel="bookmark" title="Permanent Link to Expression Evaluation and Fundamental Physics" > <img width="128" height="108" src="https://content.wolfram.com/sites/43/2023/09/multicomp-icon.png" class="lazy wp-post-image" alt="" title="" /> </a> </div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2023/09/expression-evaluation-and-fundamental-physics/" rel="bookmark" title="Permanent Link to Expression Evaluation and Fundamental Physics" >Expression Evaluation and Fundamental Physics</a></p> <p><time datetime="2023-09-29">September 29, 2023</time></p> </div> </div> </div> </article> </div> <div id="sidebar"> <form class="headerSearchBox" method="get" action="https://writings.stephenwolfram.com/" id="search"> <input class="searchboxsub" type="text" value="" name="s" id="query_1" placeholder="Search Writings" /> <input type="submit" class="headerSearchSubmit" value="" title="Search"> </form> <div class="sidebar-pod related-writings"></div> <div class="sidebar-pod recent-writings"> <p class="sidebar-heading">Recent Writings</p> <div class="sidebar-inner"> <div id="postContainer"> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"><a href="https://writings.stephenwolfram.com/2024/10/on-the-nature-of-time/" rel="bookmark" title="Permanent Link to On the Nature of Time" ><img src="https://content.wolfram.com/sites/43/2024/10/swblog-time-icon-v2.png" alt=""></a></div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2024/10/on-the-nature-of-time/" rel="bookmark" title="Permanent Link to On the Nature of Time" >On the Nature of Time</a></p> <p><time datetime="2024-10-08">October 8, 2024</time></p> </div> </div> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"><a href="https://writings.stephenwolfram.com/2024/09/nestedly-recursive-functions/" rel="bookmark" title="Permanent Link to Nestedly Recursive Functions" ><img src="https://content.wolfram.com/sites/43/2024/09/swblog-recursive-icon.png" alt=""></a></div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2024/09/nestedly-recursive-functions/" rel="bookmark" title="Permanent Link to Nestedly Recursive Functions" >Nestedly Recursive Functions</a></p> <p><time datetime="2024-09-27">September 27, 2024</time></p> </div> </div> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"><a href="https://writings.stephenwolfram.com/2024/08/five-most-productive-years-what-happened-and-whats-next/" rel="bookmark" title="Permanent Link to Five Most Productive Years: What Happened and What’s Next" ><img src="https://content.wolfram.com/sites/43/2024/08/swblog-5years-icon.png" alt=""></a></div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2024/08/five-most-productive-years-what-happened-and-whats-next/" rel="bookmark" title="Permanent Link to Five Most Productive Years: What Happened and What’s Next" >Five Most Productive Years: What Happened and What’s Next</a></p> <p><time datetime="2024-08-29">August 29, 2024</time></p> </div> </div> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"><a href="https://writings.stephenwolfram.com/2024/08/whats-really-going-on-in-machine-learning-some-minimal-models/" rel="bookmark" title="Permanent Link to What’s Really Going On in Machine Learning? Some Minimal Models" ><img src="https://content.wolfram.com/sites/43/2024/08/swblog-ml-icon-v2.png" alt=""></a></div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2024/08/whats-really-going-on-in-machine-learning-some-minimal-models/" rel="bookmark" title="Permanent Link to What’s Really Going On in Machine Learning? Some Minimal Models" >What’s Really Going On in Machine Learning? Some Minimal Models</a></p> <p><time datetime="2024-08-22">August 22, 2024</time></p> </div> </div> <div class="sidebar_post_wrapper"> <div class="sidebar_thumbnail"><a href="https://writings.stephenwolfram.com/2024/07/yet-more-new-ideas-and-new-functions-launching-version-14-1-of-wolfram-language-mathematica/" rel="bookmark" title="Permanent Link to Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica" ><img src="https://content.wolfram.com/sites/43/2024/07/swblog-v14.1-icon.png" alt=""></a></div> <div class="sidebar_post"> <p><a href="https://writings.stephenwolfram.com/2024/07/yet-more-new-ideas-and-new-functions-launching-version-14-1-of-wolfram-language-mathematica/" rel="bookmark" title="Permanent Link to Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica" >Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica</a></p> <p><time datetime="2024-07-31">July 31, 2024</time></p> </div> </div> </div> </div> <a href="/all-by-date" class="all-by-date chevron-after">All by date</a> </div> <div class="sidebar-pod popular-categories"> <p class="sidebar-heading">Popular Categories</p> <div class="categories-list-row sidebar-inner"> <ul class="categories-list"> <li><a href="/category/artificial-intelligence">Artificial Intelligence</a></li><li><a href="/category/big-picture">Big Picture</a></li><li><a href="/category/companies-and-business">Companies & Business</a></li><li><a href="/category/computational-science">Computational Science</a></li><li><a href="/category/computational-thinking">Computational Thinking</a></li><li><a href="/category/data-science">Data Science</a></li><li><a href="/category/education">Education</a></li><li><a href="/category/future-perspectives">Future Perspectives</a></li><li><a href="/category/historical-perspectives">Historical Perspectives</a></li><li><a href="/category/language-and-communication">Language & Communication</a></li><li><a href="/category/life-and-times">Life & Times</a></li><li><a href="/category/life-science">Life Science</a></li><li><a href="/category/mathematica">Mathematica</a></li><li><a href="/category/mathematics">Mathematics</a></li><li><a href="/category/new-kind-of-science">New Kind of Science</a></li><li><a href="/category/new-technology">New Technology</a></li><li><a href="/category/personal-analytics">Personal Analytics</a></li><li><a href="/category/philosophy">Philosophy</a></li><li><a href="/category/physics">Physics</a></li><li><a href="/category/ruliology">Ruliology</a></li><li><a href="/category/software-design">Software Design</a></li><li><a href="/category/wolfram-alpha">Wolfram|Alpha</a></li><li><a href="/category/wolfram-language">Wolfram Language</a></li><li><a href="/category/other">Other</a></li> </ul> </div> </div> <div class="sidebar-pod writings-by-year"> <p class="sidebar-heading">Writings by Year</p> <div class="sidebar-archive sidebar-inner"> <ul> <li><a href="/all-by-date/#2024">2024</a></li><li><a href="/all-by-date/#2023">2023</a></li><li><a href="/all-by-date/#2022">2022</a></li><li><a href="/all-by-date/#2021">2021</a></li><li><a href="/all-by-date/#2020">2020</a></li><li><a href="/all-by-date/#2019">2019</a></li><li><a href="/all-by-date/#2018">2018</a></li><li><a href="/all-by-date/#2017">2017</a></li><li><a href="/all-by-date/#2016">2016</a></li><li><a href="/all-by-date/#2015">2015</a></li><li><a href="/all-by-date/#2014">2014</a></li><li><a href="/all-by-date/#2013">2013</a></li><li><a href="/all-by-date/#2012">2012</a></li><li><a href="/all-by-date/#2011">2011</a></li><li><a href="/all-by-date/#2010">2010</a></li><li><a href="/all-by-date/#2009">2009</a></li><li><a href="/all-by-date/#2008">2008</a></li><li><a href="/all-by-date/#2007">2007</a></li><li><a href="/all-by-date/#2006">2006</a></li><li><a href="/all-by-date/#2004">2004</a></li><li><a href="/all-by-date/#2003">2003</a></li> <li><a href="/all-by-date/">All</a></li> </ul> </div> </div> <span id="side-images"> <a href="https://www.amazon.com/Project-Find-Fundamental-Theory-Physics/dp/1579550355"><img src="https://content.wolfram.com/sites/43/2022/06/book-physics-1.png" width="254" height="" alt=""/></a> </span> </div> </div><!-- end of "inner" --> <footer id="footer"> <div class="inner"> © Stephen Wolfram, LLC <span class="footer-sep">|</span> Open content: <a href="//creativecommons.org/licenses/by-sa/4.0/" target="_blank"> <svg id="icon-cc-by-sa" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 110 32"> <g transform="translate(76 0)"> <path d="M15.7,0.9c4.2,0,7.7,1.5,10.7,4.4c2.9,2.9,4.4,6.4,4.4,10.6c0,4.2-1.4,7.7-4.3,10.6c-3,3-6.6,4.4-10.7,4.4 c-4.1,0-7.6-1.5-10.6-4.4C2.2,23.5,0.7,20,0.7,15.9c0-4.1,1.5-7.6,4.4-10.6C8.1,2.3,11.6,0.9,15.7,0.9z M15.8,3.6 c-3.4,0-6.3,1.2-8.7,3.6c-2.4,2.5-3.7,5.4-3.7,8.7c0,3.3,1.2,6.2,3.6,8.6c2.4,2.4,5.3,3.6,8.7,3.6c3.3,0,6.2-1.2,8.7-3.7 c2.4-2.3,3.5-5.2,3.5-8.6c0-3.4-1.2-6.3-3.6-8.7C22.1,4.8,19.2,3.6,15.8,3.6z M9.1,13.8c0.3-1.8,1-3.3,2.2-4.3 c1.2-1,2.7-1.5,4.4-1.5c2.4,0,4.2,0.8,5.6,2.3s2.1,3.5,2.1,5.8c0,2.3-0.7,4.2-2.2,5.7c-1.4,1.5-3.3,2.3-5.6,2.3 c-1.7,0-3.2-0.5-4.4-1.5c-1.2-1-2-2.5-2.2-4.3h3.8c0.1,1.8,1.2,2.7,3.3,2.7c1.1,0,1.9-0.5,2.5-1.4c0.6-0.9,1-2.1,1-3.6 c0-1.6-0.3-2.8-0.9-3.6c-0.6-0.8-1.4-1.2-2.5-1.2c-2,0-3.1,0.9-3.4,2.7h1.1l-3,3l-3-3L9.1,13.8L9.1,13.8z" fill="currentColor"></path> </g> <g transform="translate(5 0)"> <path d="M59.4,5.2c-2.9-2.9-6.4-4.3-10.7-4.3c-4.1,0-7.7,1.4-10.6,4.3c-2.9,3-4.4,6.6-4.4,10.7s1.5,7.6,4.4,10.6 c3,2.9,6.5,4.4,10.6,4.4c4.1,0,7.7-1.5,10.7-4.5c2.9-2.8,4.3-6.3,4.3-10.5C63.7,11.7,62.3,8.1,59.4,5.2z M57.5,24.5 c-2.5,2.4-5.4,3.7-8.7,3.7c-3.4,0-6.2-1.2-8.7-3.6c-2.4-2.4-3.6-5.3-3.6-8.6c0-3.3,1.2-6.2,3.7-8.7c2.4-2.4,5.2-3.6,8.7-3.6 c3.4,0,6.3,1.2,8.7,3.6c2.4,2.4,3.6,5.3,3.6,8.7C61.1,19.3,59.9,22.2,57.5,24.5z" fill="currentColor"></path> <path d="M46.7,8.3c0-1.4,0.7-2.1,2.1-2.1s2.1,0.7,2.1,2.1c0,1.4-0.7,2.1-2.1,2.1C47.3,10.4,46.7,9.7,46.7,8.3z" fill="currentColor"></path> <path d="M52.8,18.3h-1.7v7.3h-4.7v-7.3h-1.7c0,0,0-4.1,0-6.1c0-0.6,0.4-1,1-1c2,0,4,0,6,0c0.6,0,1,0.4,1,1 C52.8,14.2,52.8,18.3,52.8,18.3z" fill="currentColor"></path> </g> <g id="cc-logo"> <path d="M15.7,0.9c4.2,0,7.8,1.5,10.7,4.4c1.4,1.4,2.5,3,3.2,4.8c0.7,1.8,1.1,3.7,1.1,5.8c0,2.1-0.4,4-1.1,5.8 c-0.7,1.8-1.8,3.4-3.2,4.8c-1.4,1.4-3.1,2.6-5,3.3c-1.8,0.8-3.8,1.2-5.8,1.2c-2,0-3.9-0.4-5.7-1.1c-1.8-0.8-3.5-1.9-4.9-3.3 c-1.4-1.4-2.5-3.1-3.3-4.9c-0.8-1.8-1.1-3.7-1.1-5.7c0-2,0.4-3.9,1.1-5.7c0.8-1.8,1.9-3.5,3.3-4.9C8,2.3,11.6,0.9,15.7,0.9z M15.8,3.6c-3.4,0-6.3,1.2-8.7,3.6C6,8.3,5,9.7,4.4,11.2c-0.6,1.5-1,3.1-0.9,4.7c0,1.6,0.3,3.2,0.9,4.6C5,22,6,23.4,7.1,24.5 c1.1,1.1,2.5,2.1,4,2.7c1.5,0.6,3,0.9,4.7,0.9c1.6,0,3.2-0.3,4.7-0.9c1.5-0.6,2.9-1.6,4.1-2.7c2.3-2.3,3.5-5.2,3.5-8.6 c0-1.7-0.3-3.2-0.9-4.7c-0.6-1.5-1.5-2.8-2.7-4C22.1,4.8,19.2,3.6,15.8,3.6z M15.6,13.4l-2,1c-0.2-0.4-0.5-0.8-0.8-0.9 c-0.3-0.2-0.6-0.3-0.9-0.3c-1.3,0-2,0.9-2,2.7c0,0.8,0.2,1.4,0.5,1.9c0.3,0.5,0.8,0.7,1.5,0.7c0.9,0,1.5-0.4,1.9-1.3l1.8,0.9 c-0.4,0.7-0.9,1.3-1.6,1.7c-0.7,0.4-1.5,0.6-2.3,0.6c-1.3,0-2.4-0.4-3.2-1.2c-0.8-0.8-1.2-2-1.2-3.4c0-1.4,0.4-2.6,1.2-3.4 c0.8-0.8,1.9-1.3,3.1-1.3C13.4,11.2,14.8,11.9,15.6,13.4L15.6,13.4z M24.2,13.4l-2,1c-0.2-0.4-0.5-0.8-0.8-0.9 c-0.3-0.2-0.6-0.3-0.9-0.3c-1.3,0-2,0.9-2,2.7c0,0.8,0.2,1.4,0.5,1.9c0.3,0.5,0.8,0.7,1.5,0.7c0.9,0,1.5-0.4,1.8-1.3l1.9,0.9 c-0.4,0.7-1,1.3-1.7,1.7c-0.7,0.4-1.5,0.6-2.3,0.6c-1.4,0-2.4-0.4-3.3-1.2c-0.8-0.8-1.2-2-1.2-3.4c0-1.4,0.4-2.6,1.2-3.4 c0.8-0.8,1.9-1.3,3.1-1.3C22.1,11.2,23.4,11.9,24.2,13.4L24.2,13.4z" fill="currentColor"></path> </g> </svg> </a> (code: <a href="//creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank"> <svg id="icon-cc-by-nc-sa" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 146 32"> <g transform="translate(5 0)"> <path d="M59.4,5.2C56.5,2.3,53,0.9,48.7,0.9c-4.1,0-7.7,1.4-10.6,4.3c-2.9,3-4.4,6.6-4.4,10.7s1.5,7.6,4.4,10.6 c3,2.9,6.5,4.4,10.6,4.4s7.7-1.5,10.7-4.5c2.9-2.8,4.3-6.3,4.3-10.5C63.7,11.7,62.3,8.1,59.4,5.2z M57.5,24.5 c-2.5,2.4-5.4,3.7-8.7,3.7c-3.4,0-6.2-1.2-8.7-3.6c-2.4-2.4-3.6-5.3-3.6-8.6s1.2-6.2,3.7-8.7c2.4-2.4,5.2-3.6,8.7-3.6 c3.4,0,6.3,1.2,8.7,3.6s3.6,5.3,3.6,8.7C61.1,19.3,59.9,22.2,57.5,24.5z" fill="currentColor"></path> <path d="M46.7,8.3c0-1.4,0.7-2.1,2.1-2.1s2.1,0.7,2.1,2.1s-0.7,2.1-2.1,2.1C47.3,10.4,46.7,9.7,46.7,8.3z" fill="currentColor"></path> <path d="M52.8,18.3h-1.7v7.3h-4.7v-7.3h-1.7c0,0,0-4.1,0-6.1c0-0.6,0.4-1,1-1c2,0,4,0,6,0c0.6,0,1,0.4,1,1 C52.8,14.2,52.8,18.3,52.8,18.3z" fill="currentColor"></path> </g> <g transform="translate(76 0)"> <path d="M53.9,0.9c4.2,0,7.7,1.5,10.7,4.4c2.9,2.9,4.4,6.4,4.4,10.6s-1.4,7.7-4.3,10.6c-3,3-6.6,4.4-10.7,4.4s-7.6-1.5-10.6-4.4 c-3-3-4.5-6.5-4.5-10.6s1.5-7.6,4.4-10.6C46.3,2.3,49.8,0.9,53.9,0.9z M54,3.6c-3.4,0-6.3,1.2-8.7,3.6c-2.4,2.5-3.7,5.4-3.7,8.7 s1.2,6.2,3.6,8.6c2.4,2.4,5.3,3.6,8.7,3.6c3.3,0,6.2-1.2,8.7-3.7c2.4-2.3,3.5-5.2,3.5-8.6s-1.2-6.3-3.6-8.7 C60.3,4.8,57.4,3.6,54,3.6z M47.3,13.8c0.3-1.8,1-3.3,2.2-4.3S52.2,8,53.9,8c2.4,0,4.2,0.8,5.6,2.3c1.4,1.5,2.1,3.5,2.1,5.8 s-0.7,4.2-2.2,5.7c-1.4,1.5-3.3,2.3-5.6,2.3c-1.7,0-3.2-0.5-4.4-1.5c-1.2-1-2-2.5-2.2-4.3H51c0.1,1.8,1.2,2.7,3.3,2.7 c1.1,0,1.9-0.5,2.5-1.4c0.6-0.9,1-2.1,1-3.6c0-1.6-0.3-2.8-0.9-3.6c-0.6-0.8-1.4-1.2-2.5-1.2c-2,0-3.1,0.9-3.4,2.7h1.1l-3,3l-3-3 L47.3,13.8L47.3,13.8z" fill="currentColor"></path> </g> <g id="cc-logo"> <path d="M15.7,0.9c4.2,0,7.8,1.5,10.7,4.4c1.4,1.4,2.5,3,3.2,4.8s1.1,3.7,1.1,5.8s-0.4,4-1.1,5.8s-1.8,3.4-3.2,4.8 c-1.4,1.4-3.1,2.6-5,3.3c-1.8,0.8-3.8,1.2-5.8,1.2s-3.9-0.4-5.7-1.1C8.1,29.1,6.4,28,5,26.6s-2.5-3.1-3.3-4.9S0.6,18,0.6,16 s0.4-3.9,1.1-5.7C2.5,8.5,3.6,6.8,5,5.4C8,2.3,11.6,0.9,15.7,0.9z M15.8,3.6c-3.4,0-6.3,1.2-8.7,3.6C6,8.3,5,9.7,4.4,11.2 s-1,3.1-0.9,4.7c0,1.6,0.3,3.2,0.9,4.6C5,22,6,23.4,7.1,24.5s2.5,2.1,4,2.7s3,0.9,4.7,0.9c1.6,0,3.2-0.3,4.7-0.9s2.9-1.6,4.1-2.7 c2.3-2.3,3.5-5.2,3.5-8.6c0-1.7-0.3-3.2-0.9-4.7s-1.5-2.8-2.7-4C22.1,4.8,19.2,3.6,15.8,3.6z M15.6,13.4l-2,1 c-0.2-0.4-0.5-0.8-0.8-0.9c-0.3-0.2-0.6-0.3-0.9-0.3c-1.3,0-2,0.9-2,2.7c0,0.8,0.2,1.4,0.5,1.9s0.8,0.7,1.5,0.7 c0.9,0,1.5-0.4,1.9-1.3l1.8,0.9c-0.4,0.7-0.9,1.3-1.6,1.7c-0.7,0.4-1.5,0.6-2.3,0.6c-1.3,0-2.4-0.4-3.2-1.2c-0.8-0.8-1.2-2-1.2-3.4 s0.4-2.6,1.2-3.4c0.8-0.8,1.9-1.3,3.1-1.3C13.4,11.2,14.8,11.9,15.6,13.4L15.6,13.4z M24.2,13.4l-2,1c-0.2-0.4-0.5-0.8-0.8-0.9 c-0.3-0.2-0.6-0.3-0.9-0.3c-1.3,0-2,0.9-2,2.7c0,0.8,0.2,1.4,0.5,1.9s0.8,0.7,1.5,0.7c0.9,0,1.5-0.4,1.8-1.3l1.9,0.9 c-0.4,0.7-1,1.3-1.7,1.7c-0.7,0.4-1.5,0.6-2.3,0.6c-1.4,0-2.4-0.4-3.3-1.2c-0.8-0.8-1.2-2-1.2-3.4s0.4-2.6,1.2-3.4 c0.8-0.8,1.9-1.3,3.1-1.3C22.1,11.2,23.4,11.9,24.2,13.4L24.2,13.4z" fill="currentColor"></path> </g> <g id="cc-nc"> <path d="M91.7,1c4.2,0,7.8,1.4,10.7,4.3c2.9,2.9,4.4,6.4,4.4,10.7c0,4.2-1.4,7.7-4.3,10.5c-3,3-6.6,4.5-10.7,4.5 c-4.1,0-7.6-1.5-10.6-4.4c-2.9-2.9-4.4-6.5-4.4-10.6c0-4.1,1.5-7.7,4.4-10.7C84.1,2.5,87.6,1,91.7,1z M80.1,12 c-0.4,1.2-0.7,2.6-0.7,4c0,3.3,1.2,6.2,3.6,8.6c2.4,2.4,5.3,3.6,8.7,3.6c3.4,0,6.3-1.2,8.7-3.7c0.9-0.8,1.6-1.7,2.1-2.6l-5.7-2.5 c-0.2,0.9-0.7,1.7-1.4,2.3c-0.8,0.6-1.7,0.9-2.7,1v2.3h-1.7v-2.3c-1.7,0-3.2-0.6-4.6-1.8l2.1-2.1c1,0.9,2.1,1.4,3.3,1.4 c0.5,0,1-0.1,1.3-0.3c0.4-0.2,0.5-0.6,0.5-1.2c0-0.4-0.1-0.7-0.4-0.9l-1.4-0.6l-1.8-0.8l-2.4-1C87.8,15.4,80.1,12,80.1,12z M91.8,3.7c-3.4,0-6.3,1.2-8.7,3.6c-0.6,0.6-1.1,1.3-1.7,2l5.7,2.6c0.2-0.8,0.7-1.4,1.4-1.9c0.7-0.5,1.5-0.7,2.4-0.8V6.9h1.7v2.3 c1.4,0.1,2.6,0.5,3.8,1.4l-2,2c-0.8-0.6-1.7-0.9-2.6-0.9c-0.5,0-0.9,0.1-1.2,0.3c-0.4,0.2-0.6,0.5-0.6,0.9c0,0.1,0,0.2,0.1,0.4 l1.9,0.9l1.3,0.6l2.4,1.1l7.7,3.4c0.2-1.1,0.4-2.1,0.4-3.2c0-3.4-1.2-6.3-3.6-8.7C98.1,4.9,95.2,3.7,91.8,3.7L91.8,3.7z" fill="currentColor"></path> </g> </svg> </a>) <a href="//en.wikipedia.org/wiki/Wikipedia:Citing_sources" target="_blank"> <svg id="icon-wiki" xmlns="http://www.w3.org/2000/svg" viewBox="101 0 44 32"> <g transform="translate(0 0)"> <path id="wikipedia" d="M129.6,4.5l0.3,0h0.5l0.2,0h0.4l0.2,0l0.5,0h0.2l0.1,0.1v0.7c0,0.2-0.1,0.3-0.3,0.3c-1.1,0-1.3,0.2-1.7,0.7 c-0.2,0.3-0.6,1-1.1,1.7l-3.7,7l-0.1,0.2l4.6,9.4l0.3,0.1l7.2-17.1c0.3-0.7,0.2-1.2-0.1-1.5c-0.3-0.3-0.6-0.4-1.4-0.5l-0.7,0 c-0.1,0-0.2,0-0.2-0.1c-0.1,0-0.1-0.1-0.1-0.2V4.6l0.1-0.1h8.1l0.1,0.1v0.7c0,0.2-0.1,0.3-0.3,0.3c-1.1,0-1.9,0.3-2.4,0.7 c-0.5,0.4-0.9,1-1.2,1.7c0,0-2.2,5-4.4,10.1l-0.4,0.9c-1.6,3.6-3.2,7.2-4.1,9.2c-0.9,1.7-1.7,1.5-2.5,0c-0.6-1.2-1.6-3.3-2.5-5.5 l-0.7-1.4c-0.4-0.8-0.8-1.7-1.1-2.4c-1.5,3.2-3.6,7.4-4.7,9.4c-1,1.8-1.8,1.5-2.5,0c-2.3-5.4-7-15-9.3-20.3c-0.4-1-0.7-1.6-1-1.9 c-0.3-0.2-0.9-0.4-1.8-0.4c-0.3,0-0.5-0.1-0.5-0.3V4.6l0.1-0.1l0.8,0h1.4l1.4,0h0.4l2.5,0h0.3l1.3,0h0.8l0.1,0.1v0.7 c0,0.2-0.1,0.3-0.4,0.3l-0.9,0c-0.8,0-1.2,0.3-1.2,0.7c0,0.2,0.1,0.5,0.3,1c1.8,4.3,7.9,17.3,7.9,17.2l0.2,0.1l3.9-7.9 c-0.5-1.1-0.8-1.7-0.8-1.7L119,9.6c0,0-0.5-1.1-0.7-1.4c-1.2-2.4-1.2-2.5-2.4-2.6c-0.3,0-0.5-0.1-0.5-0.3V4.6l0.1-0.1h1l2.1,0h3.9 l0.2,0.1v0.7c0,0.2-0.1,0.3-0.4,0.3l-0.5,0.1c-1.3,0.1-1.1,0.6-0.2,2.3l2.6,5.3l2.9-5.7c0.5-1,0.4-1.3,0.2-1.5l0,0 c-0.1-0.1-0.5-0.4-1.3-0.4l-0.3,0c-0.1,0-0.2,0-0.2-0.1c-0.1,0-0.1-0.1-0.1-0.2V4.6l0.1-0.1l1.2,0H129.6z" fill="currentColor"></path> </g> </svg> </a> <span class="footer-sep">|</span> <a href="/terms" target="_blank">Terms</a> <span class="footer-sep">|</span> <a href="/feed/" target="_blank">RSS</a> </div> </footer></div><!-- end of "outerWrap" --> <script type='text/javascript' src='https://writings.stephenwolfram.com/wp-includes/js/comment-reply.min.js?ver=4.7.2'></script> <script type='text/javascript' src='https://writings.stephenwolfram.com/wp-includes/js/wp-embed.min.js?ver=4.7.2'></script> <!--noscript.en.html--> <style> #_noscript, #_noscript * { box-sizing: border-box; margin: 0; outline: 0; padding: 0; z-index: 99999999999; } #_noscript { background: #fff6aa; border-bottom: 1px solid #eeca48; bottom: 0; color: #4c4c4c; display: block; font-size: .875rem; font-style: italic; left: 0; min-width: 320px; position: fixed; right: 0; width: 100%; z-index: 99999998 !important; /* place it beneath the global header */ } #_noscript > div { align-items: center; display: grid; gap: .5rem; grid-template-columns: 28px auto; height: 40px; justify-content: center; margin: 0 1rem; } #_noscript svg { display: inline-block; height: 25px; vertical-align: middle; width: 28px; } #_noscript a { color: #222; font-style: normal; text-decoration: none; } #_noscript a:hover { color: #ef621a; } </style> <noscript id="_noscript" class="gl-noscript-standalone remove__ready"> <div> <div><svg class="_noscript-warning"><use href="#_noscript-warning"></use></svg></div> <div>Enable JavaScript to interact with content and submit forms on Wolfram websites. <a href="http://www.enable-javascript.com/" target="_blank" data-walid="GUIFooter">Learn how »</a></div> </div> </noscript> <div style="height: 0; width: 0; position: absolute; visibility: hidden; top: -999999999999px;"> <svg xmlns="http://www.w3.org/2000/svg"> <g id="_noscript-icons"> <symbol id="_noscript-warning" viewBox="0 0 28.21 25"> <path d="M27.91,21.7L16.01,1.1c-.84-1.47-2.96-1.47-3.81,0L.3,21.7c-.85,1.47,.21,3.3,1.9,3.3H26c1.69,0,2.75-1.83,1.91-3.3ZM15.75,7.44l-.46,9.42h-2.37l-.48-9.42h3.31Zm-1.65,14.25c-1.12,0-1.87-.81-1.87-1.89s.77-1.89,1.87-1.89,1.83,.79,1.85,1.89c0,1.08-.73,1.89-1.85,1.89Z" fill="#f47821"/> <polygon points="15.77 7.47 15.31 16.89 12.94 16.89 12.46 7.47 15.77 7.47" fill="#fff"/> <path d="M14.1,21.69c-1.12,0-1.87-.81-1.87-1.89s.77-1.89,1.87-1.89,1.83,.79,1.85,1.89c0,1.08-.73,1.89-1.85,1.89Z" fill="#fff"/> </symbol> </g> </svg> </div> <!--/noscript.en.html--> <script>var baselang = '';</script> <script src="https://writings.stephenwolfram.com/wp-content/themes/sw-writings/clipboard.js"></script> <script src="/common/js/clipboard/2.0/clipboard.js"></script> <script src="/common/js/c2c/1.0/WolframC2C.js"></script> <script src="/common/js/c2c/1.0/WolframC2CGui.js"></script> <script src="/common/js/c2c/1.0/WolframC2CDefault.js"></script> <link rel="stylesheet" href="/common/js/c2c/1.0/WolframC2CGui.css.en"> <script> let c2cWrittings = new WolframC2CDefault({'triggerClass':'writtings-c2c_above', 'uniqueIdPrefix': 'writtings-c2c_above-'}); </script><script type="text/javascript"> if ( location.hash!="" && Number.isInteger( Number( location.hash.substring(1) ) ) ) { var jumplink = Number( location.hash.substring(1) ) - 1; document.getElementsByClassName('InCell')[jumplink].scrollIntoView(true); } </script> <!-- begin framework footer en --> <div id ="IPstripe-wrap"></div> <script src="/common/stripe/stripe.en.js"></script> <!-- end framework footer en --> </body> </html>