W przybliżeniu taki tytuł nosił referat Hadleya Wickhama, ale w rzeczywistości był to referat o przyszłości universum pakietów tworzonych i współtworzonych przez Hadleya.
A jest to ciekawy kierunek, więc poniżej napiszę o nim trochę więcej. (btw: zaproponował by zamiast hadleyverse używać nazwy tidyverse. Dlaczego tidy? o tym poniżej).
Prezentacja była świetnie przygotowana. Była jedną z dwóch najlepszych tego useR (drugą była prezentacja Donalda Knutha, ale z zupełnie innego powodu).
Niedługo powinna być dostępna pod tym adresem.
Jednym z ciekawszych wątków był wybór stawiany przed R pomiędzy byciem językiem programowania a byciem językiem do interaktywnej analizy danych. Z pewnością R jest bardziej językiem eksploracji danych niż językiem programistów, stąd pozycje typu The R inferno, wytykające rozwiązania nie do pomyślenia w dojrzałych językach programowania. Niekonsekwencje, które przeszkadzają lub drażnią wielu programistów, są jednak czasem wprowadzane celowo, po to by ułatwić prace z danymi.
O jakie niekonsekwencje chodzi? Zagadka z prezentacji Hadleya jest następująca, co jest wynikiem poniższego kodu.
df <- data.frame(xyz="a") df$x
Programiści przyzwyczajeni do klasycznych języków programowania spodziewaliby się, że wynikiem jest albo błąd (w obiekcie df nie ma slotu x, jest xyz) albo wektor z napisem. A tymczasem wynikiem jest factor z uwagi na domyślne parametry data.frame (uzupełnianie nazw argumentów i domyślna konwersja do faktorów). R core podjął lata temu decyzje by budować język ułatwiający analizę danych a nie pracę programistów, stąd niektóre błędy są maskowane i ,,naprawiane’’ po cichu w tle.
Drugim wyborem o którym mówił Hadley jest rozdźwięk pomiędzy byciem konserwatywnym a utopistą. Przy czym konserwatywny oznacza tu dbający o wsteczną zgodność z poprzednimi wersjami a utopista oznacza radosną budowę nowych rzeczy czasem bez zachowywania ciągłości z przeszłością. Użytkownicy ggplot2 i pochodnych pakietów na własnej skórze doświadczyli, że Hadley stawia się raczej bliżej utopisty adoptującego nowe rozwiązania, w przeciwieństwie do R core, które stara się zachować stabilność i wsteczną kompatybilność.
No właśnie, w przypadku obu wyborów kierunek tidyverse okazał się inny, niż ten który wybrał R code.
A tidyverse rośnie w siłę, zapowiedziane są pakiety gggeom i ggstat które mają zająć się właściwym uporządkowaniem tworzenia geometrii i tworzenia statystyk. data.frame zostanie zastąpiony przez tibble.
Funkcje będą jeszcze bardziej leniwe (w sensie leniwej ewaluacji) a struktury obiektów ujednolicone (do ramek danych) przez co będzie można pracować na bardziej spójnych strukturach.
To uniwersum rozwiązań rozrastać się będzie wewnątrz R, ale stanie się od reszty R coraz bardziej niezależne.
Pokryje kluczowe aktywności wykonywane przy analizie danych, opisane na wykresie rozpoczynającym ten blog (oczywiście autorstwa HW).
A co będzie później?
Obserwując tempo rozwoju tego universum, dowiemy się już wkrótce.
Ciekawe, jak w tym wszystkim odnajdą się algorytmy dataminingowe. Czy powstanie w tym ekosystemie coś a la caret?