In a previous comment, J. Tarr asks "what is Maple primarily intended to do?", and suggests that I might have something to say on the topic.
And indeed I do. To me, Maple is primarily a tool for assisting in the solution to problems of a mathematical nature. By ``of a mathematical nature'', I mean problems that can be successfully attacked with mathematics, so that this includes problems from physics, chemistry, circuit analysis, mechanical engineering, etc. And while a magic tool (like solve, int or simplify) can sometimes be a one hit wonder towards the solution of a problem, the expectation should be that multiple steps will be needed.
I definitely include education in the above, as to me it is not possible to separate education from problem-solving. You need education to be a good problem solver, and problem solving is a learning process.
In a later blog post, I will turn to the question of ``What makes such a tool different?'', ie how is it different than developping software like Word, Linux or Firefox. But here I want to talk about ``is Maple about math research?".
Undeniably, without the huge amount of research that went into it, Maple would not be what it is today. But at this point in time, two things are true: 1) more research can be done to improve Maple, and 2) as a product, Maple is ``mature''. The issue here is that, being mature, much research might point to developments in areas of Maple that can't be done without breaking backwards compatibility. The upshot is that most of the research done in Maplesoft-sponsored labs has become less about core Maple and more about specialized mathematics (there is great work being done, just not about core). It seems that Maplesoft is best described now as 'friendly to select research' rather than research-intensive. From the perspective of a mature product for a for-profit company, this makes a lot of sense.
We can easily observe what Maplesoft thinks Maple is about: it is about capturing greater market share by expanding into more application areas (largely in the engineering market). There is also a large push on a notion of usability that seems to be all about pointy-clicky widgets.
What do others think?
Comments
Maple for kids?
Which could be the market requesting GUI toys like dials and gauges?
My fear is that this current push for including widgets to the Standard GUI makes it even more bulkier, slower and buggier. Ie even less usable.
Say that these toys are needed to make kids use Maple. Doesn't make more sense to put them just in a special version for kids?
Student Version ?
Doesn't a student version of Maple exist already?
Student version
It exists, but it is full Maple. There were old student versions which were 'crippled', but that was unsustainable [it was difficult to maintain, and the end results were not satisfying].
Mature
but with unresolved defects that affect usability for serious users.
Consistency: mathematical notation and conventions should be uniform thoough the whole system. Currently it is a mess, as eg the case of spherical coordinates.
Documentation: it should be written by dedicated profesionals. Currently its quality is very uneven and it is largely fragmented, what seems consistent with the picture that it is mostly written by developers in a hurry as described in this case.
Support. Patches should be available for versions in a reasonable range. At present, when a bug in the library is found, in the best case, patches are promised for future dot upgrades of the current version. Those with any previous version are lost.
Mature
That is what a company that thought of itself as having a mature product would do, yes. But since companies with mature products rarely experience rapid growth [which the executives at Maplesoft have been trying hard to do], that is not the conventional wisdom. So you get a 20 year old software company (ancient by almost all measures in the industry) with a 28 year old product (dinosaur!) strategically thinking in terms of a start-up, because that is the effective market-share they have in the area they are aiming for.
With the end result being that the amount of resources put towards keeping current users (you know, the ones who upgrade year after year, and who make up for the majority of Maplesoft's revenue) is rather small [if it was not the case, then the complaints above would not exist]. In a way, it seems that "What is Maple for?" has at least one answer: not really for its current users.
proof?
In other responses in this thread below you mention int, simplify, series, limit, rsolve and assume as the sort of important symbolic algebra topics that need work. But these do not immediately or necessarily relate to what Jacubi has listed immediately above. So the continued existence of those items listed by Jacubi do not offer evidence that the corporate resources devoted to core symbolics (like int, limit, series) is relatively very small.
You have elsewhere indicated that you have not worked at Maplesoft for many years. Do you work at one of these mentioned research labs? If not, how can you state, except by hearsay, what relative proportion of work is done within the company on various items?
You broadly generalize that little core research is done at these research labs on core topics, and then in omitting mention of the company itself imply that nobody there may be doing work on it either. How can you know?
Proof
I cannot offer you proof [that would violate my NDA, and would also stop most of my information flow]. In fact, I do not divulge any information that (in my opinion) is not already externally observable in some way. Most people would not take the time to collect such information, sure, but it is available. For example, one can tell a lot about where a company is going by looking every ~3 months at its job postings [I correctly guessed a number of things going on at Wolfram Research that way].
I live in Waterloo. I still get to go to some Maplesoft functions. I know many of the developers in R&D and I talk with them not infrequently. I also know several people in Marketing, even in Sales. By talking with various Maplesoft employees, I know what most of them do. I have known the people at all the Maplesoft-sponsored labs for over 15 years, and I work with them still [papers in common, go to the same conferences, etc]. At these conferences, I keep up with all these people, so I know what they work on. I do this because I need to, to do my own research.
The company does development, not research. These are different things. The company does do some maintenance on int, series, limit, etc. But if they did a whole lot of improvements, don't you think that that would appear highlighted in the What's New? You always see new things in the areas of DEs for each release, and that is because there is a dedicated person on that topic [again, this information is available on the web already].
Lastly, most of my posts contain opinion mixed in with facts. I rather like it that way.
MultiSeries
is a package, that eventually should replace 'series' , whose development seems quite slow. It has appeared in Maple 9.5 (ie 2004) and since then, including Maple 12, ?MultiSeries > Description states exactly the same paragraph:
I have mentioned 'assume' below and previously posted about its shortcomings.
Sigh
That is one of those questions where I know the answer but it would be inappropriate for me to reveal it. There are a few clues on the web, but not enough.
keeping backwards compatibility
implies, I think, increasing costs. Indeed for the user as some features have obsolete implementations (eg assumptions), and some other features are (apparently) not even implementable (eg explicit contexts). And probably this is an issue even more accute for the developers.
So, it seems to me that that beyond a point, the costs of breaking backwards compatibility will be lower than those of keeping it. The question is how far is that?
The cost of backwards compatibility
We know that the cost eventually gets too high: even Microsoft broke compatibility, first with XP SP 2, and then again with Vista. Apple's OS X does it all the time, and to a certain extent, so does Linux.
For example, Java tends to be backwards compatible, but at a huge cost. And they, like Maplesoft, have had to admit that some past designs were bad [Java: AWT; Maplesoft:linalg]. Actually, the Eclipse Foundation thought Swing was awful too, so they created own widget set!
The question about 'how far' is actually pretty easy to answer: until there is a viable competitor that does it better. When will that be, now that is a rather difficult question!
core research
The upshot is that most of the research done in Maplesoft-sponsored labs has become less about core Maple and more about specialized mathematics (there is great work being done, just not about core).
I disagree ;)
core research
What, you don't think that any of the research is good? Or agree that all of it is not core? ;-)
Note that I did say 'most', not 'all'. Your work on polynomial representations (and similar stuff) is core, as it underlies a lot of the core stuff.
But who works on int, simplify, series, limit, rsolve or assume? No one at the labs currently sponsored by Maplesoft AFAIK. "Computer Algebra" makes for good research, but to me 'core Maple' is much more about "Symbolic Computation". And that is where less and less work is being done.
not just me
It's not just me, the group at Western is working on solving polynomial systems. That's a very hard problem and nobody really does it well, and it takes a long time. I agree that it is much easier to define requirements for "computer algebra" development than it is for "symbolic computation". Of course it does not help that int, simplify, limit, etc, are black holes that can swallow up infinite amounts of time. In some cases the problems are not well defined, which makes them research problems in themselves.
I can think of two things that are really holding back Maple development. The first is the test suite. There are thousands of tests, many of them are lumped together, and all kinds of things blow up because top level commands call each other expecting a certain type of result. Maple commands need a hierarchy, and the tests need to be cleaned out and organized. This is quite possibly the most thankless job in the world, but until a small team of people do it we are all going to suffer. It is just not worth it to make any changes to int, simplify, limit, solve, etc, under the current regime. Set ordering could even make this problem worse.
I think the second thing holding back Maple is performance. Many of the algorithms and data structures are too slow. That makes it hard to improve on the previous code, because you are greatly limited in what you can handle. If Maple were 100 or 1000 times faster you could design more ambitious algorithms for "symbolic computation". As it is now, someone has done something or put something in the kernel and you can't really beat it with a proper algorithm because Maple code is slow. There may be no good way to do a computation in Maple code using Maple data structures. The solution is to provide fast primitives. Find out what people need and provide it, and make all of the basic operations as fast as possible. This will make it possible for people to implement new algorithms. Or at least, that is the idea :)
Holding back development
I agree that 'fragile code' and 'fragile tests', ie code/tests that depends on the syntactic shape of the result of another, usually top-level, command, to work properly, is a real problem. It can definitely slow down development a lot. But it also goes against years of development practice! In the past, to be considered a true Maple Master, you had to be a wizard with 'op'. Slowly, as the years went on and maintenance grew harder and harder, it dawned on people how fragile op-oriented code was. And slowly, new code is less representation sensitive. But old code and old tests persist, and they do create a fair bit of inertia that prevents progress.
Those cases where the problems themselves are not well-defined are one of the aspects of the research work in this domain that I have worked on myself. I have notes for clarifying a whole bunch of further issues [they have been about 8 years in the making, the issues are really complex] which I hope to piece together into something I can show others in the fall.
On performance, I am torn. Certainly anywhere Maple is 100 times slower (or worse) than the state-of-the-practice, that is a serious problem that should be fixed, because that can indeed prevent forward progress. But 2-5 times slower is rarely something to worry about soon. The hard call is when Maple is 10-20 times slower than state-of-the-practice. To me, resolving that requires hard data, viz a lot of measurements.
Maybe I should renew my offer to Maplesoft the help of one of my grad students [now via a MITACS internship] to collect such measurements.
Strategy for Maplesoft
Naturally, Maplesoft wants to expand sales of Maple. I am sure there is a market for Maple in the educational world - math, engineering and science education. That would imply that Maple should be developed - as far as backward compatibility allows - by improving its core, its packages such as VectorCalculus and Physics, and develop new packages to address perceived gaps. Some of the "pointy clicky" stuff seems to be aimed at the educational world, and those working in that world are best qualified to comment on its usefulness.
I am a great deal less sure that there is much of a market for Maple in the engineering world. Most engineers do not need to return to the very simple mathematical models that they used to learn engineering principles with the help of Maple or similar. Mostly, they use specialized software that models their problem more accurately and whose output is more usable. This is not the place to discuss such specialized software, except to say that it is expensive, has been developed over many years, can feed directly into drawing and manufacturing packages, and has been approved by various classification and codification authorities.
Perhaps the same kind of remarks applies to software for physics: Maple is great for helping to learn the principles, but real life is more complicated. If there are any practicing physicists out there, please add your two cents worth.
Jacques and Roman have already commented on Maple for math research.
I am driven to conclude that Maplesoft’s strategy should be to concentrate on the educational market, which as Jacques implies is mature.
J. Tarr
On strategy
It is my understanding that, as far site licenses for large universities are concerned, the market is fairly well saturated: those institutions either have Maple or Mathematica (or both) already. Whether these universities actually use the software much used to be an open question. This is because the people who control the budget for large purchases and the actual users are quite disconnected from one another. So Maplesoft has contacts for the purchasers but not the end users, which prevents actual usage data from being collected. The real danger is that these universities might decide that automatically purchasing upgrades is not such a good idea anymore and skip a few releases.
As far as engineering goes, it should be the case that Maple can handle medium-sized models, not just the toy ones from university. Furthermore, it should be possible to manipulate those models symbolically to derive valuable properties of those models, without having to solve them (symbolically or numerically). Model manipulation also allows many optimizations that purely numerical methods cannot -- this is something I have written a few papers about. The gains can be from good (5x speedup) to fantastic (500x). However, I have my doubts about the "approved by various classification and codification authorities": Matlab is used at a lot of engineering firm, and no competent authority would ever certify Matlab as "fit for purpose" [it's not the software, it is the methodology which is flawed].
Market in engineering world
Jacques,
We seem to be talking at cross-purposes. The great majority of practicing engineers are employed by big corporations who use suites of finite element based software for design and many of these have been approved by codification and classification authorities for specific purposes, notably where safety is involved. I would be the last to suggest that any codification or classification authority had approved Matlab. There are, of course, some engineers outside big corporations who may want to explore an idea and in those circumstances Maple or Matlab could be helpful. My point is simply that there is not much of a market for Maple in the engineering world, of which I have long experience.
J. Tarr
Engineering world
Yes, we do seem to have miscommunicated. The engineers that I have in mind, and I believe Maplesoft is trying to capture, are the "creative engineers", those who have to find solutions to 'new' problems where old solutions do not readily apply, or have to optimize old solutions in directions where, again, old solutions do not readily apply. Sure they likely are in the minority, but still a non-trivial market. These people can use Maple as part of their work.
There seems to be a $80 million market for Matlab out there. That is rather sizeable! For a number of uses of Matlab, Maple would be even better. Of course, The MathWorks also has a bunch of toolboxes that Maplesoft does not, in areas where Maple is not so strong. But still, there definitely has to be something there!
software for physics
Specialized software exist mainly for education in Physics or for very specific fields or activities. But in general Physics is about the principles and frontiers, for which there is no ready-to-use package. Hence, tipically each one has code written in some programing language: eg Fortran or C as most people do purely numeric calculations, while some fields, like General Relativity, have a long tradition in symbolic calculations using CAS.
Eg, I have found very useful Maple + GRTensor for calculations in a given metrics.
educational market
I am driven to conclude that Maplesoft’s strategy should be to concentrate on the educational market, which as Jacques implies is mature.
Name one company that has targeted the educational market and survived :) Seriously, if Maple can't solve real world problems then it's only a matter of time before it's not used for teaching either. The value of educational software is approximately $0. It's nice gravy, but people expect the meat.
On the other hand, if you can solve a few large industrial problems people will never stop buying your product. Old customers may not upgrade, but you can remedy that by solving new problems or solving old ones faster. People will pay for that! Some poor engineer has the choice of either writing his own stuff, or trying to cobble together something out of other peoples' stuff, or he can buy your product type "solve" and boom! get the answer. That is worth money. You just saved that guy two weeks. You saved his company a paycheque. And once they realize they have a magic box that gives answers to large problems quickly, you can rest assured that they will never run out of problems to try. Nor will they stop paying you money, as long as you keep improving the box.
I think the market for computer algebra is nowhere near what it could be. Maple should be the essential magic box on every engineers' desk. MATLAB is there for a good reason. It can solve a 10M x 10M sparse linear system. It can interpolate millions of points. You can analyze gigabytes of data with it. Maple could potentially do all of this: with hardware floats, in arbitrary precision, and with exact arithmetic. But it has to be fast. The fact is, people hate numerical analysis. They would gladly try the product if it meant they could set Digits := 50; and run the thing again, or solve it exactly and not think at all.
I tend to agree: not the educational market
Maple as a development platform
Maple has many uses, from glorified calculator on up. The high-end, where I think that Maple can be part of a paradigm shift [and there is already evidence that it is -- see the interview with Gaston Gonnet, which we have talked about before] is to use Maple as a prototyping platform for solutions which would (eventually) be deployed to non-Maple users.
I was very hopeful some releases ago, when I saw all sorts of work on CodeGeneration, that this was where things were headed. But somehow that seems to have been put onto the backburner for now.
currently my impression is: it is waisting time to discuss that
Mostly a waste
Clearly executives (like Tom 4) stopped reading this forum a very long time ago, even though they promised all sorts of great things, only some of which happened. But I know that many developers still read it quite frequently. So it is not a total waste, because individual developers can still make a difference, at least at the level of local tactics, if not at the strategic level.
The problem is not that Maplesoft doesn't present material for its more technical users - it does, but only in certain forums. mapleprimes was a site driven by Marketing, while the technical information goes out through R&D, and thus through the channels that it controls [namely beta.maplesoft.com].
I do not think that Maplesoft has yet learned that "nothing is more expensive than to substitute existing customers".
I can but ask..
Hi Jacques,
Yes, there is a group of Maplesoft developers who read almost every post here.
I will ask; maybe we might be allowed to dump some of our expository "beta" forum posts, or some of the What's New help page content, into a Collaborative Books section here.
Dave Linder
Mathematical Software, Maplesoft
Maple cryptography and America
What has come to my attention recently is that hardly any american knows about Maple. They all know Mathematica and Matlab. This probably brings up the age old discussion about which one is better? Maple, Matlab or Mathematica? Not sure I can properly answer that as I have not used Mathematica and being biased as a Canadian I favour Maple.
Maple can crunch numbers just as well as Matlab can, although Matlab is considered a number crunching warrior but I have to wonder. Which software would be better for breaking cryptographic codes then? Maple or Matlab? Maple being far superior in manipulation but then doesn't it all depend on the power of your computer? One would have to think they both stand on equal ground in this case but I'm not so sure. Let's not forget Mathematica, it stands in direct competition with Maple so again I'm sure they all stand on equal footing.
But if Maple is better at manipulation wouldn't it have the edge and therefore be the better choice? Maple can't be that far behind Matlab in number crunching is it?
And since having both Maple and Matlab in your reptoire you probably wouldn't even need to consider Mathematica except for curiosity sake.
Fortunately, Maple has broken into the auto market at Toyota which put it in the spotlight for many Americans. Some much needed publicity to shake the american minds off the fact that there exists something other than Mathematica and Matlab.
America
For most Americans outside the US, America is a continent, from Alaska to Tierra del Fuego, say. I think that most of the population anywhere hardly knows some Mathematics. And most probably they have never heard about Maple, Matlab or Mathematica.
On the other hand, from my experience as ambassador of Maplesoft in Argentina, all these systems are more or less known within hard science academia (Physicists, Mathematicians, some Engineers, etc) in several of the countries of this continent (like Argentina, Brazil and Mexico).
U.S.
Sorry, my mistake. Interesting you should mention about America. Had I been a U.S. citizen I'd have been correct, but I guess we're all americans on this continent even though I generally consider americans to be from the United States and Canadians not really americans. More of which is a philisophical issue or just a matter of preference. However, since the topic has been brought forth surely it was known what I meant when I said American. I too would have said the same to someone had he said the same thing I said when I chose those words. As a matter of fact I was debating wether to say america or United States, but enough chit chat. I will choose my geographical choice of words more carefully in the future.
I know of at least 5 engineers who have come from the University of Toronto who have never even heard of Maple. Probably the reason being is they're engineers for which the software of choice is Matlab. I know of (again an engineering student) who came up from Philadelphia originally from the U.A.E. in Dubai, who said he's never even heard of Maple. In fact it wasn't until I mentioned it to him that he became interested. He mentioned everyone down there uses Mathematica and Matlab.
I Work in the spectrometry field in a multicultural company and I can ask around, scientists and the like, many from India some in Pakistan, Iran, Romania, Mexico, Korea, China, Scotland anyways you get the idea, many people from different areas of the world. I will ask these people at work next week and let you know their general opinion of Maple.
You are right, though, that people in the high end science areas, and not including engineers, seem to know what's available and do know that maple does exist. As for what Maple is for? I think Maple is an excellent learning tool and good for education and research. I also see that Maple is adding a lot of fluff to it's product, wether that means there isn't much more to be done remains to be seen.