Morten, Sorry if I alarmed you with my defection from the APL camp. It's quite understandable that you'll want to put the record straight as regards Dyalog APL, so let me support you in doing just that.
Joey challenged me (or so I thought) to articulate my reasons for choosing J for my next project, indeed all foreseeable ones. My reasons are personal and idiosyncratic. Mostly it's down to the fact that I operate in a different arena than I did in 1994-2003. Then it was corporate/financial. Now it is hobbyist/voluntary sector. In case anyone is inclined to take my rant as contributing something of general significance to the question of whether to use J or (Dyalog) APL if you have the rare luxury of starting out afresh, then hold on... what I had to say won't bear that weight. A lot has happened in 10 years, and much of my problems with carrying on developing in APL hinges on how badly placed I am to catch up, at least (/especially) in the Windows area. It would be wrong to blame APL, let alone Dyalog APL, for the failures of Windows. IMO, Windows-proper has become byzantine, rickety, worm-ridden, covered with Band-Aids and no longer fit-for-purpose. But what *is* the purpose? One that's not mine any more. Once I'm rid of my present commitment to support a product written in APL+Win 4.0 (note the back-level!), maintained on Win2000 and run on XP by my voluntary-sector clients, I shall walk away from Windows -- and good riddance to it. With no corporate requirements to grovel to, I don't have to bother with Windows ever again. Unfortunately walking away from Windows is likely to take APL with it, for me -- and it's APL+Win, not Dyalog, I've been using since 2001 (not for personal preference, I might add). No, I don't want to go running kangaroo operating systems on my Mac -- I've made that mistake before -- and I don't expect my clients will want to either. A "disturbing lack of faith" -- but in the Mac, I'd think you'd say. At least in its capacity to operate outside its proper domain. Both J and Mathematica have impressed me with the smoothness with which user-written apps port between Mac and Windows -- the most impressive part being the GUI. Why can they do that and not Dyalog APL? Probably all down to the value they place on the Mac market. Plus whether it was developed on the Mac in the first place (as so many leading systems were, even Microsoft ones: Word, Excel...). As a onetime Mac developer, I have a minority view on that. But you'll see from my rant it weighs heavily for me -- and it weighs in J's favour, outweighing all considerations of pure language design. The availability of a native Mac version of Dyalog APL would make it a lot harder for me to walk away from all my old APL expertise. But to you that's nothing but a business case -- which I can't make. You'll know the source of my war-stories about product-development in Dyalog APL better than anyone. And now you own it, you're in an unrivalled position to do something about it. Especially the problems I've been vomiting bile over. I'm sure you've used the intervening 10 years well -- I know you have, because I've been reading the new release announcements in Vector and I've nodded to myself and approved. My war stories which show APL in a bad light against J need to be qualified by one vital point: +++ J is a single-vendor system with scarcely 10 years of heritage code, by my reckoning. Whereas APL still has 5 (is it?) independent vendors of language processors, counting just the significant ones, plus a heritage of code crown-jewels going back to the 60's if not the 50's, having hopped platforms maybe 2 or 3 times in their history. Now I have heritage code to port -- and how! I was a product developer, not an application programmer. My code has had to work on different platforms, sometimes with APLs from different vendors. I didn't only have myself to please. Many of the problems I encountered would never have arisen had I been coding on one single platform all my life, maybe only ever to run on one single machine. I wished I could have shut my eyes to the existence of any other APL but Dyalog, and never wrestled with things no Christian soul should ever have to know about, like []ML, not to mention []NA, []WC, []WD, []WG, []WI, []WGIVE, []WCALL (I'm mixing in APL+Win here)... Is it any wonder then, I yearn for a retirement bumbling around with Macs, iPAQs and wall-to-wall ASCII? Where there isn't a ws to give WS FULL, whether or not B[...]<-1 can cause it any more? Where Unicode is a harmless toy, not a cut'n'paste matter of life and death when porting heritage code? Ian On Tue, May 26, 2009 at 11:04 AM, Morten Kromberg <[email protected]> wrote: > Hi Ian! > > Your subject line caught my eye... ;-) And since you're posting old news > about Dyalog APL to the J Chat forum, I feel it is my duty to respond with > an update (not that I want to argue with your choice of J if it feels > comfortable for what you are doing): > >> J's portability between Windows, Mac and PDA alone sees to that for me. > > OK, we don't have a "native" Mac version, but Dyalog APL does run on a Mac > in a variety of different ways (Under Wine and various Virtual Machine > frameworks). The same GUI is available on most platforms, so I think that > your ability to produce good looking and portable user interfaces using this > route should be no worse than using J - and could be significantly better > depending on what you are trying to do. > >> Code written by people who didn't appreciate []ML<-3 > > OK, this DOES seem like an odd reason to switch to J ;-) (for those who do > now know, []ML<-3 puts Dyalog APL in "APL2 Compatibility Mode"). > >> []AV's are devastatingly different > > True, but now that APL has "gone Unicode", []AV is just an obsolete > 256-element character vector which is there in order to allow old code which > references it directly to continue working. Dyalog APL now probably has the > most complete (and "integrated") Unicode implementation of any array > language. Unlike in J (last time I looked), a Finn can just type: > > 'ä'='Säppäla' > 0 1 0 0 1 0 0 > >> Code that needs frequent execution of B[a;b;c;d;e...]<-1 (uses lots of > memory ... etc) > > These problems are now pretty much solved in Dyalog APL (SQUAD indexing has > been added to avoid the need for execute, and indexing has been rewritten to > be memory-efficient). > >> Also I don't have a spare couple of grand to keep up with the latest >> releases of Dyalog APL and APL+Win -- but that's not the key issue >> because I could always find a customer to buy me the products I need. > > A "non-commercial" Dyalog APL will set you back £50, and if you are only > doing a small amount of infrequent commercial work, you can pick the 2% > royalty agreement so that you have no up-front costs. > >> No, the key issue for me is that I've written J code in Windows, >> including GUI code, transferred the files to the Mac, also to my HP >> iPAQ, an easy matter because they're ASCII txt files and it's just a >> case of moving the dongle... and the app works First Time. > > Using text files to store APL code is becoming a common technique with > Dyalog APL too (and the system takes care of updating the script files when > you edit code while debugging - so you can do development both by editing > the scripts and using the system interactively). > >> I could go on and on... This was back in the last century, and things may > have gotten better with APL since... but I doubt it's that better. > > This reminds me of one of my favorite quotes: > > http://www.youtube.com/watch?v=VgGc9kruiLQ > > Well, I don't think it was *that* bad to begin with, but I am happy that > some of your most important complaints seem to have been resolved. We've > certainly been busy! > >> J is going to be my tool of choice. > > I'm not trying to argue with that, just needed to set the record straight > (as I see it ;-) regarding some of the things you state are "wrong" with > APL. > >> BTW who's seen > http://en.wikipedia.org/wiki/Criticism_of_the_APL_programming_language > > I'd better take a look at that ... :-) > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
