Vote for your favourite math software

  • Thread starter juliette sekx
  • Start date
  • Tags
    Software
In summary: C++.In summary, I think Maple and Mathematica are equally powerful, but am curious to see which one is used by more people. Please take 2 seconds to vote for which one you use more.The majority of people seem to use Maple more, but I think that C++ is a great language to learn for anyone who wants to be able to do more complex calculations.
  • #1
juliette sekx
31
0
I think Maple and Mathematica are equally powerful, but am curious to see which one is used by more people. Please take 2 seconds to vote for which one you use more.

I'm not interested in numerical, so if you use MATLAB but not the symbolic math toolbox, don't vote. Please get as many people as you can to vote as well, it takes 2 seconds and hopefully in a few weeks this will be an accurate metric.

http://users.ox.ac.uk/~hert3229/
 
Last edited by a moderator:
Physics news on Phys.org
  • #2
This thread had 68 views and still only 4 people voted!

There's no spyware or malware associated with with webpage, if that possibility is making you paranoid. It's an Oxford University webpage, so it's trustworthy!

I just want to get a good idea of what people use the most!

I'm thinking of putting up a symbolic code on the supplementary data for my last Journal of Chemical Physics publication, and I'm not sure whether to program it in Maple or Mathematica
 
  • #3
Perhaps the reason for the disproportionate number of views compared to votes is because the title of the thread doesn't really match what you're asking people to vote on. The title suggests a more general vote, perhaps with several categories. Your post suggests all you want to know is whether Maple is more popular than Mathematica, or vice versa.
 
  • #4
I voted for Maple.

Years ago, I was a TA for a Maple-based, introductory mathematical physics course, so I had to learn something about Maple, and now I occasionally use the Maple-based package GRTensorII for calculations in general relativity.
 
Last edited:
  • #5
juliette sekx said:
I think Maple and Mathematica are equally powerful, but am curious to see which one is used by more people. Please take 2 seconds to vote for which one you use more.

I'm not interested in numerical, so if you use MATLAB but not the symbolic math toolbox, don't vote. Please get as many people as you can to vote as well, it takes 2 seconds and hopefully in a few weeks this will be an accurate metric.

http://users.ox.ac.uk/~hert3229/

I think C++ is the best thing you can learn. You can download GMP and produce huge numbers and use the language of C++ to explore them.
 
Last edited by a moderator:
  • #6
I went for Matlab because it's used in the software I use at work and because I used it in college. I also used Mupad (a European program) in college and it was actually a very good program with better graphics than Matlab, and cheaper to boot. Unfortunately, Matlab bought the rights to the program and it's no longer distributed.
 
  • #7
SixNein said:
I think C++ is the best thing you can learn. You can download GMP and produce huge numbers and use the language of C++ to explore them.

For making software, video games, and web applications, I don't disagree with you.

But for SYMBOLIC computing, good luck getting C++ to manipulate rank 30 tensors, or solve nonlinear systems of PDEs.

I wouldn't even recommend C++ for numerical computing.

Matlab's the best for fair-sized computations. If time is an issue and you're going to program in a low-level language, FORTRAN beats C++ by a hundred thousand miles.
 
  • #8
juliette sekx said:
For making software, video games, and web applications, I don't disagree with you.

But for SYMBOLIC computing, good luck getting C++ to manipulate rank 30 tensors, or solve nonlinear systems of PDEs.

I wouldn't even recommend C++ for numerical computing.

Matlab's the best for fair-sized computations. If time is an issue and you're going to program in a low-level language, FORTRAN beats C++ by a hundred thousand miles.

C++ isn't a low level language, and it has a huge library base. For example, the GMP library is much better then MATLAB for numerical computing. Matlab is limited to 32 and 64 bit numbers. GMP does not have a limit on the size of numbers you can calculate. There also exists tons of symbolic manipulating libraries.

Many commercial software packages uses these libraries. I know Mathematica now uses gmp: http://library.wolfram.com/infocenter/Demos/4946/
 
  • #9
