, ,

RMicrosoft has recently been on a tear introducing R into, well, everything. And now there are several R offerings – from Microsoft R Server and Microsoft R Open to R Services in SQL Server (2016) and now the Microsoft R Client.

But is the Microsoft R Client a client? So it’s a command-line, or a GUI of some sort?

No. I mean, yes. OK, let’s take a closer look.

R is an interpreted language – that means you type some commands into a window (command line, GUI, or a script that you pass in) and the R program runs the commands. This is different than a compiled language, where you type in certain commands, and those are then changed into a different form that an operating system can run directly. It’s also different than how a server platform – like SQL Server for instance – runs continuously, waiting for properly formed packets to come in on a networking port, to change the code it gets and to finally run the commands sent.

Because R is an interpreted language, you need the engine to run it. “Open Source R”, or CRAN-R, is a free, open-source software installation you can use to run R code. It has a command-line, and a rather simple graphical environment (GUI) you can use to write and run code.

Microsoft R Open builds on top of that open-source installation. It is the same thing as Open-Source R, with access to thousands of libraries (called packages) and full community support. It does have some of the same limitations as Open-Source R, such as being memory bound for data-frames and so on. And – this is the important bit – it doesn’t have the ability to connect to a Microsoft R Server and send the code to run there rather than running locally.

diagram1Enter the Microsoft R Client. It includes Microsoft R Open, and adds in some of the ScaleR functions, which makes processing data faster and more efficient. And again, it’s a full R environment – you can write and run code, right there on your desktop. But the important bit is that it can connect to a Microsoft R Server (MRS) by seting something called the “Compute Context“, which tells the R environment to run on a more powerful, scalable server environment, like you may be used to with SQL Server.

So, does the Microsoft R Client have a client in it? Yes, it has a command line and a simple GUI. But the “Client” moniker comes from the fact that it can act as a client to MRS, not just that it has a client environment installed. (Just to blow your mind a little, the “Relational” in Relational Database Management System does *not* refer to relationships. I know, crazy, right? It’s not just Microsoft doing this sort of thing.)

For a “client” (little c) I use R Tools for Visual Studio (RTVS) and I like it a LOT. you can use that to hit MRS as well. And yes, if you install the Microsoft R Client software, and then use the popular RStudio GUI, that will talk to MRS as well.

Glad we had a chance to clear all that up. Good talk.


(Want to know more about what is in what? Check it: https://msdn.microsoft.com/microsoft-r/index#the-microsoft-r-a-product-comparison)