LINUX.ORG.RU

R занимает 5 место в рейтинге журнала IEEE Spectrum

 , ,


0

3

Поясняют такой рост (на 1 место с прошлогоднего рейтинга) существенным увеличением метрик по всем шкалам данного рейтинга:

  • рост числа вопросов на Stack Overflow,
  • 62 тысяч новых репозиториев на GitHub,
  • всплеск вакансий на сайтах найма персонала,
  • активное цитирование в различных исследовательских публикациях (за год число статей про R в IEEE Xplore увеличилось с 39 до 244)

Очевидно сказывается как гибкость и универсальность использования языка R в столь интенсивно растущей области ИТ, как обработка больших массивов данных, так и факт недавней покупки корпорацией Микрософт одного из коммерческих дистрибъютеров R, компании Revolution Analytics.

В подробностях интерактивная диаграмма рейтинга.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: psv1967 (всего исправлений: 4)

Очевидно сказывается тот исторический факт, что разработка R (как свободной реализации S) была осуществлена поверх ядра языка, которое архитектурно повторяло принципы организации такого мощного и развитого языка программирования, как Scheme.

Ты хочешь написать новость или спровоцировать флейм?

tailgunner ★★★★★
()

Использую этот язык в хвост и в гриву. На самом деле это убогий язык. Посматриваю в сторону Julia и надеюсь, что Julia со временем вытеснит R.

Основные фейлы данного языка:

  1. Убогая однопоточная архитектура. Использует только одно ядро процессора. Если нужно использовать многоядерность, то нужно юзать костыли в виде пакетов, у которых имена анологичных однопоточных функций - другие. Да и то, многопоточных функций там - мизер. Сделать поддержку многоядерности на уровне ядра языка видать не получается из-за убогой архитектуры.
  2. Отсутствие неймспейсов. Когда у вас куча переменных и констант, то начинается белиберда с именованием. Как вариант - использовать пакеты, но это уже костыль. Также можно юзать функцию local(), но это кастрированное решение.
  3. Когда у вас куча *.R файлов, то их приходится загружать в глобальную среду, в противном случае необходимо загружать содержимое R файла каждый раз, когда он нужен. Опять таки, можно все разбросать по пакетам, но пакеты для этого не предназначены.
  4. Интерпретируемый язык и поэтому тормозной.
  5. Отсутствие констант.
  6. Правила именования встроенных функций различаются. Одни с маленькой буквы, другие с большой. Третьи имеют точку, четвертые - нижнее подчеркивание.
  7. Сам этот язык был создан как аналог проприетарного S, который был создан аж в 70-х годах. Поэтому и имеет все эти косяки, которых нет у более современных языков.
FilosofeM ★★
()
Последнее исправление: FilosofeM (всего исправлений: 1)
Ответ на: комментарий от FilosofeM

Загрузи {rzmq} и пиши «многопоточно» «прямо сейчас», тебе что обязательно в ядро языка это тащить?!

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Нет, я просто подумал, что указать причиной покупку Микрософтом РеволюшенИнк вызовет реально большой флейм, а в новости какое то «заключение» нужно.

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от psv1967

В качестве заключения вполне подошло бы что-то вроде «рост интереса к R связано с общим ростом интереса к технологиям анализа данных». Про Схему в сообщении по ссылке вообще ничего нет. О покупке тоже можно упомянуть, если она релевантна.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от FilosofeM

Отсутствие неймспейсов.

Ты определенно нездоров, уж чего чего, а окружения всякие на любой чих лепить в R можно сколько угодно (не хуже чем в исходной Scheme)

Отсутствие констант

Точно нездоров, какие тебе константы в «векторизованном по дизайну» языке? Ты еще также настоятельно в молочном баре водки потребуй.

Интерпретируемый язык и поэтому тормозной.

Давно все в байткод перегоняется

(но писать for() в R? кроме как ради явного побочного эффекта, может только «настоящий программист»)

Использую этот язык в хвост и в гриву

Признайся, ты пошутил наверное? Или так и не осилил прочитать что там в {base} лежит?

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от psv1967

окружения всякие на любой чих лепить в R можно сколько угодно (не хуже чем в исходной Scheme)

Я получше тебя знаю, что в R можно создавать окружений сколько угодно, однако это не решение. Может для тебя, хеллоу-ворлдщика сойдет это, но не для меня. Мне не нужны конструкции вида envName$varName или envName[['varName']], засирающие и нагромождающие код. Еще мне посоветуй функции и переменные в списках держать или использовать attach, дилетант.

Точно нездоров, какие тебе константы в «векторизованном по дизайну» языке?

