4 ms·
The only downside to J notation is some of the primitives use more than one character (something K solves). Otherwise, the notes are just written differently. I
by scottlocklin 13y ago
The only downside to J notation is some of the primitives use more than one character (something K solves). Otherwise, the notes are just written differently. I find old school APL impossible to read, basically because I never bothered learning it. Yeah, it looks like line noise to the uninitiated: so does APL notation.
It's easy enough to change primitive names to stuff which is more wordy, but by the time you're capable of it, the original notation becomes a feature, not a bug.
Q'Nial was more wordy and easier to get into. I thought of using it, but the author is not interested in keeping it going.
- robomartin 13y ago> The only downside to J notation is some of the primitives use more than one character You are missing the point. I could proclaim that from now on we are going to use the /$ character sequence to implement the integration function in a hypothetical language. I could similarly continue with that idea and create a bunch of transliterations and cover a wide range of functionality. And, yes, people would be able to learn it and learn to read it. One example of this is reading regular expressions. However, having that that, you have not created a new tool for thought all you have created is the ability to --as I described it before because I despise it-- vomit a bunch of ASCII characters into a file and call it a program. Notation is powerful. The association of symbols or icons with ideas is powerful. The play, stop, fast forward, fast rewind and other buttons on your remote are easy to recognize, read and use. You could purposely avoid using symbols and use words: "FFWD", "STOP", "PLAY", etc. However, using symbols (notation) is by far the most efficient and communicable tool. Going back to the integral, well, the existing mathematical integral symbol conveys the entire concept very efficiently. J, to some extent, comes from an era when it was downright painful to even attempt to print or display APL characters. You had to replace character ROMs in printers, graphics cards and terminals. You had to replace print heads on other machines. APL characters before expanded character sets and the ubiquity of GUI-based operating systems were painful to implement and communicate. J attempted to solve this by transliterating from the APL symbol set to an ASCII-based equivalent. When that happened one of the most powerful aspects of APL was thrown out the window. That's why I call J an abomination. The functionality offered by J is probably an improvement of APL. However, walking away from attaching meaning to custom symbols was a huge step backwards. Perhaps Iverson thought the reason APL was not seeing wider adoption was the character set, gave in and sought to fix it by going to ASCII. In my not-so-humble opinion, that was a huge mistake. ASCII is gibberish. Symbols, much like a page full of mathematical equations, means creating and using a new language that become part of your mental process.
- scottlocklin 13y agoI don't think I'm missing the point: I think the notation is just fine -certainly nicer than regular expressions. You're just not used to it. Lots of people use K.
- robomartin 13y agoNo, you are missing the point. Take a page full of intense mathematical notation or an orchestral score and translate it into either full words (i.e.: "integral" in place of the integral symbol) or one, two or three character ASCII mnemonics. You should realize that the original is far more powerful a tool for communicating thoughts, ideas and the subject at hand than a seemingly random dump of ASCII on paper. You did mention that you did not bother to learn APL. That's the reason you don't get it. I am trying to use mathematical and musical notation to illustrate the value of notation. It is obvious I am not doing a good job. Let's just disagree and move on.
- scottlocklin 13y agoIt's true that APL was originally designed as a notation tool, and maybe J fails at that, at least for beginners (which I am; only a few months in), but it certainly works very well for me as a language. Bonus; if my prop trading algos ever get lifted, there are only a few people who will be able to make anything of 'em. I see above you're looking at its successor, K. Maybe you will like it better, but ultimately the idea was to reduce J's character set to one-character per primitive.
- robomartin 13y agoIf you read about the history of APL you'll see that Iverson developed the basic notation for the description of processors at a low level.