I've had good luck using J to work out a good algorithm that I've implemented in another language. For instance, I was wondering about the efficiency of a simple permutation algorithm in Javascript and was able to try two or three versions of it in about half an hour in J, then implement the winner in Javascript. I did have to dumb it down to use a loop for the various methods I tried but am reasonably confident my final version is fairly efficient.
On Sun, Dec 3, 2017 at 3:02 PM, Kenneth Lettow <[email protected]> wrote: > See http://code.jsoftware.com/wiki/Jd/License#License > > On Sun, Dec 3, 2017 at 1:55 PM, Ron Petersen <[email protected]> > wrote: > > > how do i get a copy of JD for my iMac or do i need a other type computer? > > > > On Sat, Dec 2, 2017 at 2:15 PM, Scott Locklin <[email protected]> wrote: > > > > > On 11/28/2017 3:59 PM, Andrew Dabrowski wrote: > > > > Do you loveJ most because of (pick only one) > > > > > > Background: applied math/numerics guy. > > > > > > I've worked around big data and tsdb problems for a long time, so the > > > legends around Kx systems is what originally brought me to APL land. I > > > even worked on a "more mainstream" aka normie legible one called Kerf > > > (basically a rank-1/rankless APL you can read in plain english). That's > > > what got me here. > > > > > > Jd, is definitely one of the things which keeps me around. Stuff like > Jd > > > allows you to bring the calculation to the data. Opposite of spark > which > > > has expensive marshall, shuffle, etc, and appears to be written by a > > > tribe of chimpanzees. I have beat spark clusters by factors of 100 on > > > calculations running J/jd in one node in one thread (while spark was > > > also running in all the other available hardware threads on the same > > > node and a dozen more!). > > > > > > Mental clarity: when I can express an algorithm in J, I fully > understand > > > that algorithm in a way that wouldn't happen with C++ or python or > > > something. I have been using stuff like wavelets and neural nets for > > > decades, but only really understood them when I expressed them as J > > > verbs. This isn't always necessary (libraries are good), but sometimes > > > it is really helpful. Maybe it's the "natural language" properties, or > > > maybe it's because most of the algorithms I am interested in are on > > > matrices and vectors. > > > > > > FFI: it super quick standing up some bag of verbs that allows one to > use > > > a C-api. R has some good tools here also, but there is generally a lot > > > of ceremony around the FFI which slows everything down. > > > > > > Speed: it runs fast, and once you get past a certain skill level, dev > > > time is faster than anything else I have used. And I can see lots of > > > potential for improvement as most of the dev time is getting bogged > down > > > in some puzzle due to my ignorance, or not noticing some addon package. > > > > > > Bottoms up: one of the strengths of it is it is generally easy to build > > > something big out of lots of little elementary particles. Once you get > > > the pieces, hooking them together (maybe in a namespace) is generally > > > trivial, and the thing "just works." Lisp was like this for me also. > > > Pretty much nothing else is. > > > > > > Community: People who use J tend to be very smart. But, unlike the > > > common lisp community, nobody is a supercilious weirdo about it. > > > > > > Potential: Moore's law has kind of stopped; trend is towards many > cores. > > > Theoretically, most J array operations can be naturally parallelized. I > > > think it would make a dandy deep learning metalanguage. Maybe some day > > > I'll have the time to look at Pascal's Arrayfire bindings. > > > https://github.com/Pascal-J/Jfire > > > > > > Downsides: it's a really big language, the documentation can be terse, > > > and, yes, sometimes I can't understand some of the tacit expressions. > > > Also not as many helpful libraries as something like Python or R. I > > > think it's not as natural a fit to text or things that cry out for hash > > > tables or tree-like structures, but it may be just because I don't do > > > much of that sort of thing. If I had to identify one piece of low > > > hanging fruit for my own productivity: more documentation for the > addons. > > > > > > Discovering J was sort of like discovering an XB-70 buried under a > Mayan > > > temple. Nothing is perfect, but it is a very good tool for me. > > > > > > -SL > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > -- > *Kenneth Lettow* > Director Market Intelligence | Thomas™ > Thomasnet.com <https://www.thomasnet.com> | #ThomasForIndustry > <https://www.thomasnet.com> <https://www.thomasnet.com>[image: Thomas For > Industry] <https://www.thomasnet.com> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Devon McCormick, CFA Quantitative Consultant ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
