While the maths and language disciplines created their own systems of symbols to express concepts, the programming discipline, which uses languages that provide a symbolic interface between humans and computers, has not once introduced a new symbol to simplify the concepts of programming. While the functional programming discipline has introduced λ (lambda) to symbolize a function in the abstract, it is not easily available within the language itself. The Racket language has made it possible to do this, but this is but one lone exception.
The keyboard has dominated the programming scene since its inception, but it was designed primarily for office workers and typists, not mathematicians or any other specialized domain of knowledge that uses its own set of symbols.
This symbolic void in computer science has encouraged language designers to re-use symbols from the standard typist set, and this simply doesn’t work. The symbols already have many meanings associated with them, and these meanings are useful as is, so overriding them to mean something else results in a slew of arbitrary decisions about which symbol is more intuitive for the concept one is trying to express, and a number of work-arounds when the programmer wants to add these symbols under their original meaning, or literally, in a string.
The lack of transferrable knowledge between programming languages is due to the lack of accessible symbols on our input devices, and a lack of formal symbols within the profession. I see this as a significant pain point for programming, and I believe this is a problem that could be addressed, but hasn’t.