>> From: Tracy Harms >> >> I've been asked how J compares to (and contrasts with) R. Because I've >> never used R my only option for a timely reply is to turn to others, >> so I'm passing this question on to the wider J community as I'm sure >> some of you have a better sense of what the answers can be. >> >> If something along this line has already been written up, a pointer to >> it would be fine. If not, I think the overlap in target audience is >> great enough that it will be worth compiling some comparisons. >> > > I don't know R anywhere as well as I know J, but given that disclaimer > here are my impressions: > > J > - strong mathematical focus > - conceptual framework for working with array data is very general, > consistent and well thought out. > - code is succinct/terse > - object-oriented paradigm available but optional > > R > - object-oriented paradigm is pervasive > - strong statistical focus > - mature/powerful plotting and graphics > - larger user base > - many user-contributed packages available > - syntax for entering/manipulating arrays seems clumsy > - code is relatively verbose > - more accessible and extensive documentation > > If my major focus was statistical then I think R would be the obvious > choice. > However I find J's data manipulation features to be both simpler and more > powerful. > So my current have-my-cake-and-eat-it-too solution is to use J for > creating and manipulating data, then use its Rserve interface to access > features/packages from R. However so far my R usage has been "light".
Like Ric I am much more experienced using J than using R. The S/R family of languages have been aptly described by a principal author, John Chambers, as 'Programming with Data'. See his book by that name. Each data object has a class, and the classes have been carefully designed to meet the needs of statistical analysis. A frequently used structure is a data frame, which may contain a set of variables which may have different types and can reference items by name as well as location. There is explicit treatment of missing values. R has become almost the default language for many areas of statistical computing, and as a result new methods are often developed as R functions. I believe a statistician will find there are R functions for a wider range of tools than in any other language. It is a functional language which permits great variety in the function calls and users generally have access to all the relevant code. Some R experts I know have used J for some tasks, but found it has a high entry cost or learning curve for them. It then becomes a trade off between the time cost of learning J and the slower execution for some tasks in R. Given the cost of time, for them R has won. The existence of a local community of R users has also helped as it provides them a simple forum for interaction. >From a programing perspective J is much more elegant, focuses on essential algorithmic structures, and like Ric I find it much simpler and more powerful for most data manipulation problems. For problems with many arrays and arrays of differing rank, J provides a much more elegant and powerful tool and helps organise ones thought about the problem. Fraser ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
