Hacker News new | ask | show | jobs
by User23 1379 days ago
An obvious one is that traditional mathematical convention requires single glyph variable names due to the unfortunate decision to save paper by denoting the product by juxtaposition. That’s an admittedly trivial example though, even though the higher order consequences are considerable.

Computing science is when notation came into its own. Younger mathematicians have taken those lessons to heart, but as the old saying goes, progress comes one funeral at a time.

Being forced to mechanically parse and interpret a syntax has a way of really bringing out any ambiguity.

6 comments

> that traditional mathematical convention requires single glyph variable names due to the unfortunate decision to save paper by denoting the product by juxtaposition.

It's not to save paper or because of the product. You don't know the solution to the problem you are working on from the beginning and most of the time is spent writing and writing and writing in a scratchpad trying to solve what you need. Anything longer than a single glyph for variables would be too tedious so everyone evolved to use single letters. And then the papers are written with the same convention since it's natural. You have variable names though with the use of subscripts with the added benefits that it can be (and is) used to elegantly group relevant variables together giving you some sort of abstraction

I once wrote a comment about it here on HN - language in maths is not a programming language used to tell a computer how to go from A to B, but a natural language used to talk about maths between peers. Every natural language have idioms, inconsistences and other quirks. Polish will not change for you so it's easier for you to learn it, it will change in the way that let's polish people communicate better with each other which also include a lot of historical and cultural happenstances. Same with maths

There are attempts like Esperanto and other artificial languages like that and I think any attempts at 'codification' of maths to use some programming language has the same chance of success of wide adoption

> They are attempts like Esperanto and other artificial languages like that and I think any attempts at 'codification' of maths to use some programming language has the same chance of success of wide adoption

Aren't existing programming languages already types of codified artificial math dialects which have seen wide adoption

That’s a good point.

Programming languages are more for humans than for computers. Otherwise we’d be writing our programs in 1s and 0s, and extending our editors in Emacs Binary and VSCode BinaryScript.

> language in maths is not a programming language used to tell a computer how to go from A to B, but a natural language

Right, we're on the same page, I just think this is a bad thing and you evidently think it's a good thing. I'm well aware many mathematicians don't, because it's how they were trained and unlearning is the hardest kind of learning. The ambiguity[1] of natural language is observably ill-suited for formal reasoning, and the experience of computing science has shown this conclusively.

Do bear in mind that the pioneers in our field were virtually all trained mathematicians. They were well aware of the historic faults of the field because having to make programs actually work forced them to be.

The legacy fuzzy pencil and paper approach of traditional mathematics is going to end up being to proper formal mathematics just as what's now called philosophy is to formal logic.

[1] Let's not confuse ambiguity with generality.

> single glyph variable names due to the unfortunate decision to save paper by denoting the product by juxtaposition.

Programmers tend to have this lack of fluency with written math that they completely miss: the concise names are not to save paper or make writing easier or anything like that. They're because they make the structure of expressions easier to visually identify and parse. The shapes of expressions are an incredibly important feature of the language and often contain implicit structural analogies. You need to be able to see those analogies to correctly read mathematics, and long variable names would obscure that part of the language.

I suppose it's similar to having enough fluency in a natural language to mechanically translate the words of a poem, but you can't properly read things like the metre, so you've unknowingly missed half of what the author originally wrote and lost it all in translation.

I haven't encountered much resistance to n_{arbitrarily complex subscripts}
> An obvious one is that traditional mathematical convention requires single glyph variable names due to the unfortunate decision to save paper by denoting the product by juxtaposition.

Generally you'd use upright text in square brackets to denote longer variable names, the notation is often seen in applied fields. But this quickly becomes clunky with longer expressions.

> Being forced to mechanically parse and interpret a syntax has a way of really bringing out any ambiguity.

This is absolutely beautifully said user23. I as a programmer often struggle with understanding notations used in some papers.

There's a value in compact / structural notation though, to an extent of course. But o come from the world of verbose application programming :)
Like APL notation being a tool of thought.
A bit of that even though apl arguably push things too far (maybe that's what you implied). Parametric types also help making point, abstract combinators, recursive schemes.. All very helpful to define and manipulate ideas.