Well, I'm not tired of this stuff quite yet, so here goes: Brainfuck and APL/J/K get compared a lot on account of being "obfuscated." This is a bit unfair. The correct terms are, respectively, "contorted" and "terse."
There is one thing that the two languages share: they are each an attempt to get to the root of programming and SIMPLIFY the discipline. Each can be fully specified in a few pages, if you disregard the vocabulary used in an array language. However, the two have markedly difficult results. Coding in Brainfuck ends in long strings of >>>>>> or +++++ , and true automation is impossible. On the other hand, J code is very compact, in part because it makes assignment very simple--no distinction is made between primitive and user-defined functions. Nonetheless, people complain that J or Brainfuck code is particularly complicated. Note the distinction between the "language" and "code" here. Brainfuck is a simple language with complicated code. We can't refer to the language as "obfuscated," since that word refers to the addition of unnecessary detail, and Brainfuck does the opposite. However, the code is often obfuscated in the sense that it fails to abstract away details, and thus hinders a higher-level view of the program. Array languages do not suffer from this difficulty. In fact they are far more extensible than procedural languages, because they also allow functional manipulation. I think the word you are in fact looking for to describe these two languages is "unfamiliar." This word places the blame where it lies--not on the language, but on the programmer! Given the functional languages in the list, I won't accuse you of being completely unknown to programming outside of the C paradigm, but most of the time when I hear similar complaints they're from people who think a piece of text is a program if and only if it contains the phrase "for (int i=0; i<l; i++)." Okay, J doesn't have a lot of words in it. Neither does "((-b) + sqrt(b^2-4*a*c))/(2*a)." I submit that within a month of actual use, J code will seem clearer, better designed, and more useful than any other programming language, mathematical nomenclature included. I once had a friend tell me that "if (x>20) return true; else return false;" was clearer than the J equivalent ">&20". I hope you can see past the unfamiliar syntax enough to know that that's false, and I hope you are open-minded enough to not make the same mistake about APL/J/K before knowing any of the language. Marshall On Sat, Dec 24, 2011 at 1:36 PM, Roger Hui <rogerhui.can...@gmail.com>wrote: > Reminds me of what Ken told me once: Let's you and him fight. No thanks! > :-) > > Merry Christmas everyone. > > > > On Sat, Dec 24, 2011 at 9:02 AM, PMA <peterarmstr...@aya.yale.edu> wrote: > > > Anybody want to take up the flag? > > Happy Holidays! > > PMA > > > > -------- Original Message -------- > > Subject: Re: OT programming languages/ systems for advanced applications > > on Linux > > Date: Sat, 24 Dec 2011 11:50:59 -0500 > > From: PMA <peterarmstr...@aya.yale.edu> > > To: debian-u...@lists.debian.org > > > > Rather than APL itself -- value judgement aside -- > > you might consider its successor and superset, > > *J* ( http://www.jsoftware.com/ ). > > > > > > Miles Fidelman wrote: > > > David Christensen wrote: > > >> > > >> Any other comments/ suggestions regarding programming languages/ > > >> systems for advanced applications on Linux? > > >> > > > Lisp > > > Smalltalk > > > Erlang > > > Haskell > > > Caml/OCaml > > > APL - if you're crazy or want to be; or you could go all the way to > > > Brainfuck (http://esolangs.org/wiki/Brainfuck) > > > for that matter, Ada, if you're writing > mission-critical/safety-critical > > > systems > > > > > > If you're really interested in programming languages: > > > http://lambda-the-ultimate.org/ > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm