Coraz mnie rozumiem dzisiejszy świat. Żeby ludzie toczyli wojny o język programowania?
R jest językiem specjalistycznym, umocowanym w ogliczeniach statystycznych. Do Pythona nie za bardzo da się go porównać z uwagi na zbyt ubogą bibliotekę Pythona, tak obliczeniową jak i graficzną. Jest tam kilkadziesiąt tysięcy metod obliczeniowych i kilka tysięcy bibliotek, a także kilka osobnych podsystemów graficznych. W dodatku jest w pełni przenośny na różne platformy, w tym ARM. Można go porównać bardziej do SAS albo SPSS. No może z tą różnicą, że podstawowy moduł SAS o o wiele mniejszych możliwościach kosztuje krocie.
Co można w nim zrobić? Dużo rzeczy, w tym aplikacje analityczne, tak okienkowe w oparciu o GTK, Tcl/TK jak interaktywne strony WWW w oparciu o odpowiednie silniki i JS, np. Shiny. Można nawet tworzyć webserwisy REST. Ale ostatecznie R nie powstał do wszystkiego, tak, jak nie do wszystkiego powstał np. Visual Basic czy nawet Java. W przypadku R jest to zdecydowanie bardziej wyraźne.
Kilka pierwszych zastosowań R jakie mi się nasuwają: big data (hadoop, klastry obliczeniowe), ekonometria, finanse, socjologia, medycyna. Najwięcej chyba medycyna. Licytowanie się na wysokości zarobków też nie ma tu sensu. Programista R poza specyficznym rynkiem praktycznie nie znajdzie zatrudnienia, no bo po co w przeciętnej firmie R? Ale z kolei wewnątrz tego specyficznego rynku, jak np. badania kliniczne, skoring kredytowy, modelowanie finansowe, data mining, zarobki plasują się mniej więcej w zakresie 6-20 tys. brutto. Zapewne dlatego, że programistów R jest mało, a programiści innych języków, by osiągnąć podobny efekt, spędzą o wiele więcej czasu. Chociaż warto wspomnieć, że programiści R znajdują zatrudnienie np. w Facebooku, Google, bankach i i innych firmach, gdzie jest on wykorzystywany; są w sieci listy firm, które go wykorzystują.
W sumie idealnym tandemem jest R + Python, jako że potrafią ze sobą bezproblemowo "gadać". Chociaż w sumie R potrafi "gadać" z każdym nowoczesnym językiem programowania, od C przez Javę, C#, PHP, po Perl i Pythona. RJava, Rpy, R.NET, Rcpp, OpenCPU to tylko kilka przykładów. Do tego ma spore wsparcie Oracle'a, Revolution Analytics no i od niedawna - Microsoftu, który poszedł drogą Oracle'a i włączył R do SQL Servera.
Nie róbmy z języków programowania religii, tylko traktujmy je jak narzędzia. Assembler ma swoje zastosowania. PHP jest fajny do szybkiego tworzenia serwisów www. Java i C# są super do tworzenia aplikacji tzw. biznesowych. C i jego odmiany są świetne do programowania niskopoziomowego, wydajnego, w tym urządzeń. Perl jest super do przetwarzania tekstów. Python jest świetnym językiem skryptowym do szybkiego tworzenia różnych aplikacji. A R, podobnie jak np. Ovtave, jest dobrym językiem do analizy danych.