> APLers hate the successors, because "notation is tool for thought" and ASCII is a poor representation.
I'm perplexed by this one. I'll concede that the APL symbols are prettier but why does it magically stop being a notation just because you use combinations of ASCII symbols. Especially when many APL symbols are composed of units themselves.
⍲ vs *: One is 'notation' because it has the two units stacked on top of each other and the other is not because they are stacked horizontally?
At least one person [1] has played with using APL symbols in J, at least at the display level. I gave it a try, but was surprised to find that I preferred the ASCII version. Perhaps if J had its own custom symbol set (extended from APL?) it might have been better -- not all of the APL symbols have exactly the same meaning in J, and I remember finding some of the differences to be a bit jarring. For example, conjunctions like '&>' and '&.>' are heavily used and deserve their own symbols -- just putting a little-circle before a '>' feels like a hack. (No disrespect intended to the author, though, this was a great experiment.)
If a symbol is made of multiple side-by-side ASCII characters, are there any problems telling where one symbol ends and the next starts?
In ordinary text, we separate words with spaces, and add punctuation at the end of sentences to further make the structure apparent. (Well, now we do...a lot of pre-modern writing would justwritethewordssmushedtogetherlikethis [1]). In most of the sample programs in APL successors I've seen there usually didn't seem to be space between symbols.
Yes, at least for me, trying to learn it. For example, / in many examples is an "adverb", modifying the previous operator, although xx/ is frequently introduced as a single thing. (Are all built-in verbs one or two characters?)
'xx/' is a single thing -- in the sense that 'xx' is a thing, and '/' is a thing that modifies other things. By applying '/' to 'xx', you get a new, standalone thing.
Re: one-or-two characters, there are a few exceptions, like the folds ( F.. F.: etc.) which are new to J9. Also some older ones like {:: (Map) and &.: (Under) where `x u&.:v y` means `v^:_1 (v x) u v y`. Some of these aren't verbs but conjunctions, adverbs, etc. For the most part they stick to one or two. There are parsing rules that dictate what the second and third characters can be (that's why you see so many colons and periods), and these rules are actually discussed in the JforC book.
Reading J can be tough, as a fellow learner I feel your pain. :) The one that usually gets me (in my own code, even!) is
5 myverb \ n
...which runs the verb over 5-element slices of 'n' at a time, and joins up the results. The '5' is too far away from the '\', and it can be hard to see the connection right away. I understand why it's so (it's really running the modified verb 'myverb\' with arguments 5 and n) but I still find it hard to read.
When writing my own code, I often leave extra spaces between the multi-character words, and anywhere else that helps legibility. J might be a terse language, but there's no point being crazy about it (unless you're golfing).
I've wondered that myself, because the zoo of symbols doesn't speak to me, like iota, but maybe the mathematical use has something to do with the APL use.
So I simply assume there is something deeper going on than "it looks ugly". Maybe someone here is in that camp and can tell us. At least the argument was made on HN in some earlier APL or J thread.
There is something I call "the whiteboard test". I work in research, and I spend a good part of my time working with formulas in whiteboards and discussing about them with my colleagues. I am constantly confronted with the irregularities and limitations of standard mathematical notation and see APL as a huge improvement, I would really like to use it more, and I have even taught some basics to colleagues so we can use +/ for sum and ×/ for prod, or ⌈ and ⌊ for max and min, for example.
Iverson solved some remaining inconsistencies in J, and it includes some elegant concepts as tacit programming (+/ % # for the arithmetic average is beautiful) that were not in the original APL, but I do not see myself writing J in the whiteboard or a notebook.
But ASCII may not be the main problem. Curiously, I find that K performs much better in my whiteboard test than J, perhaps because the set of symbols is much smaller. And if you think it may be a matter of getting used to it, I have worked with APL far less than with J and still find the APL symbols more appealing.
There are many things I like about J, and I do not have a very rational explanation to give you, but I agree with those that say that APL is a better tool of thought.
Are you really saying that non-ASCII is notation and ASCII is not? When I read your first comment, I understood it to mean that better notation is better than worse notation.
I'm not saying that. Some APL fans say that ASCIIfication of APL is a bastardization, because notation matters. (search through earlier HN threads)
Notation is obviously a shorthand for "sensible notation" or even "better notation" there, because obviously just about anything can be notation. Including laying out pebbles on a beach.
The usual argument is that "one should APL like one reads music", meaning that with experience you immediately recognize specific patterns which help you understand what is going on. As for why ASCII can't do that, only the critics know their true reason, which I suspect amounts to "it's different from what I'm used to". I've done both, and I found J notation no more obscure. Critics should also note that (Dyalog) APL departed from APL2 to copy many J patterns, so it appears difficult to argue that J was such a mistake to begin with.
Some people hold prejudice against parentheses and prefix notation, for others it's ASCII...
ASCII is a much smaller space of possible operators, so an ASCII-based language is always going to end up significantly more verbose than one that allows non-ASCII symbols. I don't use APL but I definitely appreciate being able to write ≤ or ⊆ or ∀ if that's what I mean, rather than having to expand those out in ASCII.
Yes, it's velocity sensitive. The keys are quite sensitive, more like a keyboard than an electric piano (coming from an electric piano as I am, it's easy to play a note unexpectedly loud, but I think that's not hard to get used to). The different keycaps for each note feel a bit different from each other as the leverage angle is slightly different.
I should note that I have yet to try the MIDI capabilities. I didn't have a MIDI-capable computer in my lounge until I recently acquired a USB adaptor, and I haven't dug out my MIDI cables yet.
I have the opposite opinion (I also own a linnstrument).
I come from a piano background, and as someone that kind of struggles to improvise in keys with more accidentals I was attracted to the idea of an isomorphic layout.
After playing a lot with the isomorphic layout I've come to a conclusion that it comes at a cost (it has its advantages and disadvantages compared to the traditional piano layout)
To be isomorphic the layout has to have multiple representations of a single note, with this comes the fact that you don't really have to learn one shape for every chord, you have to learn multiple ones if you play complex polyphonic music and want comfortable fingerings (the linnstrument also has this problem that you can't play 4 notes in a square which comes at the most unexpected times specially between the two hands).
So the comparison would be to learn every key thoroughly vs learning every (useful) alternative for every chord.
In my opinion there's nothing intuitive about the y axis having a greater intervalic distance than the x axis, specifically I would have this problem when going down in a melody to the previous "string" the distance to that note is way different than it would be on the same string.
To be fair I think the only intuitive layout is a linear one (like a single string, or the haken continuum)
If anything, having played with an isomorphic instrument has encouraged me to learn the piano layout more deeply.
Having said that, the linnstrument itself is a decent product all and all (although I have some beefs with it but I don't want to turn this comment into a review) and it makes sense that you like the layout having more experience with stringed instrumments, but I would say that's familiarity not intuitiveness.
Rectangles too, any four corners played at once.
It's because the sensors are horizontal and vertical stripes of velostat, so every individual stripe can only sense pressure, the location is gather by combining the information of the overlapping stripes.
from their webpage [1]:
> If 3 note pads are pressed that are 3 corners of a rectangle, presses to a note pad that is the 4th corner of that rectangle will be ignored.