Software Engineering discussion

16 views

Comments Showing 1-3 of 3 (3 new)    post a comment »
dateUp arrow    newest »

message 1: by [deleted user] (new)

I do wish the authors of "Masterminds" gave a little code sample before each chapter (something more than Hello World) to give the reader unfamiliar with the language a little context. This is essential with APL. How about these code examples, from the APL Wikipedia article:

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.


message 2: by Erik (last edited May 10, 2010 06:42PM) (new)

Erik | 165 comments It's interesting that APL existed as a language for a long time before being implemented on a computer. That's probably a perspective that won't happen in moddern times.

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.


message 3: by [deleted user] (new)

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).


back to top