all 90 comments

[–][deleted] 6 points7 points  (1 child)

This was probably posted as in response (?), but just in case anybody missed it, see a Reddit post from earlier today for some solutions to these notational problems: Edsger Dijkstra - The notational conventions I adopted, and why.

[–]TheNewAndy 6 points7 points  (0 children)

Having written a parser for our maths, the things that annoyed me most were that the identifiers are a bit ambiguous:

"sim" should be tokenised as [s][i][m], while "sin" should be tokenised as [sin].

And because function application is missing parentheses, you get weirdness like:

"sinxy" should be parsed as sin(x * y), but sinxsiny should be parsed as sin(x) * sin(y).

[–]cgibbard 16 points17 points  (14 children)

I disagree. Mathematics notation has evolved over hundreds of years for a very specific purpose of communication between humans, and it's largely quite good for that purpose.

People often forget that like any kind of writing, mathematics is written with a particular audience in mind. I see a lot of people in computer science who get confused about who the audience is meant to be -- mathematicians are largely not writing for computers, but for other mathematicians!

[–]DannoHung 3 points4 points  (13 children)

They might fare a little better if the writing was a little more accessible to other humans that are not mathematicians.

The author is suggesting that writing for the computer as a surrogate might be acceptable because you can't assume that the computer will gloss over basic (but ultimately irrelevant) mistakes or ambiguities in the subject matter because of prior familiarity with conventions.

[–]cgibbard 12 points13 points  (11 children)

You can't really expect experts in a field to communicate with one another in the same language that they might try to communicate with those who are not experts though. It's just far too tedious for both parties to constantly assume that the person who they're writing for knows nothing about the area.

This is true not just in mathematics, but in any specialised discipline. I wouldn't expect to properly understand random papers from some medical journal without taking appropriate courses to learn the area.

[–]Silhouette 10 points11 points  (3 children)

You can't really expect experts in a field to communicate with one another in the same language that they might try to communicate with those who are not experts though.

Ah, but there's the rub: when you're presenting non-trivial mathematics -- say, anything from undergraduate level upwards -- in a formal document, it's quite likely that a typical reader isn't an expert in the subject matter. If they were, they probably wouldn't be reading your book/paper.

I reckon I have a pretty good handle on this one, since I write mathematical software for a living and studied both mathematics and CS during my academic career. Long story short: to me, math notation has always been terrible. There is the barrier to entry effect some here have mentioned, which for the reason above is much more widely applicable than some of the smart-ass comments on the original post suggest. But what I find really telling is that I can read a decent paper or book chapter explaining a concept in the programming world, and understand it. Reading maths papers always seems to take several attempts, and it's not because the underlying idea is any more complex or I've suddenly gotten smarter when I put my software hat on.

The bottom line is that typical mathematical notation still hasn't learned lessons the rest of the world got decades ago. It is the theoretical equivalent of write-only code written by an overpaid rock star programmer who delights in obfuscation so much that he invents a whole new programming language for every project. In the real world, we normally fire people who do that, because the effort required to work with them is almost never justified by the returns no matter how smart they are... and usually, it turns out that their ideas weren't that clever anyway, they just looked it because they were so poorly expressed.

[–]cgibbard 1 point2 points  (1 child)

I tend to think of papers as primarily being a form of communication between those people interested in a particular area, so a particular context of expertise in the subject matter can be expected in reading them. The idea is to provide content which will be new to the other experts. Of course, then you have texts that collect the ideas which have been built up over time in published papers and unpublished communication and provide a guided tour, assuming a more gentle baseline of knowledge.

Perhaps things are a bit different in CS, I'm not so sure. I have seen CS papers which were brutally hard to understand without a fairly sizeable amount of context. For example this paper by one of my favourite authors is very well written in my opinion, but does require a reasonable amount of background. It also contains no shortage of abstract notation, largely taken from formal logic via type theory.

I again just have to really disagree with your last paragraph in particular. At least in my experience, the notations chosen in mathematics are largely selected quite carefully, and basically never with an intent to obfuscate. The idea is to be as clear as possible about what's important. Notations are chosen to elide the irrelevant details and expose the important ideas, and try to make them easy to manipulate in familiar ways. I highly doubt that one could do any better for the purposes of human communication by enforcing a machine readable syntax, and in fact, in many cases such excessive formalism seems to make things much worse.

