3 ms·
Given the variety of choices in the developer ecosystem is APL the best choice for ANY types of problems one can realistically have to solve today? I.e. is it
by qwerty456127 5y ago
Given the variety of choices in the developer ecosystem is APL the best choice for ANY types of problems one can realistically have to solve today?
I.e. is it still the best tool for the job it was designed for but on modern hardware/OSes? Provided you don't mind the special charset and low availability of APL programmers to maintain your code.
- adrian_b 5y agoAlready when it appeared, APL was an incomplete programming language. It had much better facilities than any other language for working with arrays of numbers but other tasks were awkward, e.g. handling strings, input/output, program control structures, partitioning a large program in separate modules and so on. So going back to use the original APL is not a solution. On the other hand, having to work with arrays of numbers in any language that does not include APL-like expressions is tedious. Having to write explicit loops when better solutions existed more than half a century ago seems extremely stupid. With Unicode, providing the APL operators in a programming language is trivial. There is however one APL feature that prevents the simple extension of any current programming language to just allow you to write APL expressions without changing the language otherwise. APL had a different rule for the precedence of operators than most popular programming languages, all operators have equal precedence and the right hand operand of an operator is everything that is to its right. So the operators are evaluated from the right to the left, unless there are parentheses to change the order. This rule was a very important innovation of APL. While it may seem weird for those who do not have experience with it, it is actually much more convenient than the usual multi-level precedence rules. Just adding APL operators to a language without also using the APL rule of evaluation order would loose a good part of the APL advantage and simplicity.