2 ms·
Also math programming; the computer algebra systems are all late-binding. There are two reasons: 1. The users do a ton of work in a REPL of some sort. Jupyter
by ben509 7y ago
Also math programming; the computer algebra systems are all late-binding.
There are two reasons:
1. The users do a ton of work in a REPL of some sort. Jupyter for Python, R and Matlab have a notebook scheme, as do the CAS's.
So it's common to be running an environment where everything is reified at runtime anyway.
2. Polymorphism without generics. It's bloody hard to implement generics, and dynamic types let you ignore them entirely.
It's also very easy to get it wrong and very hard to make it understandable by a wide range of users.
And to counter a reason to make them early-binding:
Performance this is much less of a problem than you might expect in these domains, because scientific work is often dealing with big matrices and such, and you can heavily optimize those operations.