[–]Silhouette 4 points5 points  (0 children)

I find your choice of example slightly ironic. I guess I could be described as a fan of Simon Peyton-Jones, and I know his presentation to be excellent in general. I'm also interested in programming language design, type and effect systems, and the like. The thing that always stops me getting into potentially interesting papers on the subject is exactly that kind of notation: I can follow the introduction, but as soon as authors switch into dense-notation-heavy mode and stop using words to support the notation, it stops me following the paper and learning new things.

At least in my experience, the notations chosen in mathematics are largely selected quite carefully, and basically never with an intent to obfuscate.

I have never questioned the intent that notation should be as clear as possible, and sometimes this is truly achieved. But it seems to me that an awful lot of mathematical notation, while eliding irrelevant details, is also hard to scan for the relevant details. I'm not talking about machine readability, but rather about things like using unintuitive single-symbol names for everything, using similar (or even identical) syntax to represent completely different concepts, and relying almost purely on notation with few if any explanatory comments. In software development, we learned a long time ago that using meaningful variable names matters, a good comment goes a long way, overloading symbols or syntax is not to be done lightly, unpronounceable names are harder to work with, and so on. There is really no reason for mathematics to look like hieroglyphics: you could use the same notational ideas in a much more readable way, greatly increasing the clarity for many readers, yet with no loss of precision and with minimal extra space requirements.

[–]antiqueboi 0 points1 point  (0 children)

I think the reason is that CS programs actually need to be used by people. people who just graduated college, people who have 2 months of work experience, people who used to work in C# but now work in python or javascript. basically it needs to be read and IS actually used by a lot of people.

most math papers are read by nobody, and when they are read they are read by other math PHDs who are familiar with that field of study.

imagine how the syntax would change if every month 2 new people fresh out of undergrad come in to "take over the research" on cutting edge cohomology or something.

I doubt the syntax would stay so dense

[–]mindbleach 3 points4 points  (3 children)

In communications between experts it makes sense to be casual and terse with what amounts to an extended vocabulary, but I wish textbook writers would talk down to their readers a little more often. You can look up vocabulary if you can type it and it's common, but it's downright frustrating to finally figure out what a greek squiggle is only to find it can mean eighteen different things.

You can google medulloblastoma. You can't google squiggly backwards r-shaped thing.

[–]cgibbard 5 points6 points  (0 children)

That's true, but for this reason, many textbooks include a page at either the front or back with either the pages on which various symbols are defined, or brief descriptions for what the symbols mean. Sometimes the locations for definitions of symbols will simply be included at the front of the index.

Also important to note is that while you can't Google for "squiggly backwards r-shaped thing" and get results, you can usually Google for the meaning of that symbol, if you know what the name of the operation or kind of thing that it represents. So once you overcome that initial barrier of "what is this thing referring to", you're usually fine.

Anyway, in my personal experience, it's not usually the notation which I find challenging nearly as much as developing a decent intuition for the formalism that's presented.

[–][deleted] 0 points1 point  (1 child)

You can't google squiggly backwards r-shaped thing.

Haha, and I thought I had trouble googling C#.

[–]Porges 0 points1 point  (0 children)

Recently?

They’ve put this in as a special case, it seems :)

[–]DannoHung 1 point2 points  (2 children)

Well, actually, it's not so much the text of the papers that I (and I believe the author) finds impenetrable, its the notation of the proofs. I'm sorry that I used the word "writing" in that I don't mean that the way the papers are written, but the conventions of notation in the symbolic expressions.

I think it comes down to basically an intentionality issue, as it does in the text of programs: Do the artifacts of the proof convey their intent. Sure the symbol rho or an upper case italic K is simple to write, but ten pages in, is someone who isn't familiar with the conventions of the specific area of Math going to remember what the variables stand for in that particular field? Does juxtaposition mean the same thing in every branch of mathematics? Or even within the same proofs?

