4 ms·
Mathematica is adequate for prototyping or detailed Science/Engineering etc analysis provided datasets aren't large and the codebase is small. Mathematica is v
by rambulator 11y ago
Mathematica is adequate for prototyping or detailed Science/Engineering etc analysis provided datasets aren't large and the codebase is small.
Mathematica is very fast for your initial development, but you run into massive bottlenecks when you jump from your small test cases to real world data. In other words you get something up and running quickly, then spend a massive amount of time manually (there is no proper debug environment) debugging edge cases and trying to optimize it for real world cases. The time savings aren't really there for many projects, as you end up spending more time than if you had used something like C++.
The last version of Mathematica (v10) was released over a year ago without an update to the Eclipse plugin, making an already pretty archaic development experience impossible.
The front end debugger isn't a 'fair' debugger. When it works (which isn't often) you are limiting to only running through small code snippets as its impossible to trace anything.
There is no profiler.
The number of builtin functions is huge but many are effectively deprecated in terms of their performance or existing bugs. Many of the functions like Map (/@) aren't optimized. The irony is that once you have optimized your code it ends up looking like that from any other language i.e. you have moved a lot of Wolfram's high end functions.
I totally agree with others comments that code re-use is really difficult. Many of Wolfram's comparisons compare code size with code complexity. Its not always to the case, but 20 lines of Wolfram language can often be very difficult to trace and understand.
Access to curated data is nice, but in many cases there is no information on the accuracy or tolerances for data and it has been truncated (rounded to the point of irrelevancy) or is missing elements. So like anything you still need to verify it or access it directly from other sources. Things like units cannot be used in functions/loops as it slows runtime to a crawl.
But horses for courses, the language is exciting for small projects and maybe a jumping off point for people moving into full development of something.
One of the biggest issues facing Mathematica is simply that Wolfram Research's focus is no longer Science and Engineering but rather the Internet of Things.