SixNein said:
C++ isn't a low level language, and it has a huge library base. For example, the GMP library is much better then MATLAB for numerical computing. Matlab is limited to 32 and 64 bit numbers. GMP does not have a limit on the size of numbers you can calculate. There also exists tons of symbolic manipulating libraries.

Many commercial software packages uses these libraries. I know Mathematica now uses gmp: http://library.wolfram.com/infocenter/Demos/4946/

C++ is one of the most low-level languages that's still used today (like FORTRAN and C).

1st generation languages (machine code), and 2nd generation languages (assembly) aren't used by scientists. C++, FORTRAN and C are 3rd generation languages: http://en.wikipedia.org/wiki/Third-generation_programming_language

For many computations MATLAB is the best because it's simply very easy to program, and to manipulate data (generate pictures, export tables to excel, visualize trees and graphs, etc...) in real time.

If you need more power ( > 64 bit precision is VERY RARELY used by the way ), and you're going to spend time programming in a 3rd-generation language that requires compiling, etc.. you might as well do it in FORTRAN. C++ was not designed for numerical computing, it just accidentally got popular because people didn't know better at the time.
 
  • #10
juliette sekx said:
C++ is one of the most low-level languages that's still used today (like FORTRAN and C).

1st generation languages (machine code), and 2nd generation languages (assembly) aren't used by scientists. C++, FORTRAN and C are 3rd generation languages: http://en.wikipedia.org/wiki/Third-generation_programming_language

For many computations MATLAB is the best because it's simply very easy to program, and to manipulate data (generate pictures, export tables to excel, visualize trees and graphs, etc...) in real time.

If you need more power ( > 64 bit precision is VERY RARELY used by the way ), and you're going to spend time programming in a 3rd-generation language that requires compiling, etc.. you might as well do it in FORTRAN. C++ was not designed for numerical computing, it just accidentally got popular because people didn't know better at the time.

C++ is not considered to be a low level language in computer science. The difference between a low level and high level language is how it maps to machine code. In assembly language, the language has a one to one correspondence with machine code. Every statement in assembly gets mapped to one statement in machine code so that they have a one to one relationship. C++ has a one to many relationship. For every line of code in C++, many statements of machine language (called op-codes) are created.

"C++ was not designed for numerical computing, it just accidentally got popular because people didn't know better at the time."

C++ was not designed for a specific type of application; instead, it was designed to be extensible so that it could be used for any type of application. The C++ language has many powerful features.

Does it take time to learn C++? Absolutely. But mathematics and science majors should be taking some computer science classes anyway.
 
  • #11
SixNein said:
C++ is not considered to be a low level language in computer science.

Yes, I changed my thesis to "C++ is one of the most low-level languages that's still used today" because I realized it's considered a middle-level language, but it's still much more low-level than MATLAB.

SixNein said:
C++ was not designed for a specific type of application; instead, it was designed to be extensible so that it could be used for any type of application.

That's precisely why it's not as good as FORTRAN for numerical computing. FORTRAN was designed for numerical, so many features for numerical computation are intrinsic. Further, if one uses the object-oriented features of C++, like pointers and such, that puts more constraints on the compiler's optimization procedue. Basically, the more fancy features the program has, the more constraints on the compiler's optimization. FORTRAN's the most efficient language in this sense, that doesn't have a huge learning curve like assembly.

I do agree that it's useful to know object-oriented programming if one wants to make software or web-apps, but I don't see why one would want to use it for numerical computation.
 
  • #12
juliette sekx said:
Yes, I changed my thesis to "C++ is one of the most low-level languages that's still used today" because I realized it's considered a middle-level language, but it's still much more low-level than MATLAB.
That's precisely why it's not as good as FORTRAN for numerical computing. FORTRAN was designed for numerical, so many features for numerical computation are intrinsic. Further, if one uses the object-oriented features of C++, like pointers and such, that puts more constraints on the compiler's optimization procedue. Basically, the more fancy features the program has, the more constraints on the compiler's optimization. FORTRAN's the most efficient language in this sense, that doesn't have a huge learning curve like assembly.

