3 ms·
I think your hate is misplaced. J was and is fertile ground for new array language features. In my opinion, not having to come up with a new symbol every time s
by rscho 6y ago
I think your hate is misplaced. J was and is fertile ground for new array language features. In my opinion, not having to come up with a new symbol every time someone wants to try something new has its value. J is much more in flux than APL.
- robomartin 6y agoIt's not hatred, it's an objective opinion. I worked with APL professionally for about ten years, starting back in the early 80's. I used both mainframes and desktop computers. I was very involved in the community, attended annual conferences, presented a paper in one of them, admired Iverson and some of the other luminaries of the era, I even have a very dorky looking picture of myself with Iverson. I think that I can say that it is because of this that I was very aware of what was going on with APL in a commercial sense. It was very difficult to evangelize the language when, in the 80's, the friction points to adoption were many --the character set being one of them. It took a major effort on my part to convince a biotech company of the era to adopt APL for analysis of human DNA sequencing data. All of this to say I believe I fully understand the decision to remove one of the impediments by discarding custom symbols and coming up with whatever could replace them that was present in computers of that era. This meant ASCII characters that could be typed by anyone on any machine. Almost anyone desperate enough to make the language gain a foothold in the market would have considered such a solution. That was the driving force behind J. Nothing else. I never heard Iverson say "We moved away from notation because this is better". Never. Because it wasn't. It took a wrecking ball to what he had been teaching and talking about for decades, the foundation of his career, really. They needed market (and financial) success and made the wrong choice. It wasn't long until custom character sets were a non-issue. Anyone who stopped to think about this a bit would have understood that transition was imminent. APL had the same problem that, say, Japanese had. IBM PC's required altered character ROMs and keyboards to be able to use Japanese. If you had to work with both English and Japanese you likely ended-up with a solution similar to early APL, a modified graphics card with a toggle switch mounted in front of the computer to change character sets. And so the pressure to build computers that could do non-ASCII character sets with ease was there and it was very real. Remember that IBM never thought the PC would go anywhere. The machines only became more than the sum of their parts once mass adoption took place and clones got faster, cheaper and better. Had Iverson stuck with APL as it was he would have been able to see it flourish on new more capable hardware. By doing what he did with J he likely bifurcated (or more, because there were other pure APL factions already, like IBM APL2) the community and likely contributed to the language languishing. It only makes me angry in the sense that all of this has caused a situation where modern software engineers will likely never experience what notation can bring to the domain. APL used to be taught at a number of universities. I don't know if any even bothers to mention it yet.
- yiyus 6y agoI do not disagree with your analysis (and I certainly do not have the experience to refute it), but I think you are overlooking some things. First, I think that J was indeed an improvement over APL. There were several irregularities in APL that were corrected in J (eg. indexing operations) and some new features that allowed new possibilities (eg: function trains and tacit definitions). This is discussed in more detain in "A Personal View of APL" (Iverson, 1991). And, second, there are some advantages of using ASCII. Although it does not require modifying your hardware any more, using a special character set still is inconvenient. The capacity to write a J expression in any mail program, for example, is important. Being able to use any keyboard (including mobile phone keyboard apps) is important. Easily adding J code to any paper using any text editor without needing special fonts is important. I do not think these advantages are enough to compensate for the loss of expressiveness, but they are not negligible. All that said, I understand (and partly share) your frustration.
- robomartin 6y agoI'll have to disagree. The primary motivation for J was that APL could not penetrate into mainstream software development because the world-wide installed base of IBM PC or clones simply could not deal with the character set without much mucking around. It went as far as having to purchase very specific graphics cards so that you could swap out the character ROM. BTW, when I say "graphics cards" the mental image should be a very primitive character-mode only VGA card that is stone age when compared with today's cards. In my experience it is difficult for non-APL-ers to truly understand just how bad it is to lose the symbols. The only approximation I have been able to find that clicks with some people is to compare it to musical notation. Anyone who reads musical notation understands the value of symbols very well. I can't relate to the idea of writing code on a mobile phone. I have never done anything that useful, even with my iPhone X. I barely want to reply to emails with it. I wrote a paper for an APL conference back in the dark ages. Printing the paper with APL characters as well as normal text entailed a double printing process where I had to change the ball on the IBM printer between APL and standard characters. I actually wrote a custom print program (in APL, of course) to manage the entire process and, of course, wrote the paper in APL using a custom text editor I wrote as well (Wordstar couldn't handle the task). Think of it as Jupyter Notebook (but not as sophisticated) for APL. Ah, the good old days when you had to create all the tools you needed yourself! Another way to look at it is: Had Iverson focused on advancing APL to the next stage, computer systems would have caught-up with the language. My guess is that the economic viability of his business forced his hand. I can understand this, of course.