Тебя с какой высоты роняли? Какое отношение вообще имеет векторность к константности? В векторной Julia я могу сделать константный массив (вектор). Да и практически в любом другом языке.

Давно все в байткод перегоняется

Ага, через костыль, вручную, прописывая в коде.

Признайся, ты пошутил наверное? Или так и не осилил прочитать что там в {base} лежит?

Да шутишь тут только ты, на правах штатного клоуна. Я не только base осилил, но и десятки других пакетов.

В общем по факту так и не ответил ни на один пункт, кроме как разбрызгивать слюнями в монитор. Свободна, истеричка.

FilosofeM ★★
()
Последнее исправление: FilosofeM (всего исправлений: 1)

Чота тут уже очень жарко... Пойду хоть почитаю, что за язык, а то вдруг я что-то в жизни пропустил, вдруг мне за сокровенное знание языка R на следующей работе много денег дадут.... :)

gns ★★★★★
()
Ответ на: комментарий от psv1967

Microsoft хочет добавить R в Excel или ограничится только своей СУБД? В первом случае это было бы даже наверное интересно, а во втором — просто обезьянничание с Oracle.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от FilosofeM

Отсутствие неймспейсов. Когда у вас куча переменных и констант, то начинается белиберда с именованием. Как вариант - использовать пакеты, но это уже костыль. Также можно юзать функцию local(), но это кастрированное решение.

Я получше тебя знаю, что в R можно создавать окружений сколько угодно, однако это не решение

Не волнуйтесь больной, Вам вредно.

e1 <- new.env()

## населяешь

## обращаешься
(m)get(letters, e1)

если для тебя трудно писать имя функции, то напиши свой синтаксис

> "%v%" <- function(v, e) mget(v, e)
> get(letters, e1)
Ошибка в get(letters, e1) :объект 'a' не найден
> letters %v% e1
Ошибка: value for ‘a’ not found
## поскольку окружение пустое, то ничего не найдено 

ты просто бесполезный тролль

psv1967 ★★★★★
() автор топика

И все тут же побежали писать на R потому что так сказал какой-то журнал, ага.

slonopotamus
()
Ответ на: комментарий от psv1967

Ты упоротый чтоли? Твой костыль, который ты тут привел не решает проблемы, ничем практически не отличается от стандартного и также нагромождает код.

я просто бесполезный тролль

Fixed. Выздоравливай, наркоман.

FilosofeM ★★
()

Чего только люди придумают, чтобы Питоном не пользоваться.

anonymous
()

Всё теперь русское сообщество программистов будет вынуждена учть Р. забудьте Питоны и Явы.

anonymous
()
Ответ на: комментарий от FilosofeM

Основные фейлы данного языка:

Фэйлы у тебя в голове.

1. Убогая однопоточная архитектура.

В статистике многопоточность как правило не нужна, так как большинство алгоритмов не распараллеливаются. Тем не менее давно уже штатно поддерживается многопоточность через parallel.

2. Отсутствие неймспейсов.

Есть и неймспейсы, и local scope. Протри очи.

3. Когда у вас куча *.R файлов, то их приходится загружать в глобальную среду, в противном случае необходимо загружать содержимое R файла каждый раз, когда он нужен. Опять таки, можно все разбросать по пакетам, но пакеты для этого не предназначены.

Пакеты созданы как раз для этого.

4. Интерпретируемый язык и поэтому тормозной.

Язык для статистического анализа обязан быть интерпретируемым, иначе он нахрен никому не нужен.

5. Отсутствие констант.

Здесь не Си.

6. Правила именования встроенных функций различаются.

Не правила, а сами наименования.

Сам этот язык был создан как аналог проприетарного S, который был создан аж в 70-х годах.

Сишечка была создана в 60-ых, фортранчик в 50-ых. И чё?

Как вариант - использовать пакеты, но это уже костыль

Костыль у тебя вместо головы.

anonymous
()
Ответ на: комментарий от FilosofeM

Какой «проблемы»?

Ты забыл написать «как правильно по твоему высокценному мнению» надо написать обращение к символу в неймспейсу.

тебя сейчас не устраивает

а) подключение неймспейса к текущему с помощью with(), within(), attach()

b) прямое обращение к объекту в окружении «$», assign(), get(), «[», «]<-»

При этом конструкция «имя_окружения$объект_в_окружении» объявлена тобой «избыточной» и «загромождающей»

Ну покажи тогда, как это написать короче...

psv1967 ★★★★★
() автор топика

Отличный язык, с неплохими либами. Вроде как поддержку CUDA сделали (или я тут ошибся?).
Однако, есть Python. Вкусовщина, конечно...

