N>О, ещё интересный факт для любителей C# — его вообще нет среди необходимых навыков. В отличие от "мёртвого трупа страуса", который аж на 18% потянул. Java и Scala присутствуют нормально.
Это прикладное направление, к разработке не имеет никакого отношения. Не следует путать инженерию и анализ статистики.
Через пяток лет появятся спец. инструменты и от разработки там ничего не останется.
Для примера, у нас в ии физиологии научные сотрудники пишут сложные скрипты на матлабе, но при этом называть их программистами как-то неправильно.
Здравствуйте, namespace, Вы писали:
N>Это прикладное направление, к разработке не имеет никакого отношения. Не следует путать инженерию и анализ статистики. N>Через пяток лет появятся спец. инструменты и от разработки там ничего не останется.
Останется. Excel уже миллион лет как доступен, но прикладники из социальных наук всё рвно R используют. Хотя первый все их нужды покрывает.
N>Для примера, у нас в ии физиологии научные сотрудники пишут сложные скрипты на матлабе, но при этом называть их программистами как-то неправильно.
А никто их программистами и не называет, сабж посмотри — data scientist'ы они. Ноьпрограммировать всё равно приходится.
N>Через пяток лет появятся спец. инструменты и от разработки там ничего не останется.
Спец. инструменты уже были и 5 и 10 лет назад. И сейчас есть, как вполне успешные (SAS Enterpise Miner и вокруг), так и не очень (Microsoft Machine Learning Studio). Но сейчас всё идёт к тому, что от инструментов уходят, а приходят к программированию со специализированными библиотеками, так как код писать удобнее, и код понятнее, чем громоздкие диаграммы.
Здравствуйте, Nuzhny, Вы писали:
N>Интересная статья про эту специальность. Для меня сюрпризом была такая высокая востребованность R, думал, что это больше академический, а не практический язык.
N>О, ещё интересный факт для любителей C# — его вообще нет среди необходимых навыков. В отличие от "мёртвого трупа страуса", который аж на 18% потянул. Java и Scala присутствуют нормально.
что более интересно, что nvidia, которая сча по дефолту своими видеокартами и всякими кудами захватила рынок машинного обучения, в своих последних разработках не поддерживает винду
— они выпустили довольно мощный фрейм ворк — он на плюсах, вроде еще питон поддерживает ... но не ставится на винду
Здравствуйте, De-Bill, Вы писали:
DB>Я могу сделать это в 3 строки на Python, беру и делаю. На C# это заняло бы строк 20-30 со всякими вложенными циклами и подобной хренью
Если правильно C# готовить, то код получается практически 1 в 1 с питоновым. Я пробовал.
Здравствуйте, Sharov, Вы писали:
S>Я про удобность питона для подобных задач не спорю. Но рано или поздно эти наработки должны уйти в продакшн, или работать на компилируемом языке.
Ты неверно понимаешь о чем речь. Когда мы пытаемся что то собрать — вот тут питон по полной, а с C# глухо, хотя кое какие подвижки последнее время есть, так как востребованность довольно высокая. А вот когда мы уже получили готовую обученную сетку, ее реализация для прода может быть и на C#, но скорее всего это будет вообще С++.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Ты неверно понимаешь о чем речь. Когда мы пытаемся что то собрать — вот тут питон по полной, а с C# глухо, хотя кое какие подвижки последнее время есть, так как востребованность довольно высокая.
Глухо, потому что библиотек нет. Если бы ms лет 5 назад этим серьезно озаботилась, на уровне BCL, то C# был одним из главных игроков.
НС>А вот когда мы уже получили готовую обученную сетку, ее реализация для прода может быть и на C#, но скорее всего это будет вообще С++.
Я эту тему только начал курить, и могу ошибаться, но как я понимаю, обученная сетка -- это по сути статичная структура данных, множество чиселок? Разве нет, что и куда там переносить?
Здравствуйте, Sharov, Вы писали:
S>Глухо, потому что библиотек нет. Если бы ms лет 5 назад этим серьезно озаботилась, на уровне BCL, то C# был одним из главных игроков.
Дело не только в библиотеках. В C# нет репла, быстрой перегрузки кода, динамики и переносимости.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Да, но не только. Библиотек не просто так нет. Сабжи — они далеко не программисты, поэтому им нужны предельно простые языки типа питона.
Согласен, телодвижений у питона меньше, это колоссальный плюс. Хотя выше уже писал, что у меня перед глазами пример математика (~60 лет), который и на плюсах писал и на шарпе последние лет 5 пишет. В обычном процедурном стиле -- никаких паттернов, linq и т.д.. Класс и метод(ы). Что мешает остальным и более молодым делать также --
Здравствуйте, Ночной Смотрящий, Вы писали:
N>>В C# нет репла, НС>Есть
C# Interactive? Недавно появилось и не сравним с jupyter. Поезд давно ушел.
N>> быстрой перегрузки кода, НС>Есть
C# Interactive? Большинство кода будет лежат в dll, которые нужно будет строить отдельно.
N>> динамики НС>Есть, но если ее активно использовать, то смысла в C# нет.
+1
N>> и переносимости. НС>Есть.
.NET Core? Появилось недавно и не сравним с CPython. Поезд давно ушел.
Здравствуйте, Sharov, Вы писали:
S>Согласен, телодвижений у питона меньше, это колоссальный плюс. Хотя выше уже писал, что у меня перед глазами пример математика (~60 лет), который и на плюсах писал и на шарпе последние лет 5 пишет. В обычном процедурном стиле -- никаких паттернов, linq и т.д.. Класс и метод(ы). Что мешает остальным и более молодым делать также --
Писать можно на чем угодно, вопрос стоит в продуктивности в области анализе данных.
Продуктивнее Питона сейчас имхо только Ехcel, но там ограничения по масштабируемости очень суровые так как UI гвоздями прибит.
Здравствуйте, Ночной Смотрящий, Вы писали:
DB>>С библиотеками для data science у него не то чтобы всё плохо. Их просто практически нет. НС>Не совсем так. Есть, как минимум, CNTK.
Ну, это лишь для нейросетей. При всём при этом он во многом ориентирован на Питонистов (можно использовать вместе с numpy). Поэтому вряд ли этот один из многих тулкитов повысит процент использования C# среди исследователей данных.
Здравствуйте, De-Bill, Вы писали:
DB>С другой стороны на Python весь код будет выглядеть примерно так без никаких экстеншенов вообще и ответы на все вопросы выше ясны сразу же: DB>
DB>for trainData, color in zip([trainData1, trainData2, trainData3], colors[:3]):
DB> for x, y in trainData[:trainSampleCount // 3]:
DB> cv2.circle(img, (x, y), 2, color)
DB>
На шарпе примерно так же можно. Просто хорошее API требует отдельного внимания и усилий.