Как стать автором
Обновить

Комментарии 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 разве что-то сильно изменилось бы? Ведь то, как язык зайдет личто тебе — от его рейтинга почти не зависит. А найдешь ли работу — тоже примерно одинаковые шансы для первых десяти.

НЛО прилетело и опубликовало эту надпись здесь
Вопрос в том, так же ли умны составители этих рейтингов, как гугл.
Ну и так ясно, что это средняя температура по больнице
Если С и С++ выучены много лет назад

Если C++ выучен много лет назад, то перед вами бог, лучше спросите у него что-нибудь философское.

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

Я бы с этим поспорил, отчасти для того, чтобы знать, что рекомендовать новичкам, отчасти потому, что, несмотря на все эти книги, ответов на вопросы «как сделать такую-то хитровывернутую штуку» они не дают (иронично, что вот как раз три дня назад stackoverflow меня уведомил о том, что кто-то поставил плюсик моему вопросу трёхлетней давности, и вот прямо сейчас я отвечал на вопрос приятеля, как сделать другую хитрую штуку).


Но раз не хотите это обсуждать, то и ладно.

НЛО прилетело и опубликовало эту надпись здесь
Во первых шаблоны в C++ скорее всего были созданы чтобы можно было выебыватся умением их писать

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


Если чуть более серьезно то ответить на вопрос «как сделать такую-то хитровывернутую штуку» просто нереально. Как это вообще должно выглядеть?

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


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

НЛО прилетело и опубликовало эту надпись здесь
Согласен со всем, кроме decltype =).

Вас же не смущает, что 5 и '5', var и &var, var и *var — это разные типы и/или сущности? Почему же вызывает удивление, что var и (var) тоже разные? =___=

Ну так вы именно что подтверждаете мой поинт, спасибо вам за это! Выстрел в ногу с T&& как не forwarding reference я видел очень регулярно, кстати, что в чатиках по плюсам, что на код ревью.


Это что реально единственный возможный случай реализовать метапрограммирование?

Нет, конечно. Посмотрите на тот же template haskell (там тупо манипуляции AST, причём обычным кодом на хаскеле, так что можно использовать произвольные библиотеки в компилтайме). Но это плюсы, в плюсах нельзя не страдать.

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

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

Спасибо!

ответов на вопросы «как сделать такую-то хитровывернутую штуку» они не дают
а должны?
Перечитайте текст новости и слово «туториал» в частности.

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

Я же говорю — дискутировать с вами, только флуд разводить. С каких пор туториалы описывают все нюансы языка, а не дают общие сведения? Изученное Вами в университете до сих пор не обновлялось и не дополнялось новыми знаниями и практиками?
Вы мне напоминаете персонажа рассказа «Профессия» Азимова, но не главного героя, а того, который проиграл соревнование, потому что был обучен не той версии инструмента.
С каких пор туториалы описывают все нюансы языка, а не дают общие сведения?

Тогда к чему вообще «выучены» и «туториалы»?


Изученное Вами в университете до сих пор не обновлялось и не дополнялось новыми знаниями и практиками?

Считайте, что нет. Я на прикладного математика учился, а матан, линал и даже функан за десять лет не сильно поменялись.


Ладно, в любом случае это всё ерунда. Я на плюсах почти год не пишу, но иногда помогаю с ними знакомым (как раз вот сделать что-то этакое) и ревьювлю чужой код, и вот, что иронично, прям сегодня попался на глаза такой код, на самом деле очень простой, без темплейтов, без наркомании, обычный такой тырпрайз-код:


struct Child
{
  std::string getName() const;
  std::string& getName();
};

struct Parent
{
  Child getChild();
};

void doSmth(const Parent& p)
{
  const auto& name = p.getChild().getName();
  // дальше работаем с name
}

Вопрос: есть ли здесь UB?


Ответ: да, есть, и он приводил ко вполне реальному падению (и это ещё повезло, мог бы и просто память портить и падать где-то потом). getChild() возвращает неконстантный Child, поэтому выбирается перегрузка getName(), возвращающая ссылку, поэтому правила для temporary lifetime extension не работают, поэтому в name лежит dangling reference.


Если убрать перегрузку std::string& getName();, то, похоже, это корректный код, но за 10 минут чтения стандарта и, в частности, [class.temporary]/6 и [conv.rval] у меня это доказать самому себе не получилось.


