Pull to refresh

Comments 124

оценивают, насколько часто пользователи ищут туториалы по конкретному языку. Ведь, по мнению создателей рейтинга, именно поиск туториалов показывает, насколько популярен язык конкретно сейчас.
То есть — это рейтинг популярных к изучению языков, а не рейтинг использования, так?
Если С и С++ выучены много лет назад, то и искать туториалы по ним вряд ли будут, а из-за относительной сложности С++ после прочтения пары страниц «С++ за 21 день» многие ищут, что полегче и выбирают Java(Script)?
Я бы сказал бы проще — этот рейтинг фигня. Почему? Объясню. Например — если я гуглю скажем 'spring', я при этом изучаю Java, или нет? А если graalvm? А если еще лучше — загуглите слово spark — и вы найдете как Apache Spark, так и веб фреймворк. И какой из них я искал, и что за язык я при этом изучаю?

А если я гуглю nodejs — я что изучаю при этом?

Ну вы поняли, надеюсь. Экосистема языков, особенно сложных — она очень широкая, и запросы к поисковикам могут быть самые разнообразные. И попытка как-то их ограничить — она явно искажает результаты.

И да и нет.


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


Даже больше того — какую-то объективную метрику искать даже и не надо, как делать объективный срез. В целом, python уже лет сто стал стандартом дефакто, а javascript, не смотря на некоторую корявость, засел в браузерах и никак не собирается оттуда как-то деваться. Java — стандарт надёжных систем, а Си — ну это то, на чём первые три пишутся. Это анализ если пытаться в объективность, хотя и не сильно претендует. Но. Зачем оно надо? Кроме как тренировки ума никаких действительно полезных выводов из неё не следует, а вот банально прощупать тренды — полезно. Перед выбором фреймворка для изучения, при запуске нового проекта и вот это всё. И таким действиям особо не нужны объективные выводы, и даже более того — они могут быть вредными, так как можно будет взять объективно крутой и прогрессирующий Dart и потом офигеть от того, где он сейчас. Тогда как TypeScript воспринимался как каким-то подобием. При всём при этом сбоку уже сто лет был CoffeScript, но чутка помахав крыльями тот так и остался уделом редких "смотрите какую штуку я нашёл!".


Нормальные рейтинги, просто вам они не нужны.

>Нормальные рейтинги, просто вам они не нужны.
А кому они нужны? Ну вот серьезно, кто сделал из этого рейтинга полезный для себя вывод? Хотел бы я поглядеть на такого человека.

Ну вот какой смысл в том, что Java с питоном скажем поменялись местами? А C почему-то вылез аж на первое? В то время как мы и так прекрасно знаем, какой из них для чего хорош, и где он плох.
Смотри, вот я. Когда после школьных паскалей я думал, на чём начать писать в нормальном мире программирования, от из-за этих рейтингов и выбрал питон, и пишу на нём до сих пор (правда, теперь ещё и на js дополнительно, но это пройдёт).
Вопрос был про «полезный для себя вывод» =)
Никаких объективно полезных выводов из этого сделать нельзя, можно лишь удовлетворить любопытство. Потому что «не самый популярный» (третий, пятый, а то и десятый) ЯП не означает, что вам с ним будет трудно найти работу. Трудно — если язык один из наименее популярных, то есть вся суть рейтинга сводится к трём категориям: популярные, непопулярные и что-то среднее. И тут становится ясно, что:
* Python, C/C#/C++, Java, JS, PHP, GO — популярные
* Swift, Lua, Rust, Kotlin, TypeScript, R, 1C — неоднозначно
* Pascal/Delphi, Basic/VBA, Erlang, Fortran и многое другое — непопулярные.
Дальше можно выяснять, почему одни языки популярные, а другие нет, но не более того. С практической же точки зрения — подавляющее большинство изучаемых и легкодоступных для изучения ЯП относится первой категории (ну кроме паскаля), поэтому без работы никто не останется. Да и если вы реально мастер языка из последней группы, то вы тоже можете или устроиться по специальности (и не факт, что зп редкого спеца будет меньше), или без особого труда переучиться, или не переучиваясь пойти туда с понижением квалификации.
* Swift, Lua, Rust, Kotlin, TypeScript, R, 1C — неоднозначно
* Pascal/Delphi, Basic/VBA, Erlang, Fortran и многое другое — непопулярные.

