Maple true and false don't work like in C/C++. That is, if(whatever) explicitly expects "whatever" to be of type true or false, and can't convert floating-point values to true or false like C can. True is not 1 and false is not 0.
In short, a number isn't a boolean variable.
I'm not quite certain what it is you're trying to do, but the line beginning with "if r" is nonsense, because r is a float, not a boolean.
Also, you have slightly redundant code in there, namely evalf(r). The variable r has already been evaluated as a floating-point number, since you are multiplying it by a floating-point number. When Maple sees a decimal point, it understands it to describe a float.
Wow. I was half-expecting this to degenerate into an all-out flamewar. What a pleasant surprise to receive this sort of reply instead!
Thanks for your recommendations about whom to contact with some of my concerns and your suggestions on how to bring about what I want. It may be a tad difficult to start building a free version of Maple from scratch. Perhaps we can get permission to freely distribute some of the code in Maple which is already visible, or to base Maxima or Axiom code on visible Maple code (which in turn, after all, is often based in an algorithm published in the literature).
Again, thanks for the exchanges.
I feel like we should hug, or something. :-)
Please do not hurl cliches at me! It makes you look like a fanatic. It
also makes me feel less inclined to continue this discussion.
Sorry. It seemed that you genuinely did not understand what free
software was when you commented that software like Octave or Maxima
wasn't really free because people were indirectly paying for its
development. Perhaps I was misunderstanding your usage of "free". I
trust you do understand my meaning of "free", which you seem to know
as well as a cliché.
Please do not get offended. It seems like we were just having a
misunderstanding of terminology.
Maple, however, is not a public domain product,
and neither is most free software, which usually carries a copyright
statement with it. There's an important distinction between public
domain and free software. I won't repeat it, since you say you know
it.
GPL permits the development of commercial products based on free
software.
Commercial, yes, proprietary like Maple is, no. The LGPL was
created essentially to address this issue, to allow the bundling of
free libraries with proprietary software. If Maple were to use any GPL
software, it would be breaking the law.
A highly complex and mathematically sophisticated software product
like Maple costs a considerable amount of money to maintain and
develop, and that money has to come from somewhere
Completely agree. That's why people have invested so much money in GNU
Octave and why they are always asking for funding:
http://www.gnu.org/software/octave/funding.html
http://www.gnu.org/software/octave/acknowledgments.html
I consider it axiomatic that a well-funded, well-coordinated,
full-time research and development effort by qualified professionals
will produce superior results compared to a part-time effort carried
out by a scattered group of amateur volunteers.
It is hard to refute this claim... but you seem to imply that only
hobbyists can produce free software, which is not the case. I won't
reiterate the examples of free software produced by "professionals",
nor even attempt to give an example of free software produced by
"amateurs" which is technically superior to software produced by
"professionals" (although I believe such counterexamples exist), since
it is highly subjective whether a piece of software is technically
superior or not as compared with another.
Software development with full funding is a profession. Software
development without full funding is a hobby.
Your definition is fuzzy. When does a bunch of shinies of funding become
a full pile shinies of funding?
If you can figure out a way to fully fund Maple research and
development without relying on Maple sales revenues, I will applaud
your solution but I will want to see realistic details, not more
idealistic rhetoric.
I am not an economist or a manager, nor do I have enough details about
the internal workings of Maplesoft in order to suggest a better
solution. However, my inability to find a solution should not be taken
as a proof of inexistence. We should be searching for a solution until
we can prove that it doesn't exist, and examples of successful free
software projects like the ones I have been providing make it
plausible to think that a solution exists.
The current model of partnership between government, academia, and
industry already works quite well,
Works well for what purpose and for whom? It certainly doesn't seem to
be working well at least for end users like myself who complain about
it, for students for whom paying a software license, even an student
license, would be quite a burden, nor for those of us who are aware of
the legal trap that coding using non-free tools can be.
Maplets and the Maplet viewer have made it a bit easier to legally
share Maple code, but they still haven't solved all problems. A more
radical change in Maple's structure than the introduction of Maplets
will be necessary before everyone in the world can legally verify my
brilliant proof of the Riemann hypothesis I have in this Maple
worksheet right here...
... or that I would have, if I were just that good. :-)
Why don't you just buy a legal copy of Maple? Problem solved!
In my part of the world, the money that I would need to pay for a
Maple license is comparable to the monthly income of most of the
population. I would literally have to go hungry if I were to pay for a
Maple license out of my own pocket.
But that's besides the point. The point is that I refuse on principle
to pay out of my own pocket for tools that I need for my work, and I
also refuse to require others who want to see my work to pay the same
fee.
Are you seriously trying to argue that you are being "forced" to
commit an illegal act?
I certainly am not forced to do anything, but the current economical
and legal system, makes it very difficult to be law-abiding.
First, institutions get me addicted on using non-free software.
Second, the actual price of the software license is modelled on the
economy of a country to which I do not belong.
Third, the software license has a great deal many intricacies that
most of us happily violate once without even being conscious of this
violation.
Fourth, everyone is doing, so why can't we (at least in this country);
nobody is enforcing the software license (at least here).
I do want to stop using Maple for the above reasons and others, but
not in any desire to be law-abiding, but rather as a form of
protest. Software's greatest resource is its users. Without users,
there would be no software, no incentive to develop the software. I
protest by taking my resource away.
By the way, do you make a habit of logging in to commercially
supported websites and writing, "Hi there! I stole your product!"?
"Stealing" is a strange word to use here, since I have not materially
and wrongfully deprived anyone else of property. Regardless of my
actions, all the users in the world who are using Maple can continue
doing so, in whatever fashion they see fit. All I am doing is
violating a license agreement.
You should not be surprised at this behaviour. In countries like mine,
this "stealing", as you call it, is rampant. Please indulge
me if I feel offended should you suggest that most of the citizens of
my country (including many of my colleagues) are thieves.
...
Right, after this long exchange, it seems that all has been in
vain. Maple has tied up its own hands by deciding to include so many
pieces of software that are controlled by proprietary licenses.
I was much more optimistic about liberating Maple when I first created
this thread, many months ago, but my optimism has waned when someone
pointed out how difficult liberating Maple would be, even if much of
its source is already visible, and even if it already bundles free
software with it. This makes me sad.
I do not think my sorrow is naive or unwarranted. I feel perfectly
entitled to it. I hope you understand why.
There is high-quality free mathematical software, but the people who produce it are funded by other means; e.g., they are university professors who get paid whether or not their software becomes widely used. This software is not really free -- it is just paid for by the employers of the people who develop it rather than by the people who use it.
You are misunderstanding the nature of free
software. It is not about price -- it's about
freedom. Maxima isn't libre only because
Macsyma failed financially, but because there
were people who cared deeply about Maxima and
released a version of it that could be good for
the community. There are ways in which a company can
be financially successful while selling free
software. Red Hat Linux is one example of such
a company. Their business model is different:
their income, as I understand it, is mostly from
selling tech support, but their product and all
the documentation can be completely downloaded
gratis, without a price tag. They do sell some
versions of their product, todays mostly for the
corporate market, but they still allow you to
freely redistribute these copies that they sell.
Novell has a similar model with SuSE Linux. This
hasn't made Red Hat or Novell any less profitable,
and you can buy Red Hat stock if you feel so
inclined and believe in freedom of software.
Maple could do it too. Maple is already close
to doing it, for incorporating free software in
its code under the LGPL (the library general
public license, for the GNU Multiprecision
arithmetic library), and for allowing much of its
source to already be visible, in stark contrast
with the other leading brand. It's wishful
thinking to think it could happen, but not
altogether stupid.
Why do you feel you will soon lose access to Maple? It is an excellent product, and worth the price. In my opinion, money spent on first-rate mathematical productivity tools is money well spent.
My access to Maple will soon be legally cut off
because I was using it under what I believe to
be a site-wide McGill license. I am no longer
affiliated with McGill, but they managed to get
me addicted to Maple while I was there anyways.
Since I am no longer covered by McGill's license,
my access to Maple is legally restricted.
It's a sad thing, though. McGill (and more
indirectly by giving McGill money to pay for
software licenses, NSERC) is already financially
supporting Maple, yet I cannot use it legally
because of a restrictive software license.
We should have a different business model. Instead
of NSERC giving McGill money so that McGill can
pay Maplesoft a license under which I can use
Maple, why not instead have NSERC give the money
directly to Maplesoft, do away with the
license, and give me more freedom? That's just
one suggestion. Other ideas could arise. I would
like to emphasise that doing away with restrictive
software licenses and granting users freedom isn't
a ridiculous idea. It can be done.
I still have a now illegal copy of Maple in my
machine installed, and I'm trying very earnestly
to stop using it, as a form of protest (but some
addictions are very hard to break). And like I
said, it's a good thing hardly anyone except the
RIAA in the US persecutes smalltime "pirates", as
they call us, as if our breach of legality were
comparable with burning and plundering ships at
sea. Otherwise, all of China and Russia would
be criminals in the eyes of current copyright,
as I now am.
In the meantime, I'm trying to learn Common Lisp
so that I may contribute something back to the
community, not the corporation, that brought me
a very good software package that could with a
little more work replace proprietary Maple.
Oh, drat. I hadn't noticed all those.
Yes, you're right. That probably makes it near impossible for Maple to ever be free.
I must say, it's kind of sad to see how all those restrictive licenses in turn tie Maple's hands. This isn't the right way for scientific collaboration to proceed. :(
Yikes! Comparing Windows to Maple... that hurts.
But I agree with you that something drastic would have to happen before Maple gets GPLed. So we need to make free software truly kickass before Maplesoft feels enough pressure to GPL their software. I guess nothing but hard work from the free software community will do it. :-(
I may be idealistic, but I'm not that idealistic. It's possible to avoid using proprietary software and still produce quality work. Have you ever tried it? It's not that hard nowadays, with the thousands of free pieces of software out there.
However, your point about this not being the right forum for this discussion is well taken. Any idea what is the right forum?
Your issues are non-issues to me, because I use GNU Emacs on Linux. :)
Too bad the command got deprecated, but M-x praise-be-unto-emacs.
Looking forward to those Linux improvements for interfacing with cli Maple.
It is a happy coincidence that I like to program in Emacs too. I'll check out your Maple V mode. Er, there have been some minor syntax changes since Maple V, though. Some keywords got lowercased, f'rinstance. Is this an issue?
Where can I read about making Maple libraries? Is it in the help?
Well, isn't that strange? And shouldn't it be otherwise?
It sure does! Grothendieck would never doubt that 0^0 is 1!
I thought we already had a test for mathematicianness: if the integral of exp(-x^2) over the real line is as obvious as 2*2 = 4. :)
I guess Maxima thinks that 0. = 0, then, which is a useful think for a computer to think.
*sigh*
Yes, I agree with you, but not everyone else does, and that doesn't mean they're not mathematicians. That was all I was trying to say.
Sorry. My point was that mathematicians also built Maxima, so not only non-mathematicians believe that 0^0 deserves special attention. Maxima is Maple's mommy in the sense that early versions of Maple were based on Maxima code. You can still see some legacy syntax from Maxima in Maple.
I also wish I understood how Maple is evaluating these expressions. If it's a built-in special case for the ^ operator, fine, I'll take it as that. But even then, callling 0^I a division by zero error is a strange thing, and I wish I understood where it's trying to divide, probably in a call to ln(0), but how come this call doesn't occur for 0^(1+I)?
Thanks, this could be useful to know some day. :)