В связи с чем следующие вопросы:


  1. В каких туториалах рассказывают достаточно, чтобы не писать такой код, и, желательно, чтобы понимать, почему его писать плохо? Ну со всеми этими xvalue, prvalue, glvalue и прочей ерундой.
  2. Зацепится ли у вас на кодревью глаз за каждую строку вида const auto& smth = foo.getBar().getBaz()? В каком ещё языке нужно настолько быть настороже?
  3. В каком ещё языке подобное невинное действие, как добавление неконстантной перегрузки getBaz(), возвращающей ссылку, сломает этот код с нулевой диагностикой от компилятора?
1. Здесь нет UB в языке, только в голове.
2. Компилятор ругается, что const отбрасывать нельзя.

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

И вообще, это преждевременная оптимизация и в серьезных учебниках поясняется, как ее _правильно_ делать, если уж начинать.
Здесь нет UB в языке, только в голове.

Есть, я же написал, почему.


Компилятор ругается, что const отбрасывать нельзя.

Да, у getChild() должен быть const справа, но это не делает возвращаемый Child константным.


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

Или автор писал его по мотивам конкретного кода как иллюстрацию.


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

Что именно преждевременная оптимизация? Человек, выучивший C++ давно, именно так и привык писать. И я знаю несколько компаний, где так принято писать.

Ну я думаю, что сегодня продолжать обсуждать не стоит…

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

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

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

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

Тут надо тыкать пальцем в те места, которые явно пишут, что это не UB, и проверять, подходит ли наш случай под них или нет. Список выше.


Просто никто не знает С++.


Так что можно его вообще не продолжать :)

В общем, посмотрел свежим взглядом.

Компилятор не ругается, потому что в оригинале было
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. Качество кода — соответствующее

НЛО прилетело и опубликовало эту надпись здесь
Долгое время работал на PHP, сейчас благополучно перешел на Dart. Язык очень активно развивается, релизы выходят довольно часто, да и сам язык довольно приятный.
Не так давно пробовал Rust, понравились его принципы безопасности, просмотрел кол-во вакансий в нашем городе, их 1 на весь Харьков и та для сеньера. Понятно что для бизнеса выбирают то что проверенно временем, но хотелось бы побольше вакансий для новых ЯП

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

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

Добавил, в самом низу.

Только для вычислительной части этой самой математики.

а где Rust в вашем опросе?

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

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

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

Всегда удивлялся оценке популярности языка по количеству запросов в поисковиках. IMHO здесь все зависит от наличия порталов с удобными и полными описаниями. Ну вот например Delphi, официальная документация вообще ни чего не поясняет кроме сигнатур процедур и методов, что и так понятно из исходников. Приходится долго и нудно копаться в древних форумах.
Или вот Пайтон — модный язык, но чтобы быстро получить нормальную краткую справку приходится идти на неофициальные сайты типа W3school. А по серьезным расширениям типа SQLAlchemy документация вообще нечитаемая, опять же приходится бегать по Стаковерфлоу.
Но вот если взять PHP — обычно мне хватает всего одного php.net — быстро и удобно — один запрос на проблему.
Вот и выходит что на поиск решения влияет не только популярность языка но и качество его документации.

На моем опыте выборка по упоминанию языка в поиске вообще не репрезентативна. Я люблю пользоваться гуглом, даже чтобы быстро перейти на заранее известную страницу в документации. Только при этом в 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 вместо логина, вот это всё.
НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь
Я не говорю что на нем вообще не пишут,

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


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

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


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

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


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

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

НЛО прилетело и опубликовало эту надпись здесь
Не зная С, ты не знаешь ни C#, ни целое СИмейство C-подобных языков.

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

Конечно, работы на чистом С не там много, но например я получил пару месяцев назад нормальный контракт. А вот стыковок с С-библиотеками много, и без знания С ты далеко не уедешь.
НЛО прилетело и опубликовало эту надпись здесь
А я >25 лет (С) и шарп с релиза 2.0 и таких нубов видел предостаточно.

Узкий специалист широкого профиля (с)
НЛО прилетело и опубликовало эту надпись здесь
Я таких в команду никогда и не брал…

Нет, знать С хоть для плюсов, хоть, тем более, для C# совершенно необязательно.

Только не говори, что ты его не знаешь.

