A Class of Programing Languages: Math Languages
canvas is scum. invented by scum. The likes of C, C++, OpenGL, etc, whose tenet is: hi, my name is speed. Ever since, programing is hell. [see HTML5 Canvas vs SVG]
vast majority of programers, 99%, have no idea of mathematical language. Talking to them in lang debates, is like to idiots.
all these langs programers are familiar with,eg C C++ java python perl ruby golang C# and even Haskell, are non-math languages.
in the other universe, is Mathematica, matlab, APL, julia… , these, are math languages. (note: haskell is NOT.)
most of these industrial programers, since they've never seen a math lang in their life, cannot conceive some points in lang debates.
thus, debating them is like talking to stone. Even you see their points, but they don't see yours, after repetition.
typically, these folks revolve around concepts like reference, pointer, memory, certain “garbage collection”, and “hi, my name is speed.”
and other stuff they are found of are like: “threads”, “float, int, long, double”, some IEEE stuff, OpenGL
and, of course, they prefer 0 based index. [see Should Array Index Start at 0 or 1?]
these langs, are like greedy algorithms. They win at outset, but lose big time in the end. As far as efficiency and speed goes.
but, commercialism is on their side. Thus the rise of C, Unix, the grand daddy of all things worst. Thus born Worse Is Better.
so, there's these langs, Wolfram lang, Matlab, APL, (R, Julia), not sure if there is a label that characterize them, other than “math”
“array langs” does not capture them, because eg they all don't have concepts of memory, ref, float/int. (given or take)
the distinguishing feature is that they have little to none implementation/hardware concepts. eg ref pointer memory, bytes, bits.
instead, they focus on programer's need to deal with data. programing. numbers, string, list, file. a specific aspect of “higher level” lang
on the other hand, Haskell is a bastard. Seems mathy, seems high-level, but, filled to the brim of computer engineering by-product stuff.
another term i think capture them is “application languages”. But, this term doesn't sound good. and people will start to think excel too.
recap: the group of langs am thinking of is: Wolfram Language, APL, R, Julia, Matlab, Prolog. (please add) possibly include bash, tcl.
to get insight, it's interesting to ask: wtf's a float. A boat? you end up with memory and bits. Thus born computer engineering side effect.
ever since, programer's minds are tainted with a world of computer engineering side effects. This crime began with C, Unix.
in real life, a inevitability, there exist real numbers. And, a representation is decimal number notation. This is not a float. it's a Real.
in math langs eg Wolfram Lang, there is no such thing as float. But, there is Real number with Machine Precision. BIG difference.
LISP, is perhaps the first lang, that started the road of math langs. But, today's Common Lispers, no understand it.
Note: this is not a bash against low level langs. But, against langs that do not separate implementation and language.
almost all industrial langs, do not separate implementation and language. Much due to C having tainted programer's brain.
C is such a virus. Because its defect, it spawn csh tcsh C++ java objc C# and basically all lang's syntax too. A snowball effect.
[above is a episode of twitter extempore]
see also Polymorphism, Dispatch, and the Tale of Poly-Tinting
Programing Language Design
- Why I Hate Exceptions
- Iterator, Enumerator, Abstraction Went Wrong
- Should Array Index Start at 0 or 1?
- Syntactic Semantic Difference of Map
- Should Map f Specify Order?
- Logic Operators (and or) as Control Flow is Bad
- Programing Language Idiocy: Bit Operators
- Hack of Bitmask as Boolean Parameters
- Function Dependency