Как это вы сделали вывод, что Basic/VBA менее популярные, чем Lua и Rust?
В рейтинге, на который ссылается пост — в точности наоборот.

Не, ну а если бы выбрали скажем java разве что-то сильно изменилось бы? Ведь то, как язык зайдет личто тебе — от его рейтинга почти не зависит. А найдешь ли работу — тоже примерно одинаковые шансы для первых десяти.

UFO just landed and posted this here
Вопрос в том, так же ли умны составители этих рейтингов, как гугл.
Ну и так ясно, что это средняя температура по больнице
UFO just landed and posted this here
Имелось в виду не изучение конкретным человеком. Приток новых разработчиков на плюсах сильно ниже, чем на более простых Java и Python. Плюс по плюсам достаточно качественной литературы, даже по новым стандартам.
Но с вами это обсуждать бесполезно, флуд ради флуда я не собираюсь разводить.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Согласен со всем, кроме decltype =).

Вас же не смущает, что 5 и '5', var и &var, var и *var — это разные типы и/или сущности? Почему же вызывает удивление, что var и (var) тоже разные? =___=
UFO just landed and posted this here
мой любимый пример это конечно посчитать число полей в произвольной структуре, ну только публичных понятное дело и не юнионов и не битовых полей

Поделитесь ссылкой?

ответов на вопросы «как сделать такую-то хитровывернутую штуку» они не дают
а должны?
Перечитайте текст новости и слово «туториал» в частности.
UFO just landed and posted this here
Я же говорю — дискутировать с вами, только флуд разводить. С каких пор туториалы описывают все нюансы языка, а не дают общие сведения? Изученное Вами в университете до сих пор не обновлялось и не дополнялось новыми знаниями и практиками?
Вы мне напоминаете персонажа рассказа «Профессия» Азимова, но не главного героя, а того, который проиграл соревнование, потому что был обучен не той версии инструмента.
UFO just landed and posted this here
1. Здесь нет UB в языке, только в голове.
2. Компилятор ругается, что const отбрасывать нельзя.

Или аффтор переврал пример или…

И вообще, это преждевременная оптимизация и в серьезных учебниках поясняется, как ее _правильно_ делать, если уж начинать.
UFO just landed and posted this here
Ну я думаю, что сегодня продолжать обсуждать не стоит…

Конечно, возвращаемый объект Child неконстантен, да и он вообще временный.

Но чтобы сказать про UB, надо ткнуть пальцев в стандарт с этим описанным UB. Но ни я ни ты этого сделать не можем. Просто никто не знает С++.

Но это не значит, что компилятор или язык виноват, это простая человеческая ошибка =)

PS. Я кстати, не уверен, что в QXmppTransferManager ошибку исправили.
UFO just landed and posted this here
В общем, посмотрел свежим взглядом.

Компилятор не ругается, потому что в оригинале было
Child getChild() const;
«Оптимизация» конечно оборжаться — сначала возвращаем дипкопию сложного Чайлда, чтобы потом вернуть из него стринг по ссылке =)

Логично (и правильно) было бы сделать так
const Child& getChild() const { return m_child;}

Впрочем, даже простое (без ссылки)
const auto name = p.getChild().getName();
уже решало проблему.

Не надо втыкать ссылки куда попало. Заготовка для опытов тут.

С появлением мув-семантики в С++14 ситуация еще более усложнилась, потому надо читать учебники, типа Скотта Мейерса. Там, кстати и про преждевременную оптимизацию есть, что не надо стесняться возвращать по значению.

Висячая ссылка на временный объект это все же сюрприз, но не UB, т.к. описана в Стандарте.

Как раз много лет назад C++ еще можно было выучить даже простому смертному

На работе использую С++ и Python, хобби — Rust.
C++ не гуглю совсем, если что подзабыл — перехожу на cppreference сразу.
По Rust — все сервисы (docs.rs, crates.io и т.д) в закладках. Очень редко гуглю что-то хитровывернутое.
И только Python, язык, который мне почти совсем не нравится и я его знаю плохо, требует постоянного гугления.
То есть я поднимаю рейтинг тому, кому хотел бы его опустить…

Согласен. Python — это язык с самой ярковыраженной stackoverflow driven development необходимостью. На это есть несколько причин, основные:


  • Довольно дурацкая дока (особенно в библиотеках), постоянное отсутствие примеров
  • Постоянные **kwargs, в которых даже читая source code библиотек не всегда понятно что происходит
  • Каждый пишет как хочет, нет общих паттернов. Код DataScience и код Web Service и сопутствующие библиотеки отличаются по парадигмам и подходам, кроме того есть огромное количество разных покалений (вроде "как тут делать async до того как завезли async"), и все библиотеки на разных покалениях сидят.

В результате, единственный быстрый способ писать на Python — гуглить вопрос как есть и копипсатить со stackoverflow. Качество кода — соответствующее

UFO just landed and posted this here
Долгое время работал на PHP, сейчас благополучно перешел на Dart. Язык очень активно развивается, релизы выходят довольно часто, да и сам язык довольно приятный.
Не так давно пробовал Rust, понравились его принципы безопасности, просмотрел кол-во вакансий в нашем городе, их 1 на весь Харьков и та для сеньера. Понятно что для бизнеса выбирают то что проверенно временем, но хотелось бы побольше вакансий для новых ЯП

Тут только самим создавать их...

Добавьте что ли Julia в опрос… Самый современный язык для математики, а в списке его нет....

UFO just landed and posted this here
Для своих проектов использую Parser-3, который никогда не попадет ни в один рейтинг, разве что с конца. Высокая скорость написания кода и скорость работы интерпретатора, полезные сообщения об ошибках и стабильность делают его исключительно приятным в работе.
Интересно, как составлялась выборка из «почти 10 000» программистов? Нет ли тут такого нюанса, что «телефонный опрос показал, что телефоном пользуются 100% опрошенных»?
Например, у нас в институте (сугубо наука) наиболее популярные инструменты — это фортран, матлаб и разные Си. При этом я даже не знаю, можно ли назвать тех, кто пишет и поддерживает эти программы, программистами. Так как основная задача почти у всех — это статьи, а программа — лишь инструмент, чтобы сделать конкретный расчет. Т.е. программа очень часто не является отчуждаемым «продуктом для пользователей». Это программирование или нет? Нужно ли его учитывать при составлении таких рейтингов, и как?
Аналогия — «самые популярные авто» VS «используются профи» VS «используются в бизнесе».

Упрощая — популярные, это не значит «полезные» или «крутые». Это скорее — «для учеников»
Все корпорации и говермент в северной америке массово мигририруют в облака. А в основном это AWS+Python на лямбдах
Вроде бы, Azure не так уж отстаёт от AWS, а там всякий .NET

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

UFO just landed and posted this here
На моем опыте выборка по упоминанию языка в поиске вообще не репрезентативна. Я люблю пользоваться гуглом, даже чтобы быстро перейти на заранее известную страницу в документации. Только при этом в 90% в качестве префикса указываю свой фреймворк. Могу еще что-нибудь по mysql/git/bash поискать. А php я и так для повседневной работы знаю достаточно. Плюс что-то можно посмотреть прямо в ide. Так что конкретно по языку очень редко приходится что-то искать.
Опечалило отсутствие в опросе Visual Basic. По версии TIOBE он на шестом месте; по версии PYPL — был бы в десятке, если бы не искуственное разделение на Visual Basic и VBA, которые один и тот же язык. По обоим рейтингам он намного опережает нишевые языки, упомянутые предыдущими комментаторами (Rust, Lua, Julia)

Rust нишевой? Какая у него ниша? А Visual Basic — не нишевой?

Раст пока экспериментальный, ниша его в дикой природе не определена. VBA — скриптовый же.

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


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

Вы так говорите «сейчас», как будто 10, 20, 50, 100 лет назад было иначе?
Это вот очень яркий пример «шашечки или ехать».
Прототип пишут чтоб протестировать, доказать идею и выкинуть.
Потом, если взлетит — можно и абстракции и архитектуру и вот это все.

Действительно, кому сейчас надо закладываться на архитектуру, продумывать слои, строить абстракции для связи между ними, так что бы это все не поехало через 3-4 года.

Как показывает практика, с такой-то архитектурой, слоями и абстракциями, в большинстве случаев проект в кусок неподдерживаемого говнища превращается гораздо раньше, чем через 3-4 года.

Показательный пример — Windows NT, спроектированная с архитектурой, слоями и абстракциями, и на протяжении следующих 10 лет рушившая всё это, потому что в начале девяностых никто не смог угадать, что потребуется пользователям в начале нулевых — win32k в ядре (и ликвидация остальных подсистем), UAC вместо логина, вот это всё.
UFO just landed and posted this here