I do agree that it's useful to know object-oriented programming if one wants to make software or web-apps, but I don't see why one would want to use it for numerical computation.

Compiler optimization has little to do with the number of features a programmer uses; instead, the manor in which the features are coded determine the optimization abilities. Both FORTRAN and C++ are producing the same underlying op-codes at the end of the day.

Honestly, languages do not matter too much in terms of performance. The most important aspect of performance is the underlying algorithm used. A algorithm with o(n^4) complexity is going to run slow regardless of language or optimization. A master assembly level programmer can optimize an o(n^4) algorithm to squeeze every ounce of performance out of the algorithm, but a beginning programmer who writes a unoptimized o(n) algorithm in visual basic will have faster performance.

I personally found Assembly language to be the most straight forward of all programming languages. There is no magic in assembly language. Assembly language gets tough when you start doing optimization for specific machines. For example, one instruction may run faster on AMD processors then Intel processors. The huge learning curve comes from learning the strengths and weaknesses of hardware. But the language itself is fairly straight forward.

I think C++ is far better then FORTRAN because C++ has access to more features. Access to direct X alone is worth it. In addition, FORTRAN projects have the knack of becoming extremely messy as projects grow in size. C++ has features that allow projects to scale better so that they can be better maintained.
 
  • #13
I am not sure if this is what you were asking, but here are some of my thoughts:

C++ is great. Every day I thank god for Dennis Ritchie and Bjarne Stroustrap. However, although there are math libraries and it can be used for exploring math (just last week I wrote a little Bezier curve app in C), I am not sure if that really counts as math software.

I have never used Maple or Mathematica, but instead use freeware solutions. I really like Maxima, which does both symbolics and numerics. It is just a console "engine" style program, so it is best to have an interface. I like WxMaxima, which provides typeset math output, but Euler is also great because it provides more powerful numeric capabilites and and an alternate plotting system. They are both on my taskbar quick launch.

Again, I can't say much about Mathematica and Maple, but you seemed eager to hear from someone.
 
  • #14
I'm not going to vote, as I've only used Mathematica, and neither of the other two.

Regarding using C++ vs. Mathematica, Mathematica is far superior for mathematical computations with all the built in functions, Prime[], dd[], FindMaximum[], Interpolate[], easy table manipulations etc. plus the fact that it can handle numbers of basically any size, which can quickly become a nightmare in C++ unless you start using specific libraries and even then it can sometimes still be very irritating.

All that being said, I'm not sure if I particularly like Mathematica as a programming language, I've been using it for near 6 months now, and it still seems so icky, even trying to pipe results with &/@ and using the slot function takes some serious getting used to (perhaps that's just from coming from a C background, I don't know)
 
  • #15
axiom and yacas...good enough for me.
 

1. What is the purpose of the "Vote for your favourite math software" survey?

The purpose of the survey is to gather information and opinions from individuals about their favourite math software. This information can be used to analyze trends and preferences in math software and potentially guide future developments in the field.

2. Who is eligible to participate in the survey?

Anyone with knowledge and experience using math software is eligible to participate in the survey. This includes students, teachers, researchers, and professionals in the field of mathematics.

3. How will the results of the survey be used?

The results of the survey will be used to gain insights into the preferences and opinions of users regarding math software. This information can be used by developers to improve current software or create new software that better meets the needs of users.

4. Can I vote for multiple math software?

Yes, the survey allows participants to vote for multiple math software that they consider to be their favourite. This allows for a more comprehensive understanding of the preferences and opinions of users.

5. Is the survey anonymous?

Yes, the survey is completely anonymous. No personal information is collected during the voting process. This ensures the privacy and confidentiality of participants' responses.

Similar threads

  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
5
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
8
Views
4K
  • Poll
  • General Discussion
Replies
18
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
12
Views
1K
  • Programming and Computer Science
Replies
16
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
  • STEM Academic Advising
Replies
3
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
3
Views
2K
Back
Top