3 ms·
Mathematica is a great tool. But in my case, there are two huge pain points which limit my use of Mathematica: 1. Horrible REPL experience. Yes, the notebook i
by jwr 8y ago
Mathematica is a great tool. But in my case, there are two huge pain points which limit my use of Mathematica:
1. Horrible REPL experience. Yes, the notebook interface can display graphics, cool. But I would take Emacs with paredit over it any day. After structurally manipulating Clojure code in Emacs with paredit, using the Mathematica interface is like a throwback to the 70s. You mean I need to balance and match my parentheses myself?! Seriously? Debugging larger expressions is like stabbing yourself in the eye with a dull spoon.
2. Badly designed data structures, specifically maps (also known as hashes or associative arrays). This is the most universal data structure, that can be used for almost anything, storing mappings from keys to values. Using maps in Mathematica is awkward and feels like doing precision watchwork in boxing gloves. I don't know why this doesn't get more love, after all if all your data fits in a matrix, Matlab is the competing tool, so better data structures would let Mathematica get a nice competitive advantage.
If these two areas were improved, I would likely subscribe to Mathematica and use it much more.
- wemdyjreichert 8y agoI think you may not be the target market. A lower-level option is often more powerful, but carries added complexity and a steeper learning curve. It is my understanding that Mathematica is more valued in academic settings where not everyone wants to deal with learning Clojure. Many poor people rent furniture rather than buying because it's not feasible to muster the initial investment, and must continue doing it in spite of the long-term loss. The same is true here: not everyone uses Clojure over Mathematica because many cannot find the large chunk of time to learn it, though its use may produce a net gain of time long-term. > Using maps in Mathematica is awkward and feels like doing precision watchwork in boxing gloves. Can you elaborate a bit more on this? I haven't used it before.
- deleted 8y ago[deleted]
- occamschainsaw 8y agoMy experience has been the opposite of this. Mathematica/Wolfram lang seems to be a much more functional(as in paradigm) language, because of anonymous/lambda functions and “Tables”. Even loops are discouraged. I use it for math/science stuff and I am delighted every now and then when I figure out how to use mappings in a smart and concise way. My coding style in Python changed quite a bit after learning Mathematica. However, I am not a professional coder so take this comment with a rock of salt.
- jwr 8y agoMathematica borrows a lot of good ideas from many languages and paradigms. But programming languages are a spectrum: whatever you consider "good", there is usually something "better" slightly above it, you just might now know about it yet (the Blub Paradox). Moving from Clojure to Mathematica/Wolfram is a huge downgrade as far as data structures are concerned. And associations are a particularly big failure.
- grigjd3 8y agoAssociations came very late to Mathematica (version 10 if I remember right) and the whole of the tools in Mathematica had to be converted over. The result was incomplete.