Это как говорить, что знать английский необязательно, т.к. доки переведены =)

Таки C я не знаю. Я приближенно знаю некоторое его подмножество на уровне «ну это как в плюсах, только вот то, то и то делать нельзя».


А для того, чтобы делать FFI в сишные библиотеки, его достаточно знать вообще на очень базовом уровне.

С это и есть очень базовый уровень
> «ну это как в плюсах, только вот то, то и то делать нельзя».

Существенная часть фишек Си отсутствует в плюсах, например variable-length arrays

Поэтому я и написал «подмножество» (хотя, например, конкретно с VLA сталкиваться, к сожалению, приходилось).

В % от синтаксиса языка очень мало. Над этим работает Комитет.

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

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

C для компиляторов плохой выбор. Да и, собственно, даже gcc уже несколько лет как разрешил плюсы.


На функциональных языках их писать куда эффективнее и приятнее.

Те же микроконтроллеры далеко не все на С++ программируются.

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


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

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


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

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


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

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

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

Собственно, от эмбедщиков слышно только про проблемы ограничения по ресурсам. Шаблонный С++ только проникает туда, но даже STL часто не влезает. И есть глобальная проблема с исключениями — с ними невозможны сильные оптимизации.

А в чём проблема с ресурсами? Я с темплейтами писал под attiny лет 12 назад, когда компиляторы оптимизировали код хуже, а не лучше. И STL уровня какого-нибудь std::any_of вполне может отлично жить на эмбеддщине.

Вроде 8-128кБ памяти. Но я не эмбедщик.

Zero-cost примитивы конечно влезут, но libstdc++6 уже несколько Мб давно

У упомянутого attiny было в районе полкилобайта оперативной памяти и килобайта флеша (или наоборот, не помню уже).

Потому что под них зачастую есть только компилятор 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% россиян, отучившихся в школе.

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

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

Далеко не ходить — свои рабочие я храню на приватном битбакете.
А как же LabVIEW?
Частично на котором сделан софт в проекте SpaceX.
Надо добавить R, Octave, Elixir, Crystal.
Использую ассемблер UASM, C/C++, Lua в точности скрипты для игры сталкер. Всё пожалуй. Питон не использую, и его совсем не понимаю, крайне сложный ЯП.
Я взял и запилил под LabVIEW NO CODE (Framework), пришлось так же и посидеть над аппаратным I/O модулем и внешним интерфейсом.
Теперь можно процесс прототаипинга под автоматику, робототехнику или смарт устройства «кодить» посредством внешней консоли методом применения тех или иных простых инструкций визуальных процедур через интуитивно понятный HMI, участвующих в сценарии управления или сбора данных.
С бóльшим интересом посмотрел бы на LabVIEW YES CODE для программирования текстом вместо «визуальных процедур».
Такое возможно. LV позволяет отображение своего кода, к примеру на Си. А смысл? В плане его оптимальности, важным показателем является устойчивая Real time функциональность под минимальной аппаратной архитектурой под Win 10 (iOT) \Linux 18… Если речь идет о перекомпиляции открытого кода в среде инструментов, то да. Декомпиляция исходного exeшника, ммм…
www.beeptoolkit.com
www.facebook.com/groups/349188626162345
Этому на LV посвящен отдельный tools, можно под ним кодить и на С++. В моей практике в этом не было необходимости. С API объектами в dll, да приходится часто работать, если кодеры дают вменяемый SDK.
К слову, хакерранк — наиболее объективный рейтинг языков:
www.hackerrank.com
image
Вызывает сомнение объективность того, что Паскаль обгоняет всякие хипстерские Go, Ruby и Rust
я думаю достаточно объективно. основано на опросах около ста тысяч разработчиков по всему миру. несколько статей:
dev.by/news/hackerrank-javascript-stal-samym-populyarnym-yazykom-programmirovaniya-java-na-vtorom-meste
techrocks.ru/2020/02/04/hackerrank-developer-skills-2020
Ааа, так там спрашивали «какие языки знаете», а не «на каких языках пишете». Тогда ничего удивительного :)
Куда забыли Fortran? Он живее всех живых! У нас в лаборатории все на нём пишут. Intel поддерживает его компилятор в актуальном виде — вплоть до нового стандарта F2018. Основная ниша — высокопроизводительные научные вычисления.
Прошу прощения, его добавил тоже.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.