Code Comments
Programming Forum and web based access to our favorite programming groups.Hi, I'm interested in re-learning APL for hobby programming and maybe as an extra tool for my work (physics). I use macs and PCs, various OSes. --aside: I say re-learning because I did learn the basics once while doing work experience for a company in Frankfurt 15 years ago. I remember I really enjoyed the language and found it very graceful. They ran their APL on a shared central machine that (I was told) never executed less than one line of APL - so of course I wrote a on-liner for the mandelbrot set. All great fun! -- ANYWAY, browsing around the net I see there seem to be three options these days: APL, K and J. I've read a few descriptions of J and K (discovering to my disapointment that they don't use special characters, but oh well!), however I haven't found a really helpful comparision of the three. In particular: (a) in terms of the language structure, do they differ much in the language, or are they slight variants? I couldn't find a definitive/reliable text on this point. In particular, does learning one correspond to learning all? If not all the more reason to make the right choice as a newbie! (a) Are they suited (limited?) to quite different applications? As I mentioned my interest would be in physics applications, esp. QM which uses a lot of matrix manipulation. Bread and butter for all three languages perhaps. (b) Which are the more active languages these days, in terms of number of users and enthusiasts? (c) Which can be support a 'modern' GUI for the end user? Which have reasonable graphics support? Perhaps that is more a question for vendor specific products... (d) Which languages have the best commercial (or open source) tools available, and what are they? I see a few nice comments about Dyalog APL for example. Any input on these questions, or on other considerations, would be much apppreciated!
Post Follow-up to this messageSince no-one has responded, Ill try to help. I am an APL fan. I have had difficulty with J, and minimum use of K. So I am biased. I am also not well informed on J,K and APL other than Dyalog. "oxonian" <oxonian@mac.com> wrote in message news:fa95df0.0403020603.3450c822@posting.google.com... > Hi, > I'm interested in re-learning APL for hobby programming and maybe as > an extra tool for my work (physics). I use macs and PCs, various OSes. > > --aside: > I say re-learning because I did learn the basics once while doing work > experience for a company in Frankfurt 15 years ago. I remember I > really enjoyed the language and found it very graceful. They ran their > APL on a shared central machine that (I was told) never executed less > than one line of APL - so of course I wrote a on-liner for the > mandelbrot set. All great fun! > -- (On my PocketPC with Dyalog PocketAPL, my mandelbrot program runs in 10 sec after twing, took6 mins when I first wrote it) > > ANYWAY, browsing around the net I see there seem to be three options > these days: APL, K and J. I've read a few descriptions of J and K > (discovering to my disapointment that they don't use special > characters, but oh well!), however I haven't found a really helpful > comparision of the three. In particular: > > (a) in terms of the language structure, do they differ much in the > language, or are they slight variants? I couldn't find a > definitive/reliable text on this point. In particular, does learning > one correspond to learning all? If not all the more reason to make the > right choice as a newbie! APL has move on a lot in th last 15 years, so it has move away from J, just as J has added new structures (eg Forks and Trains). K is getting smaller and tighter (and faster),and has dicionaries. But all three require the same "mind set". > (a) Are they suited (limited?) to quite different applications? As I > mentioned my interest would be in physics applications, esp. QM which > uses a lot of matrix manipulation. Bread and butter for all three > languages perhaps. K is very good for processing vast amounts of data very quickly. J ha some usefull features for physics (complex number and infinity I think) Only IBM APL2 (of the APLs) has complex numbers. > (b) Which are the more active languages these days, in terms of number > of users and enthusiasts? In acadimic circles J has overtaken the place that APL held. K has a small but growing user base. I think APL has the largest world wide following, but the J user group is more active. > (c) Which can be support a 'modern' GUI for the end user? Which have > reasonable graphics support? Perhaps that is more a question for > vendor specific products... J and APL support modern gui. K has droppe its GUI in the latest release. > (d) Which languages have the best commercial (or open source) tools > available, and what are they? I see a few nice comments about Dyalog > APL for example. I have only experiance of Windows (no mac) but calls to the API are stright forward from many APLs and J. Dont think K can call MS API as it run "under DOS". > > Any input on these questions, or on other considerations, would be > much apppreciated! Ray
Post Follow-up to this message> I have only experiance of Windows (no mac) but calls to the API are stright > forward from many APLs and J. Dont think K can call MS API as it run "under > DOS". K runs in Win32. Although it runs as a console application it's a Win32 application and could, in principle, access all the Win32 GUI via the API calls. In practice, though, The tendency is to use K as a faceless server and let a client with a full blown GUI (written in your favourite language: Java, C#, VB, VB.NET, Python and so on) communicate via TCP/IP sockets with the K server. -- WildHeart'2k4
Post Follow-up to this messageoxonian@mac.com (oxonian) wrote in message news:<fa95df0.0403020603.3450c822@posting.google .com>... > > (a) in terms of the language structure, do they differ much in the > language, or are they slight variants? I couldn't find a > definitive/reliable text on this point. In particular, does learning > one correspond to learning all? If not all the more reason to make the > right choice as a newbie! All three deal with bulk data, arrays for APL and J, and lists of lists for K. They have primitives which simplify manipulating such data and programs in these languages tend to avoid conventional loops. They facilitate "programming in the large" rather than at the level of the individual datum. J and K use ASCII instead of APL characters. I find their ASCII less intuitive and attractive than APL charcters, but this does avoid keyboard, display, and printing issues, in particular it's much more email friendly. I find K's ASCII mapping to primitives to be more elegant than J's. > (a) Are they suited (limited?) to quite different applications? As I > mentioned my interest would be in physics applications, esp. QM which > uses a lot of matrix manipulation. Bread and butter for all three > languages perhaps. All three are good choices for matrix manipulation. K doesn't have a primitive data type for complex numbers which would be a limitation for some physics problems. > (b) Which are the more active languages these days, in terms of number > of users and enthusiasts? The J mailing list seems the most active to me. > (c) Which can be support a 'modern' GUI for the end user? Which have > reasonable graphics support? Perhaps that is more a question for > vendor specific products... Don't know what you consider a 'modern' GUI, but J's works for me. The K GUI is being deprecated in the newest version as it's being focused at high end server applications. > (d) Which languages have the best commercial (or open source) tools > available, and what are they? I see a few nice comments about Dyalog > APL for example. > > Any input on these questions, or on other considerations, would be > much apppreciated! Dick Bowman has a comparison of collection oriented languages (and VB) that you might find helpful at: http://www.apl.demon.co.uk/aplandj/...es/ppl2002.html
Post Follow-up to this message"Steve Rogers" <steve@shrogers.com> wrote in message news:78eb2351.0403210620.6acd40d@posting.google.com... > oxonian@mac.com (oxonian) wrote in message news:<fa95df0.0403020603.3450c822@posting.google.com>... [... deleted ...] > > Dick Bowman has a comparison of collection oriented languages (and VB) > that you might find helpful at: > http://www.apl.demon.co.uk/aplandj/...es/ppl2002.html I've just had a look at my tetchy diatribe of 2002 - I may update it again at some point. I've stayed with APL/W as implementation of preference, J rather withered away for me (but may be beginning to stage a minor comeback) - there's a lot to be said for J if your interests are computational rather than presentational. APLX (from MicroAPL) is a contender now, especially in Version 2 form. It's both simpler and less expensive than APL/W - which might also mean that you can do less with it (no fooling around with .NET interfaces, for example). Best thing to do is pick up a free/inexpensive implementation or two and look at the general flavour (ly, apart from J, the good stuff costs).
Post Follow-up to this message"Dick Bowman" <bowman@apl.demon.co.uk> wrote in message news:c3m8mt$5au$1$8302bc10@news.demon.co.uk... > [... deleted ...] > Best thing to do is pick up a free/inexpensive implementation or two and > look at the general flavour (ly, apart from J, the good stuff costs). > > That seems to be absolutely the case! After a near 30 year haitus from APL, I was looking around for something that would run under Windows (sigh) - somet hing not that fancy but functional and the pricing structure seems rather astonis hing to me (read: outrageous). There seems to be no distinction between "for pers onal use" and "for enterprise development". Oh well, I guess that model hasn't qu ite made it through to some folks. Thanks for the link... Kerry Liles (long ago IPSA zoo)
Post Follow-up to this message"Ray Cannon" <ray_cannon@compuserve.com> wrote in message news:<5%q5c.39$ly4.6@newsfe1-win> .. > Only IBM APL2 (of the APLs) has complex numbers. IPSA, J, SAX and I am sure Dyalog too - all have complex numbers
Post Follow-up to this message"Bj?rn Helgason" <bjorn@hansaworld.is> wrote in message news:56da45cc.0403221150.77cdf601@posting.google.com... > "Ray Cannon" <ray_cannon@compuserve.com> wrote in message news:<5%q5c.39$ly4.6@newsfe1-win>... > > IPSA, J, SAX and I am sure Dyalog too - all have complex numbers I have no working knowledge of IPSA and SAX, so you may well be right there, BUT as at version 10.0.3, Dyalog does NOT have Complex Numbers. And please dont quote out of context, I started off by saying and then later think) Anyway, within comp.lan.apl, when discussing "newbi needs help comparing APL versus J versus K", I for one, do not consider "J" to be one of the "APLs", It is certainly not ISO standard APL. Can anyone say how many of the 60 odd APLs do support complex numbers? (For an old list see "Punctuation in APL" by Joseph de Kerf in Vector Vol6 No2) Ray
Post Follow-up to this messageKerry Liles wrote: > > That seems to be absolutely the case! After a near 30 year haitus from AP L, I > was looking around for something that would run under Windows (sigh) - som ething > not that fancy but functional and the pricing structure seems rather aston ishing > to me (read: outrageous). There seems to be no distinction between "for pe rsonal > use" and "for enterprise development". Oh well, I guess that model hasn't quite > made it through to some folks. Yeah, I'm persuaded that they don't really want people to use it so we aren't. Witness the vitality of this list. Not. I hang about in the hope that if IBM ever gets their collective head out of their collective ass on this I'll at least know about it. Bob -- "Things should be described as simply as possible, but no simpler." A. Einstein
Post Follow-up to this messageAbout 80 of that dozen APL programmers attended the Dyalog APL conference in East Horsley, Surrey, last September; a similar number, I believe were in Naples, FL, for the APL2000 conference. Kx Systems was in London last month and ran a 2-day intro; 20-30 people there, many from investment banks and without grey hair. Youth and money is powerful fuel. Whitney introduced features new in his impending K4 release and invited us to guess how they worked. Only APL programmers guessed right. You might find K more accessible than you thought. A similar number turned up for a 1/2 day intro as part of the British APL Assn's 20th birthday celebrations for Vector the following day, including students from Loughborough University and the University of Bolzano in Italy. Last wNYC Dyalog APL Users Group introduced a class of new programmers who'd learned APL on their own time. You can follow the story at http://groups.yahoo.com/group/dyalogusers and http://groups.yahoo.com/group/BFGame. But to address what I take to be your main point -- why did APL usage decline, and is there any prospect of change? Two yaers ago I returned to programming after a 15-year gap, thrilled to find the current APLs embodying earlier dreams, horrified to find the community shrivelled. IMHO the story behind this is fairly simple. It has two threads. One is that PC spreadsheets replaced APL as the preferred tool for personal computing, probably rightly. The other is that APL got generally deprecated for software development work. Irritating mavericks like me, who ran rings around conventional developers and bragged about it, got squeezed out during the professionalisation of IT in the 80s and 90s. The principal battleground was 'methodology': the disciplines and promises of Software Engineering (SE) rolled over our informal development practices, regardless of our productivity. The cheques drawn by SE bounced. But by then the damage had been done: APL was out and its legendary productivity a fading memory. Developers do the best they can now with Java and OOP. There is a Reformation. It has been running nearly a decade under the banners of Agile Development and Extreme Programming (XP). It's how you would run an APL project if you didn't have APL. Studying agile development has helped me understand the relationship between APL and its productivity. I (we) used to brag about how short the code was and how quickly we could write it. When you look at a SE development project and see how small a part of the effort is coding, you get the force of the argument that faster coding doesn't justify the costs of 'alien' technology, blah, blah blah. XP turned this all around, embracing the incremental development that always characterised APL projects, and making coding THE principal activity. XP wins by dropping cumbersome and unreliable analysis, specification and design activities, substituting short development cycles with customers on hand to answer questions and give feedback. (Does any of this sound familiar?) Now it's clear where APL's coding speed pays off. XP programmers using Java consult their customers frequently, keeping communication face-to-face and showing customers the results of their choices. APL coding is so fast I do at least half of mine with the customer beside me because I need feedback every minute or so. THIS is how we strip cost and time out of software development, by eliminating formal communications: memos, meetings, specifications, signoffs, blah blah blah. SE people I work with behave as if formal communication is reliable and free. In reality it's expensive and unreliable. Smart engineers minimise the use of expensive, unreliable components. There's a strong case to be made for APL (the APLs?) as THE Agile Programming Language. I went to XP2003 last year to begin making that case. Sadly, while overhauling www.vector.org.uk this winter, I missed the window for XP2004. There are other agile conferences and other voices who could join in. With all your experience, yours too perhaps? If you are interested, Kent Beck's book "Extreme Programming Explained" is a good start. You can find it through the Agile Development links at www.5jt.com/links.html. In the world of commerce (money if not youth), my colleagues and I are making progress in a large account with our own Reformation. Like so many others, this client has for years had an exit strategy for its APL systems. (In theory at least. In practice, the cost of replacing them with 'strategic technology' meant nothing happened.) The company is now so beset by the costs of conventional development that it is moving much of it to India. Our 'tactical' systems development is getting board-level attention. This is a winnable game. Back to education. I found an opening for J in the teaching of mathematics in schools for 'gifted and talented' children. I didn't put in the work it would take to open this seam, but it's still an opportunity. Now a little more commercial money is starting to trickle in to BAA, we might be able to get something happening. If APL and education interests you, consider absorbing J and making your experience available. (You do have to register at jsoftware.com, but the interpreter downloads for free, the study materials are excellent and the J Forum is active and helpful.) No one wants APL, but so many people want what APL makes possible. Stephen Taylor sjt@vector.org.uk "Bob Cain" <arcane@arcanemethods.com> wrote in message news:c3tvmf01ctf@enews3.newsguy.com... > MP wrote: > > > Yeah, I'll be 60 this fall. I'd love to know the mean age > of the dozen or so APL programmers still around. No damn > excuse for that. Kids should be learning it in grade school > and would be were it not for where those heads have been all > these years. No light there I understand. > > > Bob > -- > > "Things should be described as simply as possible, but no > simpler." > > A. Einstein
Post Follow-up to this messagePowered by vBulletin
Copyright 2000-2006 Jelsoft Enterprises Limited.