3 ms·
Disagree strongly. Math is often the easiest and simplest thing that works for the class of problems it exists to solve. Imagine trying to explain singular val
by michaelochurch 14y ago
Disagree strongly. Math is often the easiest and simplest thing that works for the class of problems it exists to solve.
Imagine trying to explain singular value decomposition without the notion of a matrix. No group theory, no well-formed concept of a linear transformation or function. You wouldn't be able to do it. No one even had such ideas before generations of mathematical machinery had been built.
I've come to the conclusion that there are lifer languages (/frameworks/technologies) and start-today languages. C, Lisp, Scala, and Haskell are lifer languages. (Now q, for those who've worked in finance, is even more of a hardcore lifer language.) You'll probably find them painful when you start out, but enjoy them a lot more once you really get them. Python, on the other hand, is much more of a start-today language. It's more modular, you can get up to speed quickly, and it's good enough the vast majority of the time. Also a start-today language is Java, with an IDE. PHP is a start-today language. This also applies to tools. Emacs or vi (both being keyboard-driven) are lifer tools. Unix is a lifer tool. IDEs are start-today tools.
This isn't about "better" or "worse". It's about tradeoffs: with a lifer language, it takes at least a few months before you get it (you start off hating it, because it feels weird and limited) but it becomes immensely powerful once you understand it in a deep way. Start-today languages give you a lot of power to start, but then the learning curve flattens. What's better is unclear. The lifer languages have a lot of benefits and depth, but in fast-moving disciplines like web programming I'd prefer that the frameworks be start-today rather than lifer-oriented.
Math is an extreme lifer language.
- davegauer 14y agoI think you make a really good point about the power of mathematical notation and conventions. However, I completely agree with the article. Do mathematical formulas have to use Greek letters rather than useful variable names like "distance" or "speed"? Does C's syntax actually allow you to express something you can't in Python? Or is it more terse for historical reasons? (And never mind that it's a good idea to use descriptive variables and function names in either language!) I think the keyboard-driven vs GUI tool analogy is very apt. vi is very powerful. Would the average user like it much if we made vi the interface for all text forms in browsers? I think sometimes it's desirable to present a friendlier form of a thing. (You obviously agree regarding web programming.) So I think the complaint is this: why is math always expressed in the tersest form? Is it really necessary? Why does math have to be restricted to the lifers!?
- ktt3ja 14y ago> Do mathematical formulas have to use Greek letters rather than useful variable names like "distance" or "speed"? I feel that using "useful variable names" like you describe would actually make it less useful because they overlap with common language and writing them out in say, formula, would make them too long (and thus less readable). I find that for any common topics, there's a subset of "default" variable names that are used so often that when you see it, you pretty much instantly recognize what it's meant to represent anyway. Using Greek letters is no problem as you get used to it eventually, and they make things stand out more than simply using the 26-characters Latin alphabet.
- gchpaco 14y agoAlso depending on the discipline you're working in you can make very confident assumptions about what a random mathematical object is depending on which language it is typeset in. In the context of programming language type systems, for example, a Greek letter is almost always an ML style type variable (think Haskell type a -> b -> a stuff) whereas Roman type is almost always a ground object (int, bool, whatever). Vectors are boldface, groups are capitals, fields are blackboard bold, lowercase letters in a group context are almost certainly group elements... In some contexts you're actually reaching for new alphabets (e.g. the Hebrew letters that are used for infinite cardinals) to be even more distinctive.
- michaelochurch 14y agoIn math, you have a trade-off between entropy (in the information-theoretic sense), rigor, and size of the document (e.g. proof). Entropy loses, so you get something extremely terse. This is one of the hardest things about reading math. It's not the notation. You can pick that up pretty quickly. It's that every character counts: math is high in entropy. We're not used to that. In fcat, if you pmterue the inenr ltertes of tyicpal wtterin psore at rnoadm, msot pleope can read it at csloe to nmroal seepd. However, in math, one has to pay attention to every jot, because y-hat (ŷ) means something different from y.
- j2kun 14y agoMathematical formulas with real-world interpretations can use those variable names. The problem occurs when the thing you're trying to express has no analogue in the real world. What variable name should I give to a reduced Noetherian subscheme of an arbitrary scheme? If you think "reducedNoethereianSubscheme" is a better variable name than X, then you'll love writing the notation for a function on it: f: reducedNoethereianSubscheme -> reducedNoethereianSubscheme It's surprising how everyone thinks they can make math better, but nobody even knows about what it's like to begin with.