December 6, 2012 — Stephen Wolfram

There aren’t very many qualitatively different types of computer interfaces in use in the world today. But with the release of *Mathematica* 9 I think we have the first truly practical example of a new kind—the computed predictive interface.

If one’s dealing with a system that has a small fixed set of possible actions or inputs, one can typically build an interface out of elements like menus or forms. But if one has a more open-ended system, one typically has to define some kind of language. Usually this will be basically textual (as it is for the most part for *Mathematica*); sometimes it may be visual (as for Wolfram *SystemModeler*).

The challenge is then to make the language broad and powerful, while keeping it as easy as possible for humans to write and understand. And as a committed computer language designer for the past 30+ years, I have devoted an immense amount of effort to this.

But with Wolfram|Alpha I had a different idea. Don’t try to define the best possible artificial computer language, that humans then have to learn. Instead, use natural language, just like humans do among themselves, and then have the computer do its best to understand this. At first, it was not at all clear that such an approach was going to work. But one of the big things we’ve learned from Wolfram|Alpha is with enough effort (and enough built-in knowledge), it can. And indeed two years ago in *Mathematica* 8 we used what we’d done with Wolfram|Alpha to add to *Mathematica* the capability of taking free-form natural language input, and automatically generating from it precise *Mathematica* language code.

But let’s say one’s just got some output from *Mathematica*. What should one do next? One may know the appropriate *Mathematica* language input to give. Or at least one may be able to express what one wants to do in free-form natural language. But in both cases there’s a kind of creative act required: starting from nothing one has figure out what to say.

So can we make this easier? The answer, I think, is yes. And that’s what we’ve now done with the Predictive Interface in *Mathematica* 9.

The concept of the Predictive Interface is to take what you’ve done so far, and from it predict a few possibilities for what you’re likely to want to do next.

December 5, 2012 — Wolfram Blog Team

Curious about *Mathematica* 9? You can see it in action in three free online events. Our experts will introduce you to new features in usability, computation, data manipulation, and visualization. Live Q&A sessions during each event will give you a chance to ask questions.

Topics covered:

**Predictive Interface and Units: December 10, 1–2pm EST**

Get a look at the new interface paradigm and systemwide units support. Our experts will demonstrate the next-computation Suggestions Bar, context-sensitive Input Assistant, and units features, from unit conversion to dimensional analysis.**Social Networks and Data Science: December 12, 1–2:30pm EST**

Learn about*Mathematica*9′s new social network analysis capabilities with built-in access to social media data, plus other graphs and networks enhancements and new computational features in data science, such as reliability, survival analysis, and random processes.**Data Manipulation and Visualization: December 14, 1–2:30pm EST**

Get the scoop on new features for image and signal processing, interactive gauges, legends for plots and charts, and integrating with R directly from our experts.

November 28, 2012 — Stephen Wolfram

I’m excited to be able to announce that today we’re releasing *Mathematica* 9—and it’s big! A whole array of new ideas and new application areas… and major advances along a great many algorithmic frontiers.

Next year *Mathematica* will be 25 years old (and all sorts of festivities are planned!). And in that quarter century we’ve just been building and building. The core principles that we began with have been validated over and over again. And with them we’ve created a larger and larger stack of technology, that allows us to do more and more, and reach further and further.

From the beginning, our goal has been an ambitious one: to cover and automate every area of computational and algorithmic work. Having built the foundations of the *Mathematica* language, we started a quarter century ago attacking core areas of mathematics. And over the years since then, we have been expanding outward at an ever-increasing pace, conquering one area after another.

As with Wolfram|Alpha, we’ll never be finished. But as the years go by, the scope of what we’ve done becomes more and more immense. And with *Mathematica* 9 today we are taking yet another huge step.

So what’s new in *Mathematica* 9? Lots and lots of important things. An amazing range—something for almost everyone. And actually just the very size of it already represents an important challenge. Because as *Mathematica* grows bigger and bigger, it becomes more and more difficult for one to grasp everything that’s in it.

November 14, 2012 — Jon McLoone, International Business & Strategic Development

*Update: See our latest post on How the Wolfram Language Measures Up.*

I stumbled upon a nice project called Rosetta Code. Their stated aim is “to present solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another.”

After amusing myself by contributing a few solutions (Flood filling, Mean angle, and Sum digits of an integer being some of mine), I realized that the data hidden in the site provided an opportunity to quantify a claim that I have often made over the years—that *Mathematica* code tends to be shorter than equivalent code in other languages. This is due to both its high-level nature and built-in computational knowledge.

Here is what I found.

*Mathematica* code is typically less than a third of the length of the same tasks written in other languages, and often much better.

November 1, 2012 — Wolfram Blog Team

For Daniel Zicha, head of Light Microscopy at Cancer Research UK, *Mathematica* is the ultimate tool for biomedical research because it’s “quick to develop and then quick to test and visualize the results conveniently and interactively.”

Zicha uses *Mathematica* in the development of light microscopy techniques as well as in collaborative research in applications of image processing and analysis methods.

Within his collaborative research work in the area of metastasis, Zicha’s use of *Mathematica* to visualize and qualitatively analyze cell morphology led to the discovery of a novel metastasis suppressor. In this video, he describes *Mathematica*‘s role in the project and the advantages of having one environment for rapid prototyping, qualitative analysis, and interactive visualization.

August 10, 2012 — Wolfram Blog Team

At the last two annual Wolfram Technology Conferences, attendees have enjoyed amazing, and being amazed by, each other in the One-Liner Competition, which challenges participants to show us the most astounding things they can do with 140 characters or less of *Mathematica* code. And each time we have been surprised, inspired, and gratified by their creativity.

Now we’ve opened up the competition to you, and *Mathematica* users from around the world are sending us their submissions. In a *Mathematica* Experts Live broadcast on August 21, we’ll reveal the winner and runners-up of the competition, show you what they did, and explain how they did it. You’ll see applications you probably never thought possible, learn new *Mathematica* tricks and techniques, and have your socks blown off by elegant programming wizardry.

July 17, 2012 — Wolfram Blog Team

It’s back! The only event in which *Mathematica* experts are live on camera to answer your questions: *Mathematica* Experts Live.

The first *Mathematica* Experts Live virtual event was such a popular success that we’re doing it again. Thank you for your feedback and suggestions. Many of you asked for help with dynamic interfaces, so this time *Mathematica* experts will answer questions about interactivity. We’ll be ready to answer questions similar to:

- How do you add a constraint to a
`Dynamic`? - My
`Dynamic`is slow. How can I make it faster? - What is the difference between
`Module`and`DynamicModule`? - How do you change the visual appearance of a button?
- How can I make custom controls?

Although the format is the same as before, this event will be 30 minutes longer. Our host will accept questions in real time and pass them to three of our user interface experts. You can also submit your question when you register for the event.

July 11, 2012 — Wolfram Blog Team

As a PhD candidate in civil engineering, Diego Oviedo-Salcedo needed a computational environment that he could use to not only explore the abstract concepts within his civil engineering research, but also to present and communicate his findings to his advisor, peers, and decision-makers. His solution: *Mathematica*.

*Mathematica*‘s enhanced built-in statistical analysis capabilities allow Oviedo-Salcedo to instantly test different ideas and methods related to assessing the impact of uncertain physical and hydrological sources on river and aquifer interactions.

In addition, *Mathematica*‘s easy-to-author interactivity helps him communicate his results with dynamic models—a feature that’s proven to be eye-opening within his department.

May 7, 2012 — Wolfram Blog Team

It’s been one year since we launched our Twitter feed for bite-sized *Mathematica* hints and tips!

Thousands of people follow @MathematicaTip to get a new tip every day, Monday through Friday, covering everything from keyboard shortcuts:

Instead of using % to refer to the most recent output, try Ctrl+Shift+L (Mac: Cmd+Shift+L) to directly insert the output from above.

— MathematicaTip (@MathematicaTip) October 10, 2011

December 7, 2011 — Jon McLoone, International Business & Strategic Development

When people tell me that *Mathematica* isn’t fast enough, I usually ask to see the offending code and often find that the problem isn’t a lack in *Mathematica*‘s performance, but sub-optimal use of *Mathematica*. I thought I would share the list of things that I look for first when trying to optimize *Mathematica* code.

**1. Use floating-point numbers if you can, and use them early.**

Of the most common issues that I see when I review slow code is that the programmer has inadvertently asked *Mathematica* to do things more carefully than needed. Unnecessary use of exact arithmetic is the most common case.

In most numerical software, there is no such thing as exact arithmetic. 1/3 is the same thing as 0.33333333333333. That difference can be pretty important when you hit nasty, numerically unstable problems, but in the majority of tasks, floating-point numbers are good enough and, importantly, much faster. In *Mathematica* any number with a decimal point and less than 16 digits of input is automatically treated as a machine float, so always use the decimal point if you want speed ahead of accuracy (e.g. enter a third as 1./3.). Here is a simple example where working with floating-point numbers is nearly 50.6 times faster than doing the computation exactly and then converting the result to a decimal afterward. And in this case it gets the same result.