Solace ★★
()
Ответ на: комментарий от Solace

Python — язык общего применения, а R — язык анализа данных, вокруг которых сейчас идёт хайп вполне себе оправданный. Ты же не используешь Python вместо, скажем, LaTeX или SQL. В смысле каждому овощу своё место.

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

Python — язык общего применения, а R — язык анализа данных, вокруг которых сейчас идёт хайп вполне себе оправданный. Ты же не используешь Python вместо, скажем, LaTeX или SQL. В смысле каждому овощу своё место.

Как раз в machine learning/data science Python и R являются конкурентами (с преимуществом у Python). И именно вкусовщиной объясняется выбор инструмента. Однако, с deep learning у Python и правда дела лучше.

Solace ★★
()
Ответ на: комментарий от Evgueni

Python — язык общего применения, а R — язык анализа данных, вокруг которых сейчас идёт хайп вполне себе оправданный.

Боюсь что со стороны это больше походит на то, что кто-то сначала берёт язык исходя из каких своих мотиваций и заинтересованностей, и думает, а куда бы мне его пристроить, а давайте-ка в численные вычисления, или в обработку данных или ещё куда-нибудь, при этом такой критерий как наилучшая пригодность языка к выбранному применению вообще их не волнует.

Всё это очень напоминает политику продвижения «своих», т.е. главный и единственный смысл выбранного кандидата в том что он «свой», а уж насколько он будет эффективен в выбранном поле применения - это дело десятое.

anonymous
()

всплеск вакансий на сайтах найма персонала

В моем Мухосранске даже «C» потребовался, а R как было 0, так и осталось 0 вакансий.
Для аналитиков (в банки, продажи и т.д.) везде до сих пор обязательно пишут... Excel. Хотя одну вакансию, где хотели R, видел в фармокологии.

trupanka
()
Последнее исправление: trupanka (всего исправлений: 1)

Почему новость про R, а не про первое место?

unDEFER ★★★★★
()
Ответ на: комментарий от anonymous

Боюсь что со стороны это больше походит...

Тут есть только «тонкость» в виде никуда не деваемого S (и предшествовавших-сопутствовавших ему систем обработки данных на APL). Так что вся «вкусовщина» отвалилась от R(S) давным давно в конволюции этого всего добра в абсолютно уравновешенную систему.

Ну а то что свободную реализацию сделали поверх архитектуры Schema так вообще по моему хорошо. Еще лучше было бы брать готовый развитой, но такого на тот момент просто не нашлось (а потом потеряло смысл).

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от Solace

Как раз в machine learning/data science

Не интерактивный (без костылей в виде org-mode или notebook всяких) язык может быть конкурентом в области анализа данных только в процессе «я свалил в мясорубку весь мусор который у меня был и нажал кнопку, теперь компьютер сделай мне хотя бы за месяц хорошо».

Там в ссылке про причины роста есть естественно про питон.

И написано почему можно выбрать питон: 1) «низкий порог входа» это означает можно не думая «программировать» зная три оператора (присвоение+цикл+условный переход), 2) ну и именно что питон язык общего назначения и привычен в «индустриальных решениях».

По моему обе причины именно от области «анализ данных» немного в стороне стоят. Туда порог самой предметной области не пустит просто материал с такими проблемами.

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от madjestic

2 вопроса: почему R такой тормоз и чем он лучше julia?

1) Он не тормоз

Оптимальные вычисления сводятся к вызовам BLAS. Он одинаков у обоих сред. Любое узкое горлышко переписывается на любом удобном низкоуровневом языке позволяющем любые близкие к железу оптимизации.

2) Чем Юля.

Тем что в команде R нет врунов пишущих синтетические тесты. Слишком большие риски, начинать зависеть от недоумков выбравших такой оригинальный способ пропиарить своё поделие, и инвестировать в изучение + десятки лет профессиональной деятельности. Мне как то не хочется.

psv1967 ★★★★★
() автор топика
Последнее исправление: psv1967 (всего исправлений: 1)

Не понимаю, к чему тут такой срач.

Как средство анализа данных R — прекрасная вещь, рвёт все ненужные проприетарные поделия (типа Statistica) в пух и прах.

Как язык программирования R так себе.

FuriousBean
()
Ответ на: комментарий от FuriousBean

Как язык программирования R так себе.

Приведи конкретный пример «так себе». А то может ты просто «фломастер не с той стороны пробуешь на вкус».

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от psv1967

Любое узкое горлышко переписывается на любом удобном низкоуровневом языке

