Michael Drumheller wrote: > I have two immediate worries about J that I wonder if people on this > list could assuage:
I count three list items. Perhaps that means you're only worried about two of them? </joke> > 1. "J Programming Language" is a 562-hit Google query. That is > basically equal to zero, for large values of zero. So I am > immediately concerned that I am spending energy learning something > that nobody knows about. Is this just because J is so new? Are there > strong indications that the J community is growing in size and > influence? The community is relatively small. But the people in it tend to do good things -- the language itself is extremely useful. The community appears to be growing -- I've seen google hits recently that I hadn't seen last year. And if you want a lot of google hits, just try searching on "j"! (er... sorry... another joke... but few of the J pages I've seen spell out "J Programming Language") > 2. I was appalled at the "foo =. 3 : 0" syntax for defining a verb. > I've heard so much about how elegant J is, but this was one > of the first things I came across in the tutorial, and using integers > as special tokens like this strikes me as supremely arbitrary and > inelegant--and this is coming from a Perl hacker. I know that I can > use "verb define" instead of "3", but why is "3" even an option--why > not at least "v"? I mean, it smacks of hardcoded-constant inelgance. > Can someone educate me as to the "roots" of this notatation, i.e., > does it derive from some "legitimate" area of mathematical notation or > concepts that I am simply not familiar with? (Very likely--I am not a > mathematician!) Well... J's roots as a language date back to the early 1960s (APL). And, APL has long had a tradition of using numbers to select from a list of operations. The numbers are somewhat menmonic in character, once you're familiar with them. On the technical side, the use of numbers allows for a simple parser, and numbers instead of charcters allows for conciseness. 'v' : is longer than 3 : (for example). For what it's worth, the syntax for 3 : 0 is rule 4 (Conj) at http://www.jsoftware.com/books/help/dictionary/dicte.htm (that page might seem perplexing, but it's a complete description of the syntax of the language). Perhaps it's the semantics, or the appearance, rather than the syntax which you find troubling? Or maybe you've been influenced by the opinion that numbers have no place in a well written program? This opinion is frequently voiced, but I think the "once and only once" concept is the real issue which seems to make that opinion valid. > 3. Having just signed up for this mailing list, the first things I > noticed were the mention of Mathematica and Maple (two languages with > which, regrettably, I have little ande zero experience with, > respectively). Is is fair to regard J as a "challenger" in the > Mathematica/Maple market? They partially overlap. J might be thought of as having some of the character of Mathematica/Maple, some of the character of C/Java, some of the character of Lisp/Forth, some of the character of Perl/Tcl, and so on... but it's also distinct from all of those. And I think it's worth learning just because it can help you think about problems more effectively. > Thank you for your patience with my Absolute Newbie questions. I'm > looking forward to learning more about J, and I appreciate your help. Have fun. -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
