Дискуссионная площадка Stack Overflow попыталась (https://stackoverflow.blog/2017/02/What-Programming-Language.../) проанализировать изменение интересов участников обсуждений в выходные дни, когда разработчики не занимаются основной работой и тратят своё свободное время на увлечения или изучение новых технологии. Так как отчёт Stack Overflow ограничен оценкой тегов, прикреплённых к вопросам в обсуждениях, один из работников Google попытался собрать более актуальную статистику и проанализировал (https://medium.com/@hoffa/the-top-weekend-languages-acc...) динамику внесения изменений на разных языках во всех репозиториях на GitHub, в разрезе выходных и рабочих дней. Данные получены на основе импорта в BigQuery истории коммитов, предоставляемых сервисом GHTorrent (http://ghtorrent.org/).
Наиболее значительный рост интенсивности использования в выходные 2016 года наблюдается для языка Rust. На втором месте оказался язык программирования шейдеров GLSL (OpenGL Shading Language). Третье место занял язык D. В списке также явно выделяется интерес к функциональному программированию. С четвёртого по двадцатое место занимают Haskell, Common Lisp, Kicad, Emacs Lisp, Lua, Scheme, Julia, Elm, Eagle, Racket, Dart, Nsis, Clojure, Kotlin, Elixir, F# и Ocaml. Места в рейтинге распределены на основе соотношения числа изменений в выходные и рабочие дни, например, в выходные отмечается почти двухкратное увеличение коммитов на языке Rust, по сравнению с рабочими днями.Последние записи в рейтинге демонстрируют языки, которые становятся невостребованными в выходные. Например, интенсивность разработки на языках Fortran, Visual Basic, Objective-C++, Plsql, Groovy и Objective-C в выходные снижается в два-три раза, что объясняется тем, что данные языки преимущественно используются на рабочих местах в офисе.
При рассмотрении динамики изменения интереса к языкам в разные годы выделяются следующие закономерности: По мере зрелости и общего роста популярности языка Go, перекос использования в выходные и рабочие дни сглаживается. Разработка на Python и C в выходные и рабочие дни распределяется равномерно. Для языка Ruby постепенно наблюдается смещение к разработке в выходные дни. Haskell и Clojure занимают нишу языков, изучаемых в выходные.Если рассмотреть статистику на основе изменения тегов в Stack Overflow, то выделяется рост интереса к языку ассемблера, что объясняется выполнением домашних заданий студентами. Rust в статистике Stack Overflow не фигурирует, а первое место по росту интереса в выходные занимает Haskell. Например, если в выходные теги с Haskell составляют 0.365%, то в рабочие дни - 0.21%.
URL: https://medium.com/@hoffa/the-top-weekend-languages-acc...
Новость: http://www.opennet.dev/opennews/art.shtml?num=46033
Так и запишем: "Rust - язык выходного дня"
Или кратко: "Rust, выходи!"
Или ещё более кратко: "Rust, уходи!"
Не уйдёт, но это ни к чему Вас и не обязывает...
> Не уйдёт, но это ни к чему Вас и не обязывает...Синтаксис напрягает, а так, да, можно отдыхать - если есть пару кг времени запасного..
А специально для вас есть php, с удобным и ненавязчивым синтаксисом )
"Rust -- дико сложные и непонятный, поэтому нужно строчить миллиард вопросов"
За исправление не благодарите.
> "Rust -- дико сложные и непонятный, поэтому нужно строчить миллиард вопросов"
> Rust в статистике Stack Overflow не фигурируетДа как сказать... Именно вопросов он не слишком много вызывает судя по всему.
> Так и запишем: "Rust - язык выходного дня"Раст еще молодой, ему можно. Не исключено, что в ближайшие годы он выстрелит повыше Go (который тоже когда-то был "выходным" языком).
А вот Haskell действительно безнадежен, учитывая, сколько ему лет. Так и остался "прикольной игрушкой".
Все что написано вами - полный бред.
Исключено.Если болезень головного мозга как-то устранима из-за которой апологеты rust считают, например, что исключения не нужны, то со сложностью основной фичи языка ничего сделать нельзя. А rust как раз нацелен на овощей которым трудно следить добровольно или принудительно за временами жизни объектов и делать согласованный код.
Из-за этого язык всегда будет маргинальным среди наивных дурачков считающих что вот наконец таки удалось найти серебряную пулю.
> ... которым трудно следить добровольно или принудительно за временами жизни объектов и делать согласованный код.Добавлю: или выбрать адекватную задаче парадигму программирования и следовать ей.
(ибо плюсы представляют собой редкий экземпляр мультипарадигменного языка).
> А вот Haskell действительно безнадежен, учитывая, сколько ему лет. Так и остался "прикольной игрушкой".Игрушкой? А теперь скажите это разработчикам ПО для энергостендов...
На выходных надо выходить из работы, а не погружаться в ЭТО :)
Отдыхайте, коллеги, отдыхайте... рабочая неделя будет плодотворнее
rust после pl/sql если на улице Москва а пить нет желания вполне себе за отдых сойти может :)
Надо эту статистику еще со статистикой Github сравнить для полноты картины.
... и дополним "Python и C - языки 24/7"
3?
nginx - это язык программирования?
имелось ввиду config lang, как и в случае с puppet )
Автор пересказа не будет так любезен, чтобы пояснить для тупых - что за язык такой программировани "oracle" и "sharepoint", и другие, не менее странные "языки" ?
теги этопост не читай @ сразу комменть
А где Си и Оберон
На графике сниза справа. Популярность С на выходных выше чем в на неделе. Руста - наоборот.Т.е. очередная "замена С" не нашла отклика в душах разработчиков.
В выходные программисты отдыхают, а школьников Си не обучают на фоне борьбы с суицид группами, в Расте меньше возможностей выстрелить в ногу. :-D
новость напомнила конференцию печатных издательств в Египте, на которой установили самую читающую страну америку с англией (бульварные романы и тд), самую читающую техническую литературу Тайланд, Малайзию, КНР, а страна больше всех проводящая время за техлитературой - Индия. Бгг, как они время посчитали?
в свободное от работы время программисты пишут майнеры
JavaScript умер или писать на нём быстрей и удобней, что время на выходные остаётся? :) А arduino и puppet каким боком там? Почему тогда не включили конденсаторы и резисторы?
> Почему тогда не включили конденсаторы и резисторы?Ну как же не включили -- kicad же ;-)
Ждём релизов популярных движков с поддержкой OpenGL?
Ждём кучу игр на самопальных недодвижках
Лучше уж на самопальных, чем на юнити.
Почему про D в новостях вообще ничего не слышно, как будто язык уже вымер?
И что в rust такого принципиально инновационного, чего нету в D, что понадобилось писать свой язык с нуля, нежели просто допилить D?
В D GC, в раст - шаред поинтеры.
В D интерфейсы и абстрактные классы, в раст - трейты, похожие на тайпклассы в хаскелле.
Сообщи, когда из D хотя бы GC выпилят.
> Сообщи, когда из D хотя бы GC выпилят.А чем Вам GC не нравится?
Тем, что он есть :) Религия не позволяет.Зачем трать ресурсы на то, что можно не использовать?
В Rust есть всё что нужно, что бы писать безопасный код без сборщика мусора.Несомненно есть области, где использование сборщика оправдано. Но утверждать, что Rust не нужен, потому что уже есть ваш_любимый_язык_с_GC - это какая-то чушь.
Зачем тратить ресурсы программиста на то, что может сделать машина?
Несомненно есть области, где использование языка без сборщика оправдано.
А сколько ресурсов тратится? Я периодически наблюдаю как коллеги в соседнем отделе борются с GC в Java, и мне кажется, что далеко не всегда есть выигрыш. А если и есть, то единицы процентов. И я не могу привести примеры, где было бы оправдано использовать язык со сборщиком мусора, может Вы приведете примеры?
>где было бы оправдано использовать язык со сборщиком мусораВезде, где потребление памяти и задержки, связанные с работой GC не критичны, не? Т.е. в большинстве приложений. К счастью, ваш раст и не позиционируется себя как general purpose язык, а является system language т.е. язык системного программирования: ядра, системные сервисы, драйвера, компиляторы и т.д.
Rust позиционирует себя одновременно и как системный, и как прикладной, а так же язык для задач, в которых требуется максимальная степень оптимизации, большая, чем в с++.
шутник...
> А сколько ресурсов тратится? Я периодически наблюдаю как коллеги в
> соседнем отделе борются с GC в Java, и мне кажется, что далеко не
> всегда есть выигрыш. А если и есть, то единицы процентов.Позвольте заметить, что GC в Java - это отдельная песня, давно уже
ставшая притчей во языцех.Создание быстрого GC для многопоточного приложения - задача весьма
нетривиальная, и многие институты бьются над ней уже много
лет. Однопоточные же GC весьма и весьма производительны.В то же время для задействования всех ядер процессора многопоточность
вовсе не обязательна. Языки для JVM просто не имеют возможности
параллелиться иначе как потоками из-за огромного рантайма. Языки же с
однопоточным GC предпочитают форки (см. например Ocamlnet).> И я не могу привести примеры, где было бы оправдано использовать
> язык со сборщиком мусора, может Вы приведете примеры?Смотря что Вы подразумеваете под оправданностью.
Тут фокус такой: сборщик мусора позволяет не оперировать памятью
вручную. А это большой плюс для программиста. И в любой прикладной
задаче, где не важна производительность, можно положиться на GC.Тут повышается производительность труда программиста, а не
производительность программы, которую он пишет.
> И в любой прикладной задаче, где не важна производительностьПрограммисту то может и не важно. Точней важней этого быстрей слабать, схалтурив на оптимизации.
Но, вот потом оказывается что всё жутко тормозно, уже конечному покупателю/заказчику...
Да и производителям аппаратуры и MS, на сотнях миллионах таких покупателей - супер профит,
так зачем оптимизировать [игры] под предпреддущее поколение ПК которое у нас продаются как раз как топовые (2 года задержка в магазинах даже в крупных мегаполисах Украины), - когда от производитля аппаратуры и MS ещё и взятку можно в карман положить!
Так и говорите.P.S.
Кстати, про эти "2 года задержка в магазинах даже в крупных мегаполисах Украины",
возможно даже их где то до того успешно поэксплуатирвав, и даже не раз,
даже почти уверен. Доказательство у меня тут одно - обратного никто не сможет доказать, да. Тем более что - задерка есть и это факт! И ещё один очень подозрительный факт: что BADBLOCK'и на винчестерах уже даже давно стали скрывать от покупателя... Притом что ведь ремаппнг секторов точнее даже целой группы из-за любого одного в ней - сильнейший удар по производительности при доступе по их адресах, т.е.производители винчестеров по нормальному - не заинтересованы чтобы она была сниженна в т.ч.и в новых дисках с полки, как и наборот заинтересован что бы появлялись видимые пользователю BADBLOCK'и - косвенно раньше и часто значительно раньше времени стимулируеющие к покупке нового диске (у меня на самом моём первом диске, досих пор работающем 1 BADBLOCK появившийся из-за уродского ограничителя напряжения Барьер сильно реагирующего на скачки, но нет - ремаппинг! Даже обычно никак невыключаемый.
Но в том-то и заключается одна из прелестей Rust, что он почти не тратит ресурсы программиста на ручное управление памятью, и при этом не использует GC.Под почти я имею ввиду использование unsafe и понимание системы заимствования.
Причём на понимание системы заимствования нужно потратить ресурсы программиста только один раз, собственно это входит в ресурсы используемые для изучения языка.
Если не использовать unsafe, то программист тратит на управление памятью столько же ресурсов, сколько при использовании языка с GC.
> Зачем тратить ресурсы программиста на то, что может сделать машина?Затем, что все знают точно: malloc, realloc and free are for free!
И никакой фрагментации, знай только себе вызывай.
И как всегда эти "все", которые якобы знают, на деле ничего не знают.
> И как всегда эти "все", которые якобы знают, на деле ничего не знают.Неужели нам щас опять расскажут сказки питонистов о том, что на самом деле ручное управление памятью это баланс между производительностью при выделении|освобождении и фрагментацией? Сказки о том, что непитонисты на самом деле не выбирают аллокатор под задачу, а довольствуются стандартным и прочую ересь завистников?
Кто о чем, а вшивый про баню? Оба утверждения, которые "все знают точно", ложны. Но питон или любой другой ЯП с GC к этому отношения не имеют.
Таки да. Rust самое настоящее растафарианство.
В D gc не обязателен. Есть проект по альтернативной stdlib для эмбеда, без gc. Да и контролируется он там хорошо при желании.
А еще без него не течет половина языка (замыкания, массивы, строкит (или тольк конкатенация) и тд) — смысл в нем? Писать на си к красивыми шаблонами, зато без IDE?
> Сообщи, когда из D хотя бы GC выпилят.На сколько мне известно в D GC опционален и его можно просто не использовать.
Потому что он вымер. См. абсолютное число коммитов в таблице.
Rust уже сейчас язык с самой эффективной работой с памятью, решил многие проблемы контейнеров c++.
Какие проблемы и каким образом? В C++, точно также как в раст, есть уникальное и разделяемое владение (unique ptr, shared, weak, raw). Плохо поддерживаются в STL? Напишите свою библиотеку контейнеров с блекджеком. Не нравятся существующие обёртки поинтеров? Напишите свои. Благо это часть библиотеки, а не языка.
> Какие проблемы и каким образом? В C++, точно также как в раст,
> есть уникальное и разделяемое владение (unique ptr, shared, weak, raw). Плохо
> поддерживаются в STL? Напишите свою библиотеку контейнеров с блекджеком. Не нравятся
> существующие обёртки поинтеров? Напишите свои. Благо это часть библиотеки, а не
> языка.Проблема неосиляторства и падкости на рекламу.
> Почему про D в новостях вообще ничего не слышно, как будто язык уже вымер?он и не рождался чтобы вымирать.
> Почему про D в новостях вообще ничего не слышно, как будто язык
> уже вымер?Я не знаю D, но предположу, что проблема в маркетинге. Есть такой приём у маркетологов: попробуй представить себе человека, который, не зная ничего о D, прочитает статью на википедии о D и заинтересуется языком хотя бы до того уровня, чтобы почитать туториалы и мануалы. На каком языке пишет этот человек? Что он пишет? Что он хочет писать? Чего ему не хватает в его языке? Какие его проблемы решит D, и какие добавит? Нарисуй у себя в голове образ этого человека. Есть ли у него жена, дети? Сходи в гугл, найти фотку человека, которая подходит тому программисту, которого ты представил. Научись думать так, как думает этот человек.
Если фантазии достаточно, то придумай нескольких таких людей, с разными бекграундами. А теперь сходи на википедию, и почитай там статью о D глазами каждого из тех людей, кого тебе удалось вообразить.Я читал википедию о D десять лет назад, я перечитал её сейчас. Тогда мне D показался совершенно ненужным и неинтересным языком, даже несмотря на то, что его идея объединить возможности интерпретирумых и компилируемых языков очень перекликалась с теми моими интересами, потому что кроме изложения самой идеи я там не нашёл ничего для себя. Сегодня ситуация чуть лучше: я вижу, что D во многом напоминает rust, и можно как-нибудь потратить пару выходных, чтобы посмотреть повнимательнее, и оценить преемественность идей. Но я не буду даже выяснять, есть ли ебилды для D: он мне сегодня уже не нужен, потому что основная идея D устарела уже лет на десять: сегодня жабаскрипт компилируют в native код, граница между интерпретируемыми и компилируемыми языками размыта настолько, насколько десять лет назад она была размыта только в lisp'е.
> И что в rust такого принципиально инновационного, чего нету в D, что
> понадобилось писать свой язык с нуля, нежели просто допилить D?Не могу знать, поскольку не знаю D. Если я найду время и желание ознакомиться с D, то может быть выясню.
> Почему про D в новостях вообще ничего не слышно, как будто язык
> уже вымер?
> И что в rust такого принципиально инновационного, чего нету в D, что
> понадобилось писать свой язык с нуля, нежели просто допилить D?Вынужден Вас поддержать: авторы как Rust так и D не задавались вопросом, чем их языки отличаются от существующих и кому/зачем это надо.
В результате получилось много синтаксического сахара и узкоспециальных случаев, встроенных в язык.
Да, ты совершенно прав. Все языки программирования -- это вариации на тему машины Тьюринга.
> Все языки программирования -- это вариации на тему машины Тьюринга.Нет. Не все ЯП тьюринг-полные. Учите матчасть.
Ну офигеть, мои любимые языки оказывается самые популярные, а нам тут втирали "скала, ява"... :)
Где скала?
Мне кажется, что более корректный вопрос: где середина таблички?
Лет 5 назад скала попала бы в языки выходного дня. А сейчас то кому она нужна как хобби? Для проектов, которые никто кроме автора не будет поддерживать, есть haskell. В JVM-проектах на развитие есть Java и Kotlin.
В haskell нет библиотек. Фича скалы в поддержки интероперабельности с джава-библиотеками, при том, что отдельные модули можно писать как в haskell. Двоих зайцев одним выстрелом.
>В JVM-проектах на развитие есть Java и Kotlin.Чем джава лучше скала? Чем котлин лучше скала?
Вот ни разу не программист, но чувствую что мне тут лапшу вешают.
Если анализ проводился по тегам то, получается что тот-же rust в гугле лидирует по кол-ву заданных вопросов и ответов, а не его популярности.
> ни разу не программист, но чувствую что мне тут лапшу вешаютДержи нас в курсе своих ощущений.
Статистика не о чем... точно так же можно написать что в выходные люди пьют больше воды дома чем на работе.
Kicad - язык программирования?
Т.е. eagle и nginx, как ЯП, вопросов не вызывают?
Давайте будем называть вещи своими именами.
Выходные это суббота и воскресенье. Я работаю 5 дней в неделю, за эти 5 дней мне мягко говоря надоедает втыкать в дисплей. А вы говорите я буду сидеть 7 дней вместо 5.
Если вы молоджой, амбициозный нерд который провтыкает все выходные сидя дома то это статистика про вас.
А я лучше покатаюсь на велосипеде, борде, схожу в кино с женой || подругой, приеду на дачу посидеть около камина, но точно не буду втыкать в монитор задавая вопросы на SO.
молодой fixed
И хорошо, что эта статистика не про тебя. Твоя жизнь никак не влияет на тренды взлётов и падений языков. И никак их не отражает. Она совершенно бесполезна и бессмысленна.
> И хорошо, что эта статистика не про тебя. Твоя жизнь никак не
> влияет на тренды взлётов и падений языков. И никак их не
> отражает. Она совершенно бесполезна и бессмысленна.Приведенная статистика- согласен, совершенно бесполезна и бессмысленна. Как и жизнь гиков попадающих в нее по выходным...
Похвастался? Молодец, возьми с полки пирожок.
> Давайте будем называть вещи своими именами.
> Выходные это суббота и воскресенье. Я работаю 5 дней в неделю, за
> эти 5 дней мне мягко говоря надоедает втыкать в дисплей. А
> вы говорите я буду сидеть 7 дней вместо 5.
> Если вы молоджой, амбициозный нерд который провтыкает все выходные сидя дома то
> это статистика про вас.
> А я лучше покатаюсь на велосипеде, борде, схожу в кино с женой
> || подругой, приеду на дачу посидеть около камина, но точно не
> буду втыкать в монитор задавая вопросы на SO.Да это просто кривая статистика не очем, с выводами с потолка. Напримиер авторы почему-то решили что в выходные - люди не работают а занимаются самообразованием. Они такие наивные идиоты? Вряд ли.. они просто сознательно пошли на подлог.
очень хотелось похвастаться странными данными которые они смогли получить без понимания что эти данные говорят.
А когда ты работаешь над повышением своей квалификации и изучением нового?
Судя по GLSL на втором месте - это авторы игровых движков портируют их на OpenGL, чтобы релизнуть их под Linux.
> Kicadа что там программируют ?
Печатные платы же
Какой универсальный язык для души учить Python или C++?
Есть два стула..
И что ты ответил когда тебе задавали этот вопрос впервые?
На оба сяду, разумеется!
Каждый день?
В какую сторону компиляция будет?
В душу или из души?
Эх, а вопрос то серьёзный был.
> Эх, а вопрос то серьёзный был.Для шестиклассника, может, и серьёзный.
Для Dуши - конечно же D! Там изучать - ума ряхнешься! Но изученное будет как сакральные знания.
А Kicad это разве язык программирования?
по крайней мере, можно собрать так, что возможно будет программировать.
hint: KICAD_SCRIPTING, KICAD_SCRIPTING_MODULES, KICAD_SCRIPTING_WXPYTHON
Люди которые выполняют свою работу от week.begin до (week.end -= 2) отдыхают с девушкой/женой в последние итерации цикла for (auto it : week). А на Rust'е студентота балуется.
> Люди которые выполняют свою работу от week.begin до (week.end -= 2) отдыхают с девушкой/женой в последние итерации цикла for (auto it : week).Не отдыхают, потому что своим "week.end -= 2" ты убрал из недели те самые два дня, когда они должны были отдыхать.
Да, такие как ты "отдыхают" с тёщей на даче.
>отдыхают с девушкой/женой в последние итерации циклаГусары, молчать! :)
Не удивлён, что у java примерно одинаковое соотношение, т.е. кто знает жабу, прогает и для себя на ней же. 100% true.А то видел тут кулстори, что днём жабисты из под палки умирают на кровавоынтырпрайзных проектах, а по вечерам и ночам прогают на всяких одухотворённых Rust-ах и подобном. Нуну....
Вот с plsql у них в самую точку - никто в здравом уме на нём для себя не будет прогать.
Джависты, скорее, будут использовать другие языки на JVM, такие как Scala, Clojure и Groovy. Так как инфраструктура и библиотеки уже знакомые.
А шарперы для души, вероятно, пишут на f#.
> Джависты, скорее, будут использовать другие языки на JVMТупые потому что. У Java проблема не в языке, а в неправильно выбранной архитектуре VM.
А где свфит?
Еще можно было бы изучить зависимость от фазы Луны, в частности как меняется распределение в полнолуние. Узнаем, на чем предпочитают кодить оборотни
Каждый язык хорош для конкретных задач. Не будешь же на Go или VB писать дрова. Как и на С c stdlib писать сайт )))