JacquesC

Prof. Jacques Carette

2401 Reputation

17 Badges

20 years, 87 days
McMaster University
Professor or university staff
Hamilton, Ontario, Canada

Social Networks and Content at Maplesoft.com

From a Maple perspective: I first started using it in 1985 (it was Maple 4.0, but I still have a Maple 3.3 manual!). Worked as a Maple tutor in 1987. Joined the company in 1991 as the sole GUI developer and wrote the first Windows version of Maple (for Windows 3.0). Founded the Math group in 1992. Worked remotely from France (still in Math, hosted by the ALGO project) from fall 1993 to summer 1996 where I did my PhD in complex dynamics in Orsay. Soon after I returned to Ontario, I became the Manager of the Math Group, which I grew from 2 people to 12 in 2.5 years. Got "promoted" into project management (for Maple 6, the last of the releases which allowed a lot of backward incompatibilities, aka the last time that design mistakes from the past were allowed to be fixed), and then moved on to an ill-fated web project (it was 1999 after all). After that, worked on coordinating the output from the (many!) research labs Maplesoft then worked with, as well as some Maple design and coding (inert form, the box model for Maplets, some aspects of MathML, context menus, a prototype compiler, and more), as well as some of the initial work on MapleNet. In 2002, an opportunity came up for a faculty position, which I took. After many years of being confronted with Maple weaknesses, I got a number of ideas of how I would go about 'doing better' -- but these ideas required a radical change of architecture, which I could not do within Maplesoft. I have been working on producing a 'better' system ever since.

MaplePrimes Activity


These are replies submitted by JacquesC

If you have no entry in A (because it is sparse) but a non-zero entry in B, what does that mean? That seems inconsistent. Could you show us a larger part of what you are trying to do? I think we will be better to help you if we understand the context of what you are trying to achieve.
that's because I, like you, prefer simple rules. The rule of using * for multiplication is simple; the rules for when it can be omitted are not. Note that part of the problem is that Maple is dynamically typed. If Maple were statically typed, then it would be possible to overload space/juxtaposition to mean both application and multiplication, because then there would always be enough context to clarify which it has to be. In fact, even more overloading is possible. And that is how mathematicians do it too - they know, in advance, what type their "objects" are, so there is no confusion caused by their notational overloading. The real mistake in the design of the interface rules for implicit multiplication is the hope that this can be done context-free.
that's because I, like you, prefer simple rules. The rule of using * for multiplication is simple; the rules for when it can be omitted are not. Note that part of the problem is that Maple is dynamically typed. If Maple were statically typed, then it would be possible to overload space/juxtaposition to mean both application and multiplication, because then there would always be enough context to clarify which it has to be. In fact, even more overloading is possible. And that is how mathematicians do it too - they know, in advance, what type their "objects" are, so there is no confusion caused by their notational overloading. The real mistake in the design of the interface rules for implicit multiplication is the hope that this can be done context-free.
This answer is a bit complicated, and may lead to an interesting discussion, which really ought to be on its own thread. The short answer is that = in Maple is a constructor, not a function. It is only various contexts which give an operational semantics to =, with evalb [implicitly invoked by if statements] being the primary such context. Think of = as an Inert form, much like Int and Sum.
This answer is a bit complicated, and may lead to an interesting discussion, which really ought to be on its own thread. The short answer is that = in Maple is a constructor, not a function. It is only various contexts which give an operational semantics to =, with evalb [implicitly invoked by if statements] being the primary such context. Think of = as an Inert form, much like Int and Sum.
If that is indeed how you prefer to view things, I would suggest you try Prolog, mercury, Goedel, or Oz.
If that is indeed how you prefer to view things, I would suggest you try Prolog, mercury, Goedel, or Oz.
My surprise comes from my impression of Doug -- I thought he had a higher pain threshold. In other words, that he would inflict more pain on himself for the purpose of better pedagogy for the sake of his students. But apparently, even with that in mind, Document Mode still is too much for Doug and his students to take. That is where the surprise came from.
My surprise comes from my impression of Doug -- I thought he had a higher pain threshold. In other words, that he would inflict more pain on himself for the purpose of better pedagogy for the sake of his students. But apparently, even with that in mind, Document Mode still is too much for Doug and his students to take. That is where the surprise came from.
Thanks for the reminder Doug -- you are right, I should have mentioned use and uses as good alternatives.
Thanks for the reminder Doug -- you are right, I should have mentioned use and uses as good alternatives.
That is one of the fundamental sticking point that a lot of people who know both math and programming have when they first encounter Maple: their 'programming' knowledge gets in the way. In other words, they assume that because Maple is a computer program that has a programming language, that it is necessarily programming-based. But it's not, most of the fundamental design tries (as hard as possible) to stick to mathematical conventions. The more you think of doing mathematics as opposed to programming while using Maple, the better off you'll be. This is why the advanced users are so fond of map, zip and piecewise (for example) and will only reluctantly use loops and conditionals. Of course, one of the issues here is that too many of the Maple tutorials teach the programming approach to Maple, thereby setting most students off on the wrong track. Programming in Maple should be seen as the fallback position, when all 'standard mathematics' have failed them.
That is one of the fundamental sticking point that a lot of people who know both math and programming have when they first encounter Maple: their 'programming' knowledge gets in the way. In other words, they assume that because Maple is a computer program that has a programming language, that it is necessarily programming-based. But it's not, most of the fundamental design tries (as hard as possible) to stick to mathematical conventions. The more you think of doing mathematics as opposed to programming while using Maple, the better off you'll be. This is why the advanced users are so fond of map, zip and piecewise (for example) and will only reluctantly use loops and conditionals. Of course, one of the issues here is that too many of the Maple tutorials teach the programming approach to Maple, thereby setting most students off on the wrong track. Programming in Maple should be seen as the fallback position, when all 'standard mathematics' have failed them.
To quote Doug Meade:

Once we get through this [changing to worksheet mode and maple notation], the students have many fewer problems with our labs.

That is a serious indictment. Document Mode and the equation editor were designed to ease the burden of beginners. If you, of all people, feel that it is easier for your students to use Worksheets and maple notation, that is saying something quite serious. That a bunch of old foggies here on primes prefer this is fully expected, as that is completely standard "design" in many other disciplines, where you have a beginner mode and an 'expert' mode. But if you think that 'expert' mode is actually easier to grasp for beginners, that's deserves some real attention. I hope that Maplesoft will invite you up to Maple HQ for a week to sit you down with their developers so that they can fix things so that you feel you can use 'beginner mode' for your students. Or at least, that's what all my books on usability and customer-centric design tell me ought to happen.
To quote Doug Meade:

Once we get through this [changing to worksheet mode and maple notation], the students have many fewer problems with our labs.

That is a serious indictment. Document Mode and the equation editor were designed to ease the burden of beginners. If you, of all people, feel that it is easier for your students to use Worksheets and maple notation, that is saying something quite serious. That a bunch of old foggies here on primes prefer this is fully expected, as that is completely standard "design" in many other disciplines, where you have a beginner mode and an 'expert' mode. But if you think that 'expert' mode is actually easier to grasp for beginners, that's deserves some real attention. I hope that Maplesoft will invite you up to Maple HQ for a week to sit you down with their developers so that they can fix things so that you feel you can use 'beginner mode' for your students. Or at least, that's what all my books on usability and customer-centric design tell me ought to happen.
First 40 41 42 43 44 45 46 Last Page 42 of 119