На С пишется много чего.
Те же микроконтроллеры далеко не все на С++ программируются.
Ядро линукса по большей части на С писано.
Еще SQLite (да и многие известные СУБД) тоже на С.
Компиляторы, опять же.

UFO just landed and posted this here
Я не говорю что на нем вообще не пишут,

Но вы писали следующее: "Но я не видел проектов или разработчиков на нем"


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

Возможно, хотя не уверен в этом, особенно если учесть, что далеко не все проекты публичны (особенно если это не очередной "здравствуймир", а что-то действительно серьезное).
Опять же, существующее положение вещей в видимом большинству мире выдвигает на первые позиции всякую веб-разработку и быструю разработку не программистами (соответственно, привет JS и питон). Но Это не отменяет "невидимую" часть, а именно массовую промышленную будничную (не стартапы всякие модные) разработку. Там, естественно, используется не только Си, но и его доля, как мне кажется на основании моих наблюдений, весьма велика.
Я сам, кстати, на Си давно ничего не писал, но разработчиков на сем языке, тем не менее, регулярно видел и вижу до сих пор.


Голосование на хабре подтверждает

Голосование в интернете показало, что 100% пользуются интернетом.
Впрочем, даже на хабре Си не оказался самым непопулярным языком.


да и кол-во вакансий тоже

Количество вакансий на Delphi исчезающе мало, но почему-то количество программистов, которые программируют на Delphi, и которых знаю я лично (причем не по работе), непропорционально велико относительно количества вакансий.

UFO just landed and posted this here
Не зная С, ты не знаешь ни C#, ни целое СИмейство C-подобных языков.

У тебя тогда просто нет базы, фундамента обучения.

Конечно, работы на чистом С не там много, но например я получил пару месяцев назад нормальный контракт. А вот стыковок с С-библиотеками много, и без знания С ты далеко не уедешь.
UFO just landed and posted this here
А я >25 лет (С) и шарп с релиза 2.0 и таких нубов видел предостаточно.

Узкий специалист широкого профиля (с)
UFO just landed and posted this here
Я таких в команду никогда и не брал…
UFO just landed and posted this here
Только не говори, что ты его не знаешь.

Это как говорить, что знать английский необязательно, т.к. доки переведены =)
UFO just landed and posted this here
С это и есть очень базовый уровень
> «ну это как в плюсах, только вот то, то и то делать нельзя».

Существенная часть фишек Си отсутствует в плюсах, например variable-length arrays
UFO just landed and posted this here
В % от синтаксиса языка очень мало. Над этим работает Комитет.

А вот UB там разные =)
Ну так можно далеко углубиться — «не зная ассемблер PDP-11, ты не знаешь Си» и т.д.
Знать Си безусловно полезно, но я бы не сказал, что для программиста на ЯВУ это столь необходимо.
Я знаю и ассемблер PDP-11. Связи с С никакой нет, разве что автоинкременты/декременты в адресации, но это лишь внешнее сходство.

Что такое ЯВУ, сейчас границы размываются (куда отнести С/С++ — спорят). Но вот тему на форуме, как вызвать CreateProcess() из VBA, я видел прямо сегодня.
Думаю, что связи больше: первое, что приходит в голову — отсутствие операторов &&= и ||=
UFO just landed and posted this here
Те же микроконтроллеры далеко не все на С++ программируются.

Потому что под них зачастую есть только компилятор C, и то кривой.


Ядро линукса по большей части на С писано.

Исключительно из-за упёртости Линуса.


Еще SQLite (да и многие известные СУБД) тоже на С.

А теперь вспомните, сколько им лет. Когда их начинали писать, C++ ещё и в помине не было.


Компиляторы, опять же.

О, а это какие, интересно? Я так навскидку могу только TCC вспомнить, но обычно не для разработки используют. GCC написан на смеси C и C++. Clang с самого начала написан на C++.

Потому что под них зачастую есть только компилятор C, и то кривой.
А что такое кривой С-компилятор?

Собственно, от эмбедщиков слышно только про проблемы ограничения по ресурсам. Шаблонный С++ только проникает туда, но даже STL часто не влезает. И есть глобальная проблема с исключениями — с ними невозможны сильные оптимизации.
UFO just landed and posted this here
Вроде 8-128кБ памяти. Но я не эмбедщик.