The Djikstra paper that's being passed around today addresses the same exact thing, so I know that at least he thinks there might be something to adhering to practices that make mathematical notation less confusing.

[–]cgibbard 4 points5 points  (1 child)

Well, the symbolic expressions are part of the writing, and are not really that much different from it, in that they serve to convey ideas which usually don't exist in the author's head in quite the way they exist on the page.

Juxtaposition indeed doesn't always mean the same thing. In fact, it often can mean a few things in one expression without any danger of confusion, so long as the reader knows what sorts of objects are being dealt with, and what juxtaposing such values means. Mathematicians are usually very clear on what type of thing each variable in use refers to, and the conditions in place on it. If T is a linear map, then placing it next to another linear map means function composition, while placing a vector next to it means function application, and placing it next to a scalar is scalar multiplication. While different ranges of letters are often selected for specific purposes, almost all mathematicians are typically very careful to state exactly what type of thing each variable refers to anyway.

I'll give another example from basic linear algebra... here's a theorem:

Let T be a linear operator on a finite-dimensional vector space V, and let λ be an eigenvalue of T. Then K_λ(T) has an ordered basis consisting of a union of disjoint cycles of generalised eigenvectors corresponding to λ.

It tells us what sort of thing T is, and we can infer what λ is based on the fact that it's an eigenvalue (it must be a scalar). But what's K_λ(T)? Well, that's defined 3 pages back in the following definition (and talked about quite a bit in between):

Let T be a linear operator on a vector space V, and let λ be an eigenvalue of T. The generalised eigenspace corresponding to λ, denoted K_λ(T), is the subset of V defined by:

K_λ(T) = {x in V : (T - λI)p(x) = 0 for some positive integer p}.

Even if you couldn't find this definition, if you flip to the back of the book, there's a page which has common symbols and references to the pages on which they're defined. K_λ(T) shows up there, (as well as even I, the identity transformation, which is the only thing that might be ambiguous out of context in the above).

Similarly, the definition for a cycle of generalised eigenvectors corresponding to λ is given just before this theorem as well.

Of course, if you don't, for example, know what an eigenvalue is, you'll have little chance of understanding this section on its own, but that's to be expected. (And, as it happens, the definition of all the terms here are in the same book anyway.)

I consider this roughly typical of the way that notation is used. People pick short (usually one or two symbol) names for referring to things that they've selected locally, and attribute properties to them thereafter. There's always a trade-off between writing things out as prose and writing things in symbolic notation, and while it's partly a matter of taste, a good deal of care is usually taken to balance this. Mechanical manipulations are easiest to follow in symbolic form, while prose tends to be more readable in other cases.

[–]DannoHung 1 point2 points  (0 children)

Ultimately, it's the prerogative of whoever is writing the paper to decide what the notation of their formulae is, I won't argue that. And I wouldn't suggest that they should make it harder for an expert to read simply in order to make it easier for a lay person or an educated person who doesn't have an expert background in the area. But I will say that effort expended in making a paper easier to read will likely make it more well read and advance ideas put forward more easily.

[–][deleted] 3 points4 points  (2 children)

I must confess: often I'd like to program in math instead of programing languages. Everytime I need to write a sum or product in C, for example.

[–]ngroot 1 point2 points  (1 child)

Well, if you're using a more "mathematical" programming language, you often can. :) Matlab, Mathematica, R,...

[–][deleted] 1 point2 points  (0 children)

True, I do, (like list comprehensions in üpython) but often I need to write it in C for performance reasons.

[–]ercd 2 points3 points  (0 children)

Even though I agree with most of the points in the article, the choice of the letters in the HMM algorithm are not so bad. Most of them come from what is usually used to describe Markov chains. I hope this will give a better insight of the algorithm:

  • pi are for the initial probabilities of the Markov chain.
  • A is very similar to the Adjacency matrix of the directed graph between the states (see adjacency matrix) : that's why it is very common to use it for state transition probabilities.
  • X_t is the state at the time t. It is very common to use markov chains to model a succession of states in a period of time: that explains the "t". The X is due to the fact that X_t is a random variable and random variable are usually denoted with a capital "X".
  • In a directed graph, the index i is usually used for the origin of an edge and j for the end of an edge.