Возникает резонный вопрос, а зачем же для данного применения был выбран R/Python, коль скоро его использование приводит к проблеме «узкого горлышка» и в итоге предлагается вносить исправления на другом языке (тем самым подразумевается знание этого другого языка) в котором этой проблемы нет, не лучше ли было выбрать этот самый другой язык с самого начала?

anonymous
()
Ответ на: комментарий от Solace

Я как раз и занимаюсь анализом данных и понимаю где нужно использовать Python (клей), C/C++ (то, что склеивает Python) и R (анализ данных, которые влезают в оперативную память, то есть всё, кроме ФЭЧ данных — именно этим я к сожалению и занимаюсь) — это не вкусовщина, это тупо удобно, а для повседневного анализа следует использовать наиболее подходящий инструмент, а не то, к чему привык.

Evgueni ★★★★★
()
Ответ на: комментарий от anonymous

Это нормально, в смысле тащить везде то, к чему уже привык. У меня вон трагедия приключилось по этому поводу — пришлось забыть perl и выучить Python :) До сих пор время от времени ломку испытываю... Но без относительно этого нужно использовать наиболее подходящий инструмент для любой работы, если это не однострочник, для написание которого пойдёт что угодно, даже бейсик.

Evgueni ★★★★★
()

Спектрум ещё есть что ли? Ух ты! А Амига, а Денди, а Эппл, а Атари?

ZenitharChampion ★★★★★
()
Ответ на: комментарий от Evgueni

Я как раз и занимаюсь анализом данных и понимаю где нужно использовать Python (клей), C/C++ (то, что склеивает Python) и R (анализ данных, которые влезают в оперативную память)

А если без баззворда, конкретные твои задачи каковы?

это не вкусовщина, это тупо удобно, а для повседневного анализа следует использовать наиболее подходящий инструмент, а не то, к чему привык.
это не вкусовщина
это тупо удобно

Противоречие. И да, я не знаю, а куда вписывается Torch? Facebook и Google его используют, комьюнити огромное.

Solace ★★
()
Ответ на: комментарий от anonymous

Возникает резонный вопрос

Ответ более чем простой — крайне редко _заранее_ известно что окажется «узким горлышком». Поэтому предварительная оптимизация зло.

Составил алгоритмически оптимальное решение использующее вызовы из BLAS, применил всякие мемоизации, монтекарлы и интерполяции... и если возникла _реальная_проблема_ с производительностью (или постоянно повторяющаяся задача) переписал точечно _1_ функцию «тормозящую», выбрав её по данным профайлинга, заинлайнив «на ходу» сишный код (или нарыв ламповый фортрановый).

Подавляющее большинство нужных для счастья «кубиков» уже давно в {base} лежат, написанные сверх оптимально для своего обычного применения.

По моему более чем всё хорошо обстоит, а кто base не читает, и не использует — сам кузнец своего несчастья. :)

psv1967 ★★★★★
() автор топика

Бгыы, эк shell знатно просел. Не иначе как systemd повлиял - школоте больше не приходится ваять говноскрипты копипастой :-D

zabbal ★★★★★
()
Ответ на: комментарий от tailgunner

Ты хочешь написать новость или спровоцировать флейм?

А мне этот вариант больше понравился. Один фик новость о любой пузомерке это либо флейм либо отсутствие комментариев.

zabbal ★★★★★
()
Ответ на: комментарий от FuriousBean

рвёт все ненужные проприетарные поделия (типа Statistica) в пух и прах

Пример успеха в компаниях, где (а это почти во всех серьезных компаниях) стандартов в статистической обработке ровно 2 — Statistica & SPSS. Еще иногда SAS.

bookman900 ★★★★★
()
Ответ на: комментарий от FilosofeM

Как вариант - использовать пакеты, но это уже костыль.

Схреналь?

Опять таки, можно все разбросать по пакетам, но пакеты для этого не предназначены.

А для чего они, по-твоему, предназначены?

zabbal ★★★★★
()
Ответ на: комментарий от int13h

Это обычная обертка-пускалка

R работающий поверх (redis|Hadoop) это что, по такой логике?

А pbdDMAT это уже «большие данные» и «чисто R»? А если данные лежат в NCDF4 и не имеют практического ограничения на размер, это чья заслуга тогда?

Так можно иметь претензии практически к любой функции и пакету в экосистеме R.

psv1967 ★★★★★
() автор топика
Ответ на: комментарий от trupanka

Хотя одну вакансию, где хотели R, видел в фармокологии.

Может ты их просто найти не можешь, потому что читаешь также грамотно, как и пишешь?

zabbal ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.