Software Engineering discussion
date
newest »


Languages with special keyboards seems like a huge barrier to teaching and learning any language. I'm not sure a moddern community would grow with a requirement like that.
An array-centric language seems interesting. I don't really understand all of its advantages or why. I would think there are other ways of doing the same algorithms.
The array-centric approach goes along with the functional paradigm. In an imperative language, like C, you would typically iterate with a loop (like a "for" loop). In the functional paradigm, you would iterate by saying "do this against this array (or list) of elements". The latter approach is more concise and gets rid of a whole class of common errors (such as starting at 0 or 1, ending at n or n-1, and running off the end of the array and creating a buffer overrun security flaw).
Sorting an array of words
X[⍋X+.≠' ';:]
Finding prime numbers
(~R∊R∘.×R)/R←1↓⍳R
While I never programmed in APL, when I first started working at IBM, my terminal had an APL keyboard. I saw some code samples, and it scared me to death. In my mind, basing a language on special characters requiring special keyboards is a non-starter, but there are certainly many very smart programmers who would violently disagree.
APL (which stands for A Programming Language) did lead the way for functional languages and for solutions to parallelism and concurrency issues... topics that are so timely today. And, it is a classic example of a minimal language.
As a former IBMer, I also enjoyed learning about the internal political issues as well.