4 ms·
Yeah, mostly because it is proprietary and crashes often (Mathematica 8 especially). The vast majority of students in my program are non-programmers. The only
by sn6uv 14y ago
Yeah, mostly because it is proprietary and crashes often (Mathematica 8 especially).
The vast majority of students in my program are non-programmers. The only 'programming language' they know is mathematica which I think is a real shame.
Worse than that is that most of them have developed a dependence on Mathematica; without it they are severely limited in what they can do.
We are provided with free copies (student version), but once we graduate will have to pay the full price if we want to continue using it.
I guess I just don't like having my abilities to solve problems tied to an expensive, closed source program. I do admit, it is very powerful.
- onedognight 14y ago> The only 'programming language' they know is mathematica which I think is a real shame. Mathematica is a real functional programming language. It's a lisp with CamelCase builtins and consistent naming. And that's without any of its math goodness. It has superb documentation and a huge standard library. If you master it, you can master any lisp with a simple translator. matlab is a toy by comparison.
- gituliar 14y agoA key concepts beyond Mathematica are pattern matching and rule-based programming, but not a functional programming. Yes, it has lambdas and first-class functions, but that's it. What about closures, for example? Therefore one would better not call Mathematica "a real functional programming language". BTW, rule-based paradigm and pattern matching is a standard feature of languages from Lisp family, e.g. Scheme. From that point of view Mathematica is not something unique.
- programnature 14y agoIt is a feature of those systems, but not the foundation. Mathematica is a term-rewriting system. This is a fundamentally different model of computation from the lambda calculus. There are many practical consequences of this, in terms of the design of individual language constructs, and in how the language is used generally.
- gruseom 14y agoThere are many practical consequences of this, in terms of the design of individual language constructs, and in how the language is used generally. That's interesting. Can you say what some of these consequences are?
- opminion 14y agoThe order of evaluation is a bit different than Lisp. It's perhaps more like programming mostly with Lisp macros.
- paulgb 14y agoHave you used Sage? It's not as tight as Mathmatica, but it's pretty solid and easy to jump in if you know python.
- vog 14y agoAt university in the "signal processing" lecture, I solved all exercises in Python while most students used MatLab (which was recommended by the lecturer). I just did it because I like Python, and expected my solutions to be clumsier and more "lowlevel". But when we compared our programs, I was surprised that MatLab didn't offer any more useful building blocks (libraries/functions) than Python, at least for our tasks at hand. And the Python code was quite clear, but that's probably a matter of taste. If it's about programming and math, Python really plays its strengths: Clean syntax, functional programming features, numpy, sympy, linalg, etc.
- vtail 14y agoI really don't understand this kind of aversion to proprietary programs. Mathematica is a high quality program with excellent documentation (I cannot comment on crashes - it never crashed on my but I'm not using it that extensively). Maintaining and improving such product takes a lot of effort that should be paid for. Student version is really inexpensive at $139 - most books cost comparable sums of money. Once you get a job with real income, you can either ask your employer to buy it for you or can afford to buy it yourself. As author(s) of Mathics will surely discover very soon, the devil is in details. There are lots of corner cases and improvement opportunities that takes many man-years to implement. It may seem easy to get 50% of functionality quickly; getting the other half is much trickier.
- vog 14y agoThe general problem with proprietary software in sciences (not just math) is that it cuts the chain of replicability and confirmability. Unless you have the source (in a human-readable form) and have the right to compile it on your own, this is a shaky ground to rely scientifiy results on. This is not an issue if you use that software for dicovering stuff. But it is a huge problem for e.g. mathematical proofs, or statistical analysis in other fields. Note that I'm not saying that proprietary software has more bugs. But it's a problem if your result depends on using a black-box whose creators hide their implementation from you. Also, even if your may read their code, this is worthless unless you are allowed to compile your own version from that. Also note that the same issue exists with hardware, but the question whether your processor adds and multiplies correctly is on a totally different level than whether complex algorithms have been implemented correctly.
- programnature 14y agoDo you think the world would be better off if Mathematica, Matlab, SPSS etc didn't exist? In reality, they make experiments more repeatable, not less. The real offender is the in-house, proprietary software developed by individual research groups. It is almost never open sourced. And it is far more likely to be riddled with bugs. Computer experiments are just that: experiments. Any real researcher employs multiple methods to confirm their results.