Zero-cost примитивы конечно влезут, но libstdc++6 уже несколько Мб давно
UFO just landed and posted this here
Потому что под них зачастую есть только компилятор C, и то кривой.

Не всегда кривой, но в любом случае это создает достаточно много рабочих мест для тех, кто пишет на С.


Исключительно из-за упёртости Линуса.

Скорее: "А теперь вспомните, сколько им лет".


А теперь вспомните, сколько им лет. Когда их начинали писать, C++ ещё и в помине не было.

Это не отменяет того факта, что для многих проектов на Си продолжается разработка, причем часто все на том же Си (наверное, чтобы не плодить языки, которые необходимо знать разработчикам).


GCC написан на смеси C и C++.

Т.е. Си там все-таки присутствует.

Не просто «присутствует» — его там втрое с лишним больше, чем C++, судя по статистике на github.com/gcc-mirror/gcc
Но я не видел проектов или разработчиков на нем, даже когда дело касалось программ для микроконтроллеров.
Практически вся телефония, начиная от Open Source-ных, Asterisk, FreeSwitch, OpenSIPS, Kamailio и прочее, заканчивая проприетарными вещами, когда sip-прокси или сервер должен общаться с ядром Linux или драйверами аппаратного оборудования для обработки голосового потока.
А что такое «самый популярный язык программирования»? Самый используемый по мировому объёму кода в байтах? По приносимой написанными на нём программами прибыли? По числу выданных учебными центрами сертификатов об изучении? По числу умеющих хотя бы Hello world людей? Или ещё по какому-то критерию?

Самый популярный автомобиль — понимаю. Самый популярный движок сайта — тоже всё ясно, это исчислимая величина. А как может быть язык программирования быть самым популярным — не понимаю. Нужно уточнять, потому что иначе окажется, что:

  • по вакансиям (с учётом того, что в вакансиях иногда требуют 2-3 языка) самым популярным наверняка будет Python — он нужен не только программистам, но и различным учёным и исследователям в качестве вспомогательного навыка автоматизации;
  • по числу изучивших на курсах — ну, возможно, Java, её преподают много и часто;
  • по доходам от продажи программного обеспечения — наверняка C++, на нём пишутся масштабные и дорогостоящие программные продукты, включая ОС;
  • по числу тех, кто умеет хоть чуть-чуть — безусловно, Pascal, его знает чуть ли не 100% россиян, отучившихся в школе.

Так что «рейтинг самых популярных ЯП» — это всё равно что осмотр слона слепыми мудрецами. Измерили неизвестно что неизвестно как и получили соответствующий результат.
UFO just landed and posted this here
Зачем мешать языки программирования с языками разметки в одну кучу?
UFO just landed and posted this here
С тем же успехом можно было бы добавить русский и английский языки в отдельных пунктах — тоже ведь используются в ходе разработки. И до кучи PDF — чем не язык?
UFO just landed and posted this here
смешной рейтинг, кому он нужен вообще?
неужели не понятно, что «доля» Си берет половину от С++ и еще половину от С#?
Интересно, чем объясняется мощный рост Perl в первой таблице и Ada во второй.
Есть ли рейтинг, который учитывает сферу применения того или иного языка программирования? ИМХО, популярность языка скрорей зависит от того, где он применяется.
UFO just landed and posted this here
На Гитхабе опенсорсные проекты, и любительские.

Коммерческие же (считай рабочие) там представлены микроскопически.

Далеко не ходить — свои рабочие я храню на приватном битбакете.
UFO just landed and posted this here
Использую ассемблер UASM, C/C++, Lua в точности скрипты для игры сталкер. Всё пожалуй. Питон не использую, и его совсем не понимаю, крайне сложный ЯП.
UFO just landed and posted this here
С бóльшим интересом посмотрел бы на LabVIEW YES CODE для программирования текстом вместо «визуальных процедур».
UFO just landed and posted this here
UFO just landed and posted this here
Вызывает сомнение объективность того, что Паскаль обгоняет всякие хипстерские Go, Ruby и Rust
Ааа, так там спрашивали «какие языки знаете», а не «на каких языках пишете». Тогда ничего удивительного :)
UFO just landed and posted this here
Куда забыли Fortran? Он живее всех живых! У нас в лаборатории все на нём пишут. Intel поддерживает его компилятор в актуальном виде — вплоть до нового стандарта F2018. Основная ниша — высокопроизводительные научные вычисления.
Прошу прощения, его добавил тоже.
Sign up to leave a comment.