Hacker News new | ask | show | jobs
by le-mark 1379 days ago
My mind goes to various, unfortunate notational conventions.
3 comments

Such as? Many branches of mathematics have their own mutually unintelligible dialects of notation. Many longer papers or Ph.D thesis will just create notation just for the context of the paper.
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.

> 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.
Is there something you could say about these unfortunate notations or an article you you could point me to so that I can understand what they are?
For example, calculus uses notation and terminology that predates the modern limit-based field Weierstraß and others built. It's really confusing [1].

Statistics is even worse. A mix of old tricks developed to avoid computations when these were expensive. See [2].

[1] A Radical Approach to Real Analysis https://www.davidbressoud.org/aratra/

[2] The Introductory Statistics Course: A Ptolemaic Curriculum? https://escholarship.org/uc/item/6hb3k0nz

Limits are not an inherent part of calculus. You can do all calculus relevant for the physical world just fine with nilpotent infinitesimals if you but give up excluded middle.
I've heard of this constructivist approach to calculus, but hadn't made the connection with nilpotents. that's really interesting, could you explain why nilpotenxy and forgoing the law of the excluded middle relate to each other?
You can use nilpotents with classical logic and the excluded middle. This is called dual numbers and it's already a good model for "calculus without limits". They are like complex numbers, but instead of x^2=-1 you set x^2=0.

However, if you want to get really serious about that, you'll need that zero plus an infinitessimal be equal to zero. This is impossible in classical logic due to the excluded middle (which forces each number to be either equal to zero or non-zero).

Can you recommend a introductory calculus book that builds it up from dual numbers?
My point is not that limits are an inherent part of calculus. My point is that calculus as currently taught mixes infinitesimal-like notation that predates limits with limit-based calculus.
So, like, inequality against people with visual disabilities and dyslexics?