June 1, 1996
One sees a multiplication of smaller specialized systems whose design is also increasingly sophisticated. What balance and relationship do you see in the future between specialized and comprehensive systems?
I guess the specialized systems that seem to me to make the most sense are the ones built in Mathematica. They start from all the stuff we’ve done, then add specialized abilities. I don’t know why there are so many people building specialized systems in languages like C. I guess it may conceivably make for a better story for an academic paper—though I’m not quite sure why—but I don’t think it’s a good use of effort. What on earth is the point of building yet another parser, often based on a really simple-minded language design? Why not just use Mathematica?
Of course, sometimes people are really concerned about efficiency, and want to write incredibly bit-hacked stuff. So then they probably have to write the core of their systems in C. But I think the scheme that makes the most sense in cases like that is to have the core in C, then to use MathLink to connect it to Mathematica, so you can use Mathematica as the interface to the system. There have been quite a few systems made this way, and I think it’s a pretty good approach. It’s a way where one can really use software components sensibly, without rebuilding a lot of stuff that surely isn’t the point of an algorithmic project.