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.

September 22, 2009 — Brenton Bostick, Kernel Technology

I wanted to build a simple web application for manipulating and exporting Pythagoras trees to make posters and desktop wallpaper, and so I turned to the new features of web*Mathematica* 3.

web*Mathematica* is a web application framework released by Wolfram Research. It allows users to write web pages using *Mathematica*, seamlessly integrating *Mathematica* code with HTML and JavaScript.

web*Mathematica* 3, the new version released on September 15, introduces several new features such as a web version of the popular `Manipulate` command and a way to evaluate *Mathematica* code asynchronously, without delaying page loading.

September 3, 2009 — Theodore Gray, Co-founder, Wolfram Research, Inc; Founder, Touch Press; Proprietor, periodictable.com

Longtime *Mathematica* user Flip Phillips recently sent us this tremendously amusing error message generated by *Mathematica*. Much as you might think when stumbling upon a pickup truck hanging from a tree, your first reaction is probably, “How does something like that even happen??”

January 21, 2009 — Eric Schulz, Consultant

I have taught collegiate mathematics for more than 20 years and have used *Mathematica* for 15 or so of these years to explore, learn, and teach. For the last eight years *Mathematica* has been my primary tool to write all of my exams, handouts, letters, reports, papers, presentations, and even a complete electronic textbook. New features introduced recently have been revolutionary in the teaching and learning environment and make possible the creation of materials that integrate text, typeset mathematics, and interactive figures, which can be created efficiently and used effectively in ways not possible with other software tools.

For faculty and students to benefit from using *Mathematica* in the teaching and learning process, they must be able to use *Mathematica* sufficiently well to remain focused on course concepts and not become frustrated by the technology. Without question, the main challenge I face teaching new users how to use *Mathematica* is helping them master the task of creating syntactically correct commands, followed closely by the challenge of teaching how to use *Mathematica* to write rich documents that combine text, typeset mathematics, and figures.

When the use of technology gets in the way of the teaching, learning, and writing about content, which should remain the focus of academic learning, then all involved in the teaching and learning process experience frustration! If enough example commands are provided, if the ways of *Mathematica* are carefully explained, and if patient help is readily available, then some new users are able work their way up the learning curve and reach a point where they can focus on the subject matter and are able to comfortably use *Mathematica* to explore, learn, teach, and write about the concepts. Members of this group are often able to independently deepen their understanding and use of *Mathematica* by relying on the Wolfram *Mathematica* Documentation Center and other resources; but not enough new users reach this level of *Mathematica* knowledge and thus do not experience firsthand the marvelous capabilities of *Mathematica* to explore, investigate, learn, teach, and write about interesting ideas!

November 18, 2008 — Stephen Wolfram

In the middle of last year, we finished our decade-long project to reinvent Mathematica, and we released Mathematica 6.

We introduced a great many highly visible innovations in Mathematica 6—like dynamic interactivity and computable data. But we were also building a quite unprecedented platform for developing software.

And even long before Mathematica 6 was released, we were already working on versions of Mathematica well beyond 6.

And something remarkable was happening. There’d been all sorts of areas we’d talked about someday being in Mathematica. But they’d always seemed far off.

Well, now, suddenly, lots of them seemed like they were within reach. It seemed as if everything we’d built into Mathematica was coming together to make a huge number of new things possible.

All over our company, efforts were starting up to build remarkable things.

It was crucial that over the years, we’d invested a huge amount in creating long-term systems for organizing our software development efforts. So we were able to take those remarkable things that were being built, and flow them into Mathematica.

And at some point, we realized we just couldn’t wait any longer. Even though Mathematica 6 had come out only last year, we had assembled so much new functionality that we just had to release Mathematica 7.

So 18 months after the release of Mathematica 6, I’m happy to be able to announce that today *Mathematica* 7 is released!

June 23, 2008 — Stephen Wolfram

Today is an important anniversary for me and our company.

Twenty years ago today—at noon (Pacific Time) on Thursday, June 23, 1988—*Mathematica* 1.0 was officially launched.

Much has changed in the world since then, particularly when it comes to computer technology.

But I’m happy to be able to say that *Mathematica* still seems as modern today as it did back then when it was first released. And if you take almost any *Mathematica* 1.0 program from 20 years ago, it’ll run without change in the latest *Mathematica* 6.0 today.

From the beginning, I had planned *Mathematica* for the long term. I wanted to build a system that could capture the essence of computation, and apply it wherever that became possible.

I spent great effort to get the fundamentals right—and to build the system on principles that would endure.

And looking back over the past two decades it’s satisfying to see how well that has worked out.

March 11, 2008 — Christopher Carlson, Senior User Interface Developer, User Interfaces

Many new features in *Mathematica* are manifested in new functions with definite names, but some are not so prominent. You might miss one of the new features that I implemented for *Mathematica* 6.0.2—but it’s really useful, and so I thought I’d write about it here.

Let’s say you have a plot, or some other kind of graphic. You see something in the graphic—some special point—and you want to know where that is, what its (*x*, *y*) coordinates are.

In earlier versions of *Mathematica*, there were primitive ways to find this out. Now in *Mathematica* 6.0.2 there’s a nice, clean, general way to do it.

Open the Drawing Tools palette (from the Graphics menu, or by typing CTRL-d or CTRL-t). Choose the “Get Coordinates” tool at the upper right.

February 25, 2008 — Peter Overmann, Director of Software Technology

In my ten years at Wolfram Research, I’ve never seen so much software development activity. In the middle of last year, we had our biggest launch in a decade: *Mathematica* 6. Now there’s a huge pipeline of new development underway.

Some people are working on *Mathematica* 7; some people on *Mathematica* 8. We’re developing major new frameworks and we’re adding boatloads of new functions. But we’re also continuing to polish and strengthen everything that’s already in *Mathematica*.

We brought out *Mathematica* 6.0.1 last summer to add a variety of improvements that didn’t make it into 6.0.0. And we’ve now accumulated enough improvements that we’ve decided to release 6.0.2—which is being sent to *Premier Service* customers as of today.

June 27, 2007 — Kelvin Mischo, Sales Engineer

As someone who works with university software groups to maintain *Mathematica* site licenses, I’m not surprised that Windows Vista compatibility is such a common topic of conversation. After all, this is the season for setting up computer labs for the upcoming academic year, and Windows is quite the popular platform.

What does surprise me is the tone of these conversations. The questions during Vista testing started pouring in during the spring and fall semesters, and continued this summer.

Inquiries have a slightly weary, mildly suspicious tone and start with questions like, “What’s the story with *Mathematica* on Vista?” Or, “When will *Mathematica* be compatible with Vista, and what limitations should we keep in mind?” A few schools even asked the exact same questions about compatibility twice in consecutive weeks!

Clearly a complicated answer is expected here.

But the answer, for *Mathematica* at least, has been very simple since Vista’s early-spring release.