From J Wiki
Jump to: navigation, search

Thomas Davis, Scientifica, Princeton, NJ

I thought you might be interested in my current use of J, and my experience learning the language.

Scientifica is a small consulting company, specializing in electronic instrumentation for the chemical industry. One of our current projects requires mathematical modeling of the tranport of charged particles through a fluid under the influence of an applied electric field. This requires numeric solution of couples partial differential equations; a relatively complex problem. The solution requires extensive iterative calculations on large arrays.

I have been a casual user of APL for this type of problem for over 20 years. However, I recently bought a copy of J, and was in the process of learning J when the modeling problem came up. Thinking there was nothing like a real problem to stimulate one to learn a computer language, I decided to formulate the problem in J. Naturally, there would be difficult points. The most telling was a point in the calculations where I could not see how to proceed with J; I decided to go back to APL. However, it turned out not to be so easy in APL either. In the end, it was simpler to work out the procedure in J. Coupled partial differential equations of this type are notoriously sensitive to solution parameters, and I frequently had to plot intermediate solutions to examine stability. The Plot utility in J is wonderful for this. In APL, I would find the time and space dependence of charge density in the liquid, format the results, read them into a native file and export the file to a plotting program. All these steps are bypassed with JPLOT, plotting is only a few keystrokes.

I learning J, I found the beginner's difficulties are more imagined than real. The unusual symbol set is initially daunting, but getting accustomed to it takes much less time than I had anticipated, as does the acquistion of some facility with hooks and forks. The J Primer and McIntyre articles are better than any of the resources I had when I originally learned APL. I have even come, slowly, to appreciate the extraordinary elegance of the J Dictionary.

I am definitely a J Convert.