WOLFRAM

Announcements & Events

Always the Right Time for Mathematica…

I was rummaging around on the web the other day and ran across an example of implementing an analog clock, written in MATLAB---a numerical matrix system that’s sometimes compared to the numerics component of Mathematica. I was curious to see how the MATLAB implementation compares to a Mathematica implementation, so I took a few minutes to write its equivalent. Here’s a quick shot of part of the result (download the Mathematica notebook to see the clock run in real time):

The exercise surprised me---not because the Mathematica code is so concise and straightforward, but because of how much I’d have had to learn and how hard I’d have had to think and what volume of code I’d have had to write to do the same thing with MATLAB. After a statement like that in our company blog, I can hear you thinking that the spin doctors are hard at work. But have a look for yourself...
Announcements & Events

Mathematica 6.0.1 Arrives

It’s now two months since we released Mathematica 6, and I am happy to say that all our years of development and testing seem to be paying off: Mathematica 6 is a robust system that is performing excellently. But even long before Mathematica 6.0.0 was released, we were already working on what would come next. Our development process operates on three basic levels that translate roughly into “X” releases, “X.y” releases and “X.y.z” releases. At any given time, we are making incremental improvements to existing features that will be delivered in the X.y.z releases. We’re also building new features, that will arrive in X.y releases. And we’re working on major new areas of Mathematica functionality that will be delivered in the X releases. Looking at our internal development database, I see that 6.0.1 contains 259 individual code improvements relative to 6.0.0 (as well as a great many documentation and tutorial updates). What are they all? Well, they are distributed throughout the system (as well as in an update to the free Mathematica Player)---reflecting the continuing work of our many software development teams.
Announcements & Events

Summer Adventures in the Computational Universe

We’ve just finished the intense first week of our fifth NKS Summer School. Every year I get to spend three weeks playing professor. It’s not the same experience that most academics get, not least because our CEO, Stephen Wolfram is part of it, pushing to get science done, and to get the students to do great projects based on A New Kind of Science. We get applicants for the summer school from all over the world, from all fields and all academic levels. Students are selected on their abilities, interests and enthusiasm. The center of the distribution is graduate students, but we always have some younger people, and some much more experienced people---both from academia and industry. Here is a photo of this year’s class outside of the University of Vermont, our venue for this year’s summer school: We’ve developed a pretty good system for the summer school. There’s a background of lectures, but the core of the summer school experience is for each student to do an original research project. Of course, it helps that NKS is a young and very energetic field, full of exciting problems to be solved.
Design & Visualization

The Elements of Video Production in Mathematica

A little hobby of mine is collecting and photographing the chemical elements. I have them all (except those that break the laws of man or physics). This is the photographic periodic table poster I sell: My poster and related imagery can be seen in several TV shows, and most recently staff at the venerable NOVA science series emailed asking for permission to use my poster image in an upcoming show about metals. They wanted to pan and zoom over it, starting wide and then focusing down onto a few individual elements. I said, “Fine, but I have something I think you’ll like even better... How about a video where every one of those samples is rotating in place?” And here is that video. What does any of this have to do with Mathematica? That video, and the more complex ones below, are directly output from Mathematica without any processing in traditional video editing tools.
Announcements & Events

Vista Seems to Be on Everyone’s Mind This Summer

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.
Announcements & Events

Mathematica’s True Colors

We can’t emphasize enough how important colors are in scientific visualization. Colors can convey the information which cannot be represented by geometry only. Sometimes, the data is just unreadable without proper colors in place. Most of all, colors can make graphics and plots more attractive and appealing. In previous versions of Mathematica, it was not always easy to pick the right colors or color functions. Probably, you would end up playing with the values of RGBColor or Hue, which can be both tedious and time consuming. During the development of Mathematica 6, we committed to change this situation. First off, we made---among dozens of newly added controls---a few specifically dedicated to color input.
Announcements & Events

Summer is Here (Make Room for the Interns)

Summer begins, officially, around June 21. Here at Wolfram Research it actually begins when the interns start to arrive. As we released Version 6 of our flagship Mathematica software less than two months ago, we’re still collectively exhaling, yet at the same time breathing in hard to keep up with these youthful, faster folk. No easy feat, unless you happen to be a trumpet player. A summer here at our headquarters in Champaign, Illinois, can find anywhere from 5 to 25 or so interns. They range in level from late high school to graduate school, as young as 15 and as old as 40-something. And we’re always on the hunt for new ones (apply on our website if interested). Where do they come from? I believe our interns have hailed from all six naturally inhabited continents, as well as several major island groups. Most are now residing in North America for their studies, though some have traveled from farther away. What do we do with these interns? Well, by law, we cannot eat them (even if we could manage to catch one). Instead we find it useful to put them to work on a variety of tasks, based on individual educational background and experience.
Announcements & Events

Symbolic Programming: Computationally Active Language

In this blog and elsewhere, you’ll often see the statement that some advanced Mathematica feature is just another application of symbolic programming. It’s the kind of idea that seems too powerful to explain in a single blog post, yet simple enough that I am tempted to try. So, here goes. Symbolic programming is based on the concept of recasting core features of human language into a computationally active form. What does it mean to have a human-language-oriented programming language? Our cognitive model of computation is typically a three-stage process: 1) describing the computation; 2) executing that description; and 3) outputting the results. The “language” part of most programming languages begins and ends with stage one. Linguistic structures are erected to describe the program. But the execution of the program is typically oriented around an entirely different system of types and objects; and likewise, the program’s output structure tends to resemble nothing particularly language-like. Symbolic programming uses linguistic structures as the foundation of all aspects of computation. From a computation’s description, to how the computation executes, to how humans interface with the results, the exact same basic tree structure is used throughout. This is a powerful unification, making possible many useful computations that in other systems range from cumbersome to practically impossible. We’ll see examples along the way, but let me first describe what these linguistic structures actually are.
Products

In Mathematica, Pictures Are Worth a Thousand Words

One of the challenges of developing Mathematica is resisting the urge to spend all my time playing with the graphics toys I create. A lot of what I do results in features so fun to explore that they jeopardize the further development of Mathematica. I’d like to point out a few of them in this blog, starting with a simple but profound change in the behavior of Mathematica graphics: direct graphics output. In previous versions of Mathematica, the result of a Plot or other graphics command was the abbreviated form  - Graphics -  that represented the symbolic output. The actual graphical image itself was spit out like a watermelon seed as a side-effect of the evaluation and was not associated with the symbolic output. In Mathematica 6, the output and the image are one and the same, behavior we call “direct output” to contrast it with the “side-effect output” of previous versions. This simple change in behavior underlies much of the interesting new functionality in Version 6.