4 ms·
You may want to learn J instead. It uses ascii, and it's from Iverson, so it's the true continuation of APL.
by qwertyuiop924 10y ago
You may want to learn J instead. It uses ascii, and it's from Iverson, so it's the true continuation of APL.
- beagle3 10y agoOr K (a JS interpreter called oK with an interactive coding env called iKe can be found in John earnest github account). It is a distillation of APL/J concepts. Much smaller core, clicks better than J for some people.
- scottlocklin 10y agoOr Nial, which is APL in plain English. http://www.nial.com/OpenSource.html http://www.nial.com/OpenSource.html They're working on a distributed and GPU versions.
- eggy 10y agoI didn't know about any new effort with Nial. I'll have to check it out. The distributed and GPU parts are especially enticing to me. CUDA is wearing me out! I have really become comfortable with J now, and I don't know if it would help me to step into a text-based APLish language. More typing for me to do the same I do in J, and I don't code for or with others, so no collaboration arguments here. And, I can read my old J programs just fine, even years later. Most code fits in a glance, and if you are not very practiced, very little time to refresh as opposed to looking through pages of 'easy to read' Python for example. How is Kerf [1] coming along? How similar to J? [1] https://github.com/kevinlawler/kerf https://github.com/kevinlawler/kerf
- scottlocklin 10y agoKerf's doing well: we're adding a sort of NoSQL functionality which is pretty unique (unstructured data you can index and join on). Closer to K than J, but really pretty different from both, beyond the Array language heritage. I had considered building a distributed processing system using J and zeroMQ, but now considering doing something like this with Kerf. Main thing is ... do the customers want it. I can't pay rent with technological innovation. FWIIW, Pascal has something you might be interested in for GPUing in J, if you are not aware of it; jarrayfire. https://github.com/Pascal-J/Jfire https://github.com/Pascal-J/Jfire I haven't screwed around with it, but I keep meaning to get around to it. Looks solid. I made an abortive attempt to do something cheaper (cuda hooks basically), but got distracted.
- mseepgood 10y agoCode is read much more often than it is written. That's why I prefer APL's symbols over J's ASCII clutter.
- qwertyuiop924 10y agoAPL isn't that much more readable. They're both fairly obtuse, so it's really just whichever you learned first.
- rebootthesystem 10y agoThat really isn't true at all. For someone who did not study mathematics, symbols like integral, differential or summation are meaningless and obscure. A greek letter "delta" with a dot on top only has meaning once studied, learned and used. For someone who did not study music and musical notation, symbols like a silence, eight or sixteenth note are utterly meaningless. However, for people who studied these subjects and devoted enough time to get good at them these symbols have huge meaning and, yes, they become tools of thought. Spend enough time with APL --just a couple of months real effort at most-- and the symbols are not obtuse at all. They develop meanings just like mathematical or musical notation does. Combinations of symbols become words and phrases. The programmer eventually starts to recognize them instantly and think in these terms, much like someone well versed in math might recognize a polynomial and instantly visualize and understand it's shape and position in space. If I may continue the analogy, programming symbolically with APL quickly becomes like writing and playing music. It's an amazing experience that cannot be described, it has to be experienced. If you have not devoted a good amount of time to working with APL the above might not make any sense and might even sound crazy. And that's OK. Just understand there's a huge difference between forming an opinion while watching gymnastics vs. actually being a gymnast. J is a huge step backwards. Notation is incredibly powerful. The decision to discard it simply because the language was ahead of the hardware of the day was, at best, flawed.
- qwertyuiop924 10y agoNo, I understand, but J is as much a notation as APL is. It may be a different notation to what you, as an APL programmer, are used to, but it is as much a notation as APL. While you say that my judgement is clouded by not using APL, I say the opposite is true: from here, they're equally symbolic. The difference is, one of them uses symbols I can type.
- eggy 10y agoA lot of people have cited the APL Life example, but I found this J example of somebody exploring Ulam's spiral as a great way that J is used to approach a mathematical concept [1]. Very easy to follow along in J open next to YouTube, and it still amazes me how quickly you can visualize from the REPL with 'viewmat'. The Jupyter notebooks, are modern kin to this, and are still trying to catch Mathematica, which for me, really shines for toying around with the curated data and one-liners. [1] VIDEO - https://www.youtube.com/watch?v=dBC5vnwf6Zw https://www.youtube.com/watch?v=dBC5vnwf6Zw