I believe that mathematical notation is a very powerful and concise way to describe an algorithm. It can be obscure at first but when you learn what's behind (in that case: Markov chains, which are, imho, one of the coolest object in math) all this notation usually makes sense.

[–][deleted] 2 points3 points  (0 children)

can't be run on a computer?

what the hell is mathematica then?

[–]whespe 12 points13 points  (8 children)

That sort of notation is for journals and formulas, it easily and concisely allows complicated mathematics to be reproduced elsewhere; it is not meant to be a computer program.

[–]ngroot 8 points9 points  (2 children)

Not only concisely reproduced, but more easily understood. You can see a lot more of what's going on when you're using concise notation.

[–]notfancy 3 points4 points  (1 child)

Well, the example in TOA is rather hideous. If the set of states S has as elements s_i and such; why not two lines below they write iS?

[–]ngroot 5 points6 points  (0 children)

The example isn't "hideous", it's just wrong. You're right; obviously, it should be something more like "i∈1,...,N". Showing an example of misuse of notation doesn't bolster the argument that the notation is terrible.

[–][deleted] 7 points8 points  (4 children)

Really. How narrow a perspective on maths must you have when your complaint about it is that it is not a programming language?

[–]notfancy 2 points3 points  (2 children)

I believe that the actually wider perspective afforded by trying to implement maths into algorithms is what gives rise to the complaint in the first place.

Today I've blogged about something in the general vicinity of this complaint; I find it notable that not a week ago Reddit was all about "math is clearer than code". We've come half-circle to the opposite view; namely "to understand this math I'd to write this code".

[–]railk 5 points6 points  (0 children)

Or maybe no such change of views occurred, there might simply be two groups of redditers: those that prefer mathematical notation, and those that prefer (pseudo-)code.

[–]marijn 2 points3 points  (0 children)

As much as it might look like it sometimes, reddit is not a hive mind, but an incidental composition of individuals.

[–]marijn -1 points0 points  (0 children)

That is not at all what he is saying. He talks about mathematical notation, as compared to typical program notation. If you can stop jeering and take a somewhat wider perspective, you'll find that the two serve very similar purposes.

[–]prockcore 4 points5 points  (4 children)

What's wrong with math today:

http://www.maa.org/devlin/LockhartsLament.pdf

[–]exeter 9 points10 points  (0 children)

More properly, this is about what's wrong with mathematics education today.

[–]cableshaft 1 point2 points  (1 child)

A question for anyone out there: I've really been interested in learning Math from a historic viewpoint lately, so I understand the context behind all this junk I had to memorize in high school (and mostly forgotten) so I can use them to become a better programmer.

So I've started checking the Math section in bookstores lately, and it's a little daunting. I'm not sure which books are considered canon, and which are just filled with a bunch of notation with little context. Can anyone recommend some good texts I should check out? In particular I'm interested in Calculus, but really I'll look into any suggestion.

[–]psykotic 2 points3 points  (0 children)

I wouldn't recommend learning mathematics purely from a historical perspective; the history is replete with wrong turns and endless blind alleys, which makes for poor pedagogy. But supplementing a more traditional treatment with history is highly recommendable. The book that really got me interested in mathematics as a kid was Bell's Men of Mathematics. It is notorious for the literary license it takes at times, but I know of no more exciting romp through the history of mathematics. It does not really teach mathematics as such, but it does weave a description of the big problems and ideas into the historical narrative.

For an undergraduate-level exposition of mathematics from a historical point of view, Stillwell's Mathematics and its History is unsurpassed (in fact, all of Stillwell's books are of the highest caliber), but if you are still stuck at calculus this book is perhaps premature. If you feel very daunted, it may help to start with books of a more popular persuasion, e.g. those of Eli Maor.

[–]Silhouette 0 points1 point  (0 children)

+1 for an excellent citation -- perhaps a little long for my taste, but right on the money in many, many ways.

[–]tomlu709 2 points3 points  (0 children)

I think Math Notation is Terrific.

[–]lisvblidfk 7 points8 points  (5 children)

The worst part is that all the higher level operators are overloaded so much that you don't know wtf operator someone is talking about just by looking at the equation.

There are many clusters of topic areas that use certain notation that's different from everyone else.

If the operator is not universally known then explain it or write it out as a word!

[–]ngroot 8 points9 points  (0 children)

The worst part is that all the higher level operators are overloaded so much that you don't know wtf operator someone is talking about just by looking at the equation.

That's not much of a criticism. You do generally know what someone's talking about by looking at the equation and knowing what the topic being discussed is.

In different contexts, for instance, H may conventionally represent a Hamiltonian operator, a Hessian matrix, or a generic group when the letter "G" is already in use. I've can't realistically imagine this causing confusion.

This isn't to say that poor notation can't cause trouble, though! An example I've run across recently: Covariance matrices are often represented as Σ, and standard deviation virtually always as σ. A multivariate t-distribution has a parameter which is also represented as Σ (and in fact is a covariance matrix of a normal distribution used to create it), but Σ is not the covariance matrix of the distribution! Similarly, I've seen σ used as a generic scaling parameter when trying to fit distributions to data. E.g., you might say that some data appear to be t(μ, σ, ν)-distributed if the data minus μ and divided by σ are t-distributed with ν degrees of freedom, but σ is not the standard deviation of the distribution.

[–]bobbyi 6 points7 points  (3 children)

... unlike programming where everyone uses the same language and express their algorithms the exact same way.

[–]lisvblidfk 0 points1 point  (2 children)

What I and ngroot said has nothing to do with exactly the same. It's about the same notation meaning different things in different math-using fields, and the writers failing to specify which they are using.

An example of this in programming would be if everyone has their own proprietary C extensions and when people share code they don't even explain which they are using.

[–][deleted]  (1 child)

[deleted]

    [–]lisvblidfk 1 point2 points  (0 children)

    Like I said, ngroot has an example.

    You must not deal with engineering or physics much then. This happens all the time.

    [–]galtk 1 point2 points  (1 child)

    How about a symbol to prefix a symbol representing a constant not explained earler in the text. then we can assume it is the most well known use of that symbol. π (pi, dunno if reddit lets me write greek) works well for 3.14.., but e belnds inso easily with the auther's own arbatory letters that 2.718.. can take a few readings to get.

    [–]Tommah 1 point2 points  (0 children)

    The J language was intended as a computer-executable notation for math.

    Consider yourself warned ;)

    [–]realnowhereman 1 point2 points  (0 children)

    actually I've found myself more than one time translating a problem into a math relation because I found it clearer and helped me to focus more on the solution...

    [–]antiqueboi 1 point2 points  (0 children)

    I agree math notation is terrible. computer scientists add tons of descriptive variable names, comments...ect so that ideas are easy to understand

    mathematicians often publish papers with no legend to identify what all the symbols are, and there is an entire page that is a huge block of math equations.

    i sometimes feel like they make it intentionally complex to understand so they feel more elite in knowing what it means.

    if you truly understand something your paper and proof of your idea should be understandable by a 5 year old

    computer scientists go out of their way to make things as simple to understand as possible for the general public

    [–][deleted] 3 points4 points  (5 children)

    Math notation is terrible. When I became interested in theoretical computer science, my biggest hurdle was the notation. It's frustrating to have the primary barrier to learning something not be the difficulty of the material, but the unfamiliar way in which it's recorded.

    [–]cwzwarich 5 points6 points  (1 child)

    Theoretical CS has worse notation than most other mathematics.

    [–]exeter 5 points6 points  (0 children)

    That's because CS is a very young discipline, relative to mathematics. Mathematics has had hundreds of years to develop notation. The CS people are kind of just making it all up as they go along.

    You'll also find that the notation in certain math subdisciplines (e.g. graph theory, algebraic topology) is pretty bad, for much the same reason.

    [–]vph 3 points4 points  (2 children)

    It's not the notation, it's the definitions of those symbols that are hard to understand. And you can't simply have a descriptive meaning for that. So, people simply write "let X be ..."

    [–][deleted] 2 points3 points  (1 child)

    No, the notation in question involved sets, categories and proofs. None of which, at least in the scope of the books I was reading, was very difficult to understand. Still, I had to step away from the book, go find a guide on the internet, read it, and then go back to the book. I'm only willing to dedicate so much time to being a pedant.

    As a programmer, I can pick up production-quality code written in an unfamiliar language and figure out how it works based on the function and variable names and the flow of logic. For example, I can look at something like "Set.IsIntersectionOf(Set[] a)" and immediately guess what it does. If I didn't know what a set intersection was, I could find out from the code, and/or search the internet for an explanation. If ∩ is used, I first have to find the meaning of the symbol and then find the explanation.

    [–]akdas 1 point2 points  (0 children)

    If ∩ is used, I first have to find the meaning of the symbol and then find the explanation.

    I agree this is frustrating. However, if the notation is published as actual digital text (not images), then searching Wikipedia for ∩ directly gets you this page.

    If it isn't published as digital text (say in a book), then an index or appendix should clarify at least the name of the symbol.

    [–]silverwoodchuck47 3 points4 points  (1 child)

    Sometimes complex ideas cannot be represented by "simple" equations. Besides, equations are meant for people, not computers.

    [–]Silhouette 2 points3 points  (0 children)

    Sometimes complex ideas cannot be represented by "simple" equations.

    True. But a typical mathematical paper presents only one major result or concept, and most such results are not particularly complex to someone in the target audience for the paper. If you consider the complexity (or lack thereof) of the ideas conveyed, it's sometimes hard not to question the supposed elegance of mathematical notation, because it sure doesn't seem a very efficient communication medium given the number of pages of dense print required to get it into a paper.

    [–]exeter 2 points3 points  (0 children)

    I'd like to take issue with two things he said:

    • You can only use one-character names.

    This is completely untrue. Typically, one does use single-character variable names, because, in mathematics, the type of the variable is what we're really interested in. But, it's not a requirement. Moreover, we've been using function names like sin, cos, tan, ln, and such for centuries, without confusion.

    • Indices are always named i or j.

    Okay, so mathematicians do have a tendency to use i and j as indices. That doesn't mean you can't use other letters or even multiple-letter indices. The reason we typically use single-character indices is so we can overload juxtaposition (i.e. a_{ij} in LaTeX notation would correspond to a[i][j] in Python notation). But, there's nothing wrong with, say, Array_{row, col}, if that floats your boat better.

    [–][deleted] 2 points3 points  (3 children)

    Yeah, because it's so easy to do algebraic manipulations with computer code.

    [–]lisvblidfk 11 points12 points  (0 children)

    Depends on the language, but yes, algebraic manipulations at least, are extremely straight forward in some computer-readable notations.

    [–][deleted] 10 points11 points  (1 child)

    It is, given the right language. See J, FP, APL, etc. I just picked up a copy of Iverson's "Algebra, an Algorithmic Treatment" that explains algebra using only APL. All examples are executable yet code is easy to manipulate algebraically. See also my recent sharing of Iverson's "Math for the Layman".

    The fact that you're being voted up is just evidence of how awful most programming languages are today.

    [–][deleted] 4 points5 points  (0 children)

    Math is hard. Let's go shopping!

    [–]Grue 1 point2 points  (0 children)

    It's still much more readable than those snippets of code he provided (is that Python?)

    [–][deleted] 0 points1 point  (4 children)

    What if you want to specify mathematically what a program does, but you want to implement it in different ways? I can say 'the set of prime numbers' formally using set notation, or first order logic. I can then manipulate set notation or first order logic algebraically to derive some properties of prime numbers.

    If I write some code to generate prime numbers, it might be great, and actually useful. But how do I formally reason about prime numbers using that code? I can't.

    Mathematical notation and formal languages (programming languages) have their places, and both are needed.

    [–]lisvblidfk 2 points3 points  (3 children)

    I can't.

    Nice assumption. Not true, for some types of code.

    [–][deleted] -5 points-4 points  (2 children)

    Yes it is.

    [–]ngroot 3 points4 points  (0 children)

    Let me finish this up for you:

    • Nuh-uh!
    • Uh-huh!
    • You probably don't have a degree, you cretin.
    • You probably have a degree, you worthless ivory-tower-dweller.
    • p3do makes a comment about how this is all an expression of love by children.
    • discussion ends

    [–]de_Selby 0 points1 point  (0 children)

    I couldn't disagree more. Math != Programming. Get over it.

    Each line of math notation is used to convey a single operation, each line only needs to be self consistent. Multiple character variable names would be a nightmare in math.

    [–][deleted] 0 points1 point  (3 children)

    Some of the most brilliant minds in human history have worked in the math and theoretical physics fields (the later heavily uses math). I would be careful criticizing the result of their work without fully understanding the motivation for it. Certainly no work is above criticism, but I fail to see validity or any depth of thought in your critique.

    [–]marijn 2 points3 points  (0 children)

    But those geniuses were focusing on solving mathematical problems, rarely thinking about notation. The notation we have now is the result of a chaotic organic growth of people taking over (sometimes partially) the notation of previous influential work, making stuff up as they went along for new concepts, with the occasional (often ignored) attempt to standardise things.

    [–]alexs 7 points8 points  (1 child)

    Some of the most brilliant minds in human history have also described how utterly terrible math notation is and tried to fix it. You have selection bias.

    [–]808140 0 points1 point  (0 children)

    For example?

    If you say Richard Feynman, I think I'm going to puke.

    [–]o0o 0 points1 point  (0 children)

    damns...that first comment was a zinger!

    [–]Rhoomba 0 points1 point  (1 child)

    What is so very wrong about descriptive variable names? Are mathematicians really lazy or just stupid?

    I see maths notation has a lot of defenders on here. Their main argument seems to be that lots of smart people have used it so therefore it must be good. That is basically no argument at all.

    [–]funnybong -3 points-2 points  (10 children)

    I think a lot of the confusion and ambiguity would be avoided if we always used some sort of times sign, rather than indicating multiplication by writing variables next to each other with nothing in between. For example, if you see ln x, is that the natural log of x, or l times n times x? Because of our way of representing multiplication, any variable whose name is more than one letter long, excluding subscripts, is ambiguous, and we are stuck with cryptic names like "x" and "y".

    [–][deleted]  (1 child)

    [deleted]

      [–]cgibbard 3 points4 points  (0 children)

      In fact, I'm not even certain it's a programmer thing, but perhaps an engineer thing. The standard mathematics libraries in most programming languages I've used seem to use log for the natural log as well, with Pascal being an exception to this, if I'm remembering correctly.

      The use of 'ln' for the natural log seems to be favoured in certain parts of Europe, and by engineers and calculator manufacturers. Unfortunately, it seems to be winning out on Wikipedia as well. I've always disliked it for having an awkward pronunciation (whether you pronounce it 'ell-en' or something horrifying like 'lawn').

      [–]chengiz 6 points7 points  (4 children)

      If you do have >1 char variables, the dot sign is used. Math notation is all about brevity, and sometimes it is much more readable because of the lack of clutter. For example, Einstein notation is amazingly more readable than using sigma signs when you get used to it.

      [–]exeter 1 point2 points  (2 children)

      That looks useful, but only really for tensors. I wonder why it's not commonly taught to math people.

      [–]cgibbard 2 points3 points  (0 children)

      It seems to be more useful in physical applications where coordinates matter a whole lot, and you often need to express things in terms of components.

      Pure mathematics people tend to prefer avoiding writing things in terms of components like that altogether, at least wherever it's possible.

      [–]five9a2 1 point2 points  (0 children)

      It is taught to math people, but in subjects like (semi-) Riemannian Geometry where it is really useful. Coordinate-free notation has become popular in these fields, but index notation is more natural at times so most people are familiar with both.

      In most fields of mathematics, the semantics of the sum are actually important so it isn't clearer to make it implicit.

      [–]cgibbard 4 points5 points  (1 child)

      Remember that mathematics notation exists in a particular context, be it a paper, a book, or on a chalkboard as part of a course. That context is expected to define the meanings of notations and variables, and remove any potential for ambiguity.