Home > Uncategorized > An ISO Standard for R (just kidding)

An ISO Standard for R (just kidding)

IST/5, the British Standards’ committee responsible for programming languages in the UK, has a new(ish) committee secretary and like all people in a new role wants to see a vision of the future; IST/5 members have been emailed asking us what we see happening in the programming language standards’ world over the next 12 months.

The answer is, off course, that the next 12 months in programming language standards is very likely to be the same as the previous 12 months and the previous 12 before that. Programming language standards move slowly, you don’t want existing code broken by new features and it would be a huge waste of resources creating a standard for every popular today/forgotten tomorrow language.

While true the above is probably not a good answer to give within an organization that knows its business intrinsically works this way, but pines for others to see it as doing dynamic, relevant, even trendy things. What could I say that sounded plausible and new? Big data was the obvious bandwagon waiting to be jumped on and there is no standard for R, so I suggested that work on this exciting new language might start in the next 12 months.

I am not proposing that anybody start work on an ISO standard for R, in fact at the moment I think it would be a bad idea; the purpose of suggesting the possibility is to create some believable buzz to suggest to those sitting on the committees above IST/5 that we have our finger on the pulse of world events.

The purpose of a standard is to create agreement around one way of doing things and thus save lots of time/money that would otherwise be wasted on training/tools to handle multiple language dialects. One language for which this worked very well is C, for which there were 100+ incompatible compilers in the early 1980s (it was a nightmare); with the publication of the C Standard users finally had a benchmark that they could require their suppliers to meet (it took 4-5 years for the major suppliers to get there).

R is not suffering from a proliferation of implementations (incompatible or otherwise), there is no problem for an R standard to solve.

Programming language standards do get created for reasons other than being generally useful. The ongoing work on C++ is a good example of consultant driven standards development; consultants who make their living writing and giving seminars about the latest new feature of C++ require a steady stream of new feature to talk about and have an obvious need to keep new versions of the standard rolling down the production line. Feeling that a language is unappreciated is another reason for creating an ISO Standard; the Modula-2 folk told me that once it became an ISO Standard the use of Modula-2 would take off. R folk seem to have a reasonable grip on reality, or have I missed a lurking distorted view of reality that will eventually give people the drive to spend years working their fingers to the bone to create a standard that nobody is really that interested in?

  1. zadig
    July 25, 2014 13:47 | #1

    “R is not suffering from a proliferation of implementations” but R packages do. there are zillions are packages from unknown sources with unknown qualities. Some of them are overlapping ( how many ARMA functions you can have) . We don’t even even know if they will survive next R release or the author will continue to support it !

  2. July 25, 2014 13:57 | #2

    @zadig
    The proliferation of libraries, of unknown quality, doing similar things slightly differently is not an R specific problem. It happens with all popular languages.

  3. Tim
    July 26, 2014 01:31 | #3

    Having an ISO language spec for R is a great idea.

    It would allay a lot of the compatibility fears of people who want to use alternative R implementations, such as pqR, an R compiler rewritten for speed.

    It’s great that the Core R team chose an open source license for their code, and no doubt their implementation will always be the de facto standard. Right now though there are a lot of companies that are embedding half-baked or weirdly coupled versions of R in their data tools. Allowing a reliable closed source “clean room” rewrite seems like it would greatly benefit the wider community.

  4. July 26, 2014 01:49 | #4

    @Tim
    The evidence from other ISO language standards does not backup up your belief that just by existing of an ISO Standard has a positive influence on compatibility.

    A very significant influence on implementation compatibility is the availability of lots of source for which is is relatively easy to detect difference in behavior. This is a problem for R because most code depends on the appropriate data also being available, a Chess program written in R would be a lot less dependent on data. If there are some R people who really are interested in implementation compatibility, then they should write a high quality implementation validation suite (i.e., give implementors and users something that makes it easy to check compatibility).

    Where is the commercial incentive for any sort of rewrite of an R implementation? Open Source has been driving compiler companies out of business for nearly two decades now.

  1. No trackbacks yet.