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

Рейтинги языков программирования: что за ними скрывается?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров15K
Всего голосов 25: ↑24 и ↓1+26
Комментарии41

Комментарии 41

Ембракадеро ещё, вроде, продаёт свои инструменты для разработки.

В каких ещё ЯП интрументы платные? Вообще интересная тема для статьи: сравнить ЯП по платности инстументов для них, в каких ЯП они есть и насколько они нужны.

Это довольно сложно. Цены меняются, как и политика лицензирования. Какие-то инструменты делают доступными бесплатно с ограничениями. Некоторые вроде как бесплатные, но для нормальной работы требуют наличия других, уже платных. Я пока не представляю методику сравнения без массы оговорок после каждого пункта.

Чтобы ОС продавалась, нужно, чтобы под неё писали много софта. И единственная причина, по которой Microsoft не раздаёт IDE бесплатно [в 2004] — потому что конкуренция среди IDE привлечёт больше разработчиков, чем монопольная бесплатная IDE.

— Джоэл Спольски, «Как Microsoft проиграли войну за API»

свежий рейтинг актуальности ЯП, где в TOP 10 внезапно ворвался Delphi.

Уже на этом месте я понял, что речь о TIOBE, который славится своей неадекватностью.

Да, и на который любят ссылаться в СМИ, тиражируя статьи списочного формата.

Если апатия приводит в python, а безысходность в js, то конструктивный поиск приводит к Rust или порой к Go. Ещё бывает, что долг возвращает к C++ или Fortran.

А что скажете про Haskell?

Сначала и во-первых это красиво, учит правильным привычкам и любопытная головоломка. Но потом и во-вторых продолжать конкретные инструменты именно под Haskell оказывается надо очень редко, вакансии довольно редки, а также проблематично прототипировать, дебажить и оптимизировать, связь исходного кода и ассемблера тут ну очень непрозрачна. А делать производительные части условно на C/C++/Fortran, чтобы использовать Haskell как фронтенд вместо питона ну как-то overkill (и претит любителым чистых функций без unsafe, что часто среди ярых хаскелистов), тем более что потенциальных пользователей окажется тогда очень мало (а если делать под питон, то его условно "знают все" или по крайней мере, смогут воспользоваться), встречал такой пример, как hasktorch, который вроде забросили. Так что для любознательности и кругозора Haskell — это прекрасно и полезно, но чаще для души, чем для работы. А поскольку язык общего назначения, задач, под которые Haskell был бы идеально заточен, чтобы где-то сказать, что вот тут точно надо делать именно на нём, я не встречал.

Также у С++ прослеживается некоторая конкуренция с Python в области машинного обучения. В частности C++ используется для создания высокопроизводительных библиотек (Caffe, TensorFlow C++ API).

Какая конкуренция? Python в ML используется исключительно как frontend для чилодробилок наподобии Caffe, TensorFlow и LibTorch, которые написаны на С++.

Да, о том и речь. Наверное, слово "конкуренция" здесь и правда неподходящее. Скорее это взаимное дополнение.

Не дополнение, а создание решения (релиз).

Frontend в виде Python очень хорошо для проверки различных гипотез, разработки и изучения прототипов, тестирования структуры сети и её обучения.

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

Питон ещё и в геймдеве используется. Помнится, загрузка четвертой Цивилизации начиналась с фразы "Init Python".

Знаете почему Python вверху списка? Потому что на нем программируют непрограммисты - раз, а во-вторых, из-за того, что у него просто море библиотек, которые все выучить просто невозможно, меняются они часто, а язык (на самом деле) сложный, то программирование сводится к работе в паре с googl-ом. Постоянно гуглишь типа "Python pandas нормализовать колонку". Сейчас я стал постоянно использовать яндекс-нейро и deepsek, и думаю скоро "популярность" нынешних "ведущих" языков программирования внезапно станет падать.

"Море библиотек" у любого развитого языка. Никто их в здравом уме специально не учит. Просто часто используемые функции постепенно сами запоминаются,. Да и в новом проекте всегда можно посмотреть как решал подобные задачи раньше.

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

Тогда пришлось бы порождать новый рейтинг и объяснять особенности своей методики ранжирования. :-)

Ну раз упомянули Delphi...

Пишу и на Java и на C#. Сейчас пилю проект информационной системы на Delphi 7. Вебморда использует чистый html/js/CSS. Разработка под ISAPI. Проект давно в проде. Все прекрасно :)

Я смесь документооборота с CRM и еще некоторыми задачами до 2016го года на Delphi 7 + MS SQL + PHP/JS + Excel/VBA пилил, а потом фирма закрылась...

Десять лет почти прошло, почему сейчас все та же семерка? Понимаю, что многие из следующих версий были так себе, но 2010 мне понравилась (успел на ней проект разработать и отдать заказчику во время бесплатного триал-периода )))

Современные версии на порядок лучше и D7 и D2010, но тут видимо проблема со старым проектом, который сложно перевести было на новую версию. У нас в компании тоже есть один крупный проект, который всё ещё собирается в D7. Но всё остальное и новые проекты уже на новых версиях (если быть точным, на D12, прошлогодней)

Думаю, тут есть ещё один важный момент: ни один рейтинг не показывает соотношение опытных программистов к начинающим на выбранном языке. Популярность языка может быть обусловлена низким порогом вхождения и обилием джунов. При этом найти человека с глубоким знанием любого языка может быть проблемой. Подобная ситуация с опенсорсными проектами. Статистика обманчива. Есть тысячи "домашних проектов", какие-то форки форков и пробы пера. В сравнении с единичными коммерческими решениями с закрытым исходным кодом они статистически выглядят круче, а по факту это просто мусорный код.

Статистический артефакт не объясняет тенденцию роста.

Для наглядности, сейчас идет сессия вебинаров от Embarcadero по RAD Studio и Delphi в частности.

К минусам сбора статистики на GitHub можно отнести ещё то, что GitHub не всегда корректно определяет "язык" репозитория. Если говорить о том же Delphi, то ряд репозиториев, код которых написан исключительно на Delphi, смело определяется GitHub'ом как С++ из-за наличия в репозитории файлов с расширением *.inc. Однако такие файлы принято и в Delphi использовать.

Пример такого репозитория https://github.com/ev1313/Pascal-SDL-2-Headers

Замечу, что в репозитории нет ни строчки кода на C++ и тем более PHP

Еще в веб-проектах бывает, что подключено несколько скриптов на JS, но все они тянут свои зависимости. В итоге, GitHub пишет, что JavaScript 65.6%, хотя реально его там 5%, а все остальное на C#.

Delphi, это так же FreePascal и Lazarus, вплне себе кроссплатформенные, поэтому имеет место, так же, размазывание контента, часть из которого вообще не учитывается.

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

Если проект учебный, чтобы научиться чем-то пользователься, то выбор уже сделан. Если чтобы научиться что-то сделать (а не чем-то), то выбор сделан и состоит в том, чтобы попробовать разное и сравнить (в том числе под что способы ищутся легче).

Если речь о выборе чего-то для самого начала обучения, величина проблемы тоже преувеличена. Во-первых, необязательно выбирать что-то, что точно пригодится. У меня в школе был BASIC, но я не сокрушаюсь о "бесцельно потраченных годах". Если тревожно искать вариант, который явно пригодится, то (как мне кажется) ещё долго будет надёжно как скриптовый выбирать Python, как более мощный чистый C (с учётом C API как универсальной связки разных инструментов между собой). Хотя надеяться изучить всё за минимум времени и не потратить лишней минуты зря уже ошибка, без готовности тратить много времени хорошо программирование не учится. Для изучения самых основ конкретный язык не так важен. После основ C и Python понимать стоит ну большинству. А дальше выбор более конкретных инструментов и выбор языка очень связаны. Тодга лучше выбирать, что хочется делать [новичку] на будущем месте работы, а не при помощи чего.

Общие рейтинги ЯП вообще штука заранее сомнительная, предвзятая и неоднозначная. А если делать их менее общими и специализировать под интересующую область, то рейтинги становятся неинтересными и рассыпаются, всё становится нередко "и так понятно", и рейтинг на практике бесполезен, вещь в себе.

Благодарю за то, что не стали со старту хоронить Джаву и хейтить ДжаваСкрипт (как сейчас модно) и попытались провести адекватную аналитику популярности языков. Интересно.

Выскажу свое мнение по феномену Делфи и Бейсику на ТИОБЕ:

Статистики (и слезы) СтекОверфлоу и т.д. показывает, что из-за развития ИИ люди стали меньше искать ответы в интеренете на свои вопросы по кодингу, а больше спрашивать у ИИ. Т.е. стали меньше гуглить. И вроде бы как существенно меньше. Это наверное можно считать фактом.

В тоже самое время можно предположить, что на вопросы к ИИ перешло больше прогеров там, где их язык более новый, легкий, молодежный или хайповый (Раст - мало пробовали, но много хотели). И меньше там, где язык старый/консервативный/хардкорный/тяжелый/...

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

Так и произошел перекос статистики по некоторым "непопулярным" языкам - их доля подросла. Это гипотеза.

Интересная и логичная версия!

Delphi (Object Pascal) - язык, который появился (пусть и ответвлением от Паскаля) только в 1995 году, т.е. уже после Питона (1991). В данном ключе, Delphi моложе Питона на 4-5 лет. Язык значительно отличается от своего прародителя, а значит, мало что подходит от старых материалов по Паскалю.

Помимо всего этого, готовых ответов в сети по Delphi значительно меньше, чем на Питон, что наоборот заставляет больше пользоваться ИИ, чем поиском в сети. ИИ прекрасно справляется с кодом современного Delphi, который ещё и значительно отличается от старых его версий (да, он развивается по сей день, включая новый синтаксис).

Я, в чатах по Delphi, заметил спад вопросов с нуля от начинающих, чаще стали появляться вопросы с проблемами с кодом ("почему не работает"), нежели вопросы "как сделать".

Вдобавок ко всему, замечу, что в чате, "старожилы" не менее редко пользуются ИИ, хотя большинству вообще достаточно документации. Старожилы, в любом языке, как правило гуглят не "как сделать на <lang_name>", а гуглят сам механизм, который решает проблему, например "winapi enum windows". Лично я не помню когда в последний раз вообще что-то гуглил со словом "Delphi". Кроме как сам сайт разработчиков среды.

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

Я, честно говоря, не представляю, что можно гуглить в стиле "как сделать" на Delphi.

А что вы знаете о Delphi?

Десять лет программировал на Delphi 7, сейчас на Java. Знаю, что очень простая и удобная система для оконных приложений и совершенно неприспособленная для веба.

Чтобы начать разрабатывать (на уровне быдлокодинга бизнес-приложений, конечно) на Delphi, достаточно было прочитать тонкую книжку на английском, идущем в комплекте. Ну может, пару книжек типа Фаронова прочитать.

Реально очень редко приходилось обращаться к гуглу чтобы спросить how to. За помощью в решении проблем - часто, да. С запросом How to, помню, обращался только, когда требовалось правильно обновлять форму, чтобы не было мерцания, и то это было в пет-проекте.

На Java же приходится постоянно спрашивать, в особенности это касается стримов, фильтрации и прочей аналогичной лабуды.

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

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

Гуглить фреймворки для веба: фронт: TMS Web Core, UniGui, бэк: MARS, Horse, DMVC, mORMot

Спасибо, порадовали.

CSS, который вообще не язык программирования, а язык описания стиля веб-страниц (каскадные таблицы стилей)

CSS является полным по Тьюренгу. На нем даже сапёр писали.

https://sliva0.mk/articles/turing_complete_css

Ну да в основном его используют для стилей.

Без PHP ни один рейтинг языков программирования не может считаться полным :))

Как же автор переживает за Delphi. Ну перешел он в десятку и что? Рынок так решил, может настанет время и питон уйдет на последнее место. Если ЯП может выполнять нужные функции и пользуется спросом значит он имеет право появляться в списке. Другое дело что не все могут на нем писать и поэтому весь этот негатив и удивление. Не первый раз наблюдаю подобное на практике. Есть проект написанный на Делфи приходит современный прогрессивный разработчик и т.п. и крутит своим носом "фи, я последний раз двадцать лет назад Делфи видел и писал на нем. Нужно переделать проект." Доказывает начальству о необходимости переписать работающий проект, который не требует дописки и уже несколько лет просто работает. Начальство, которое не разбирается в технических тонкостях дает добро на переписание программы на новый язык. И в итоге тратится сотни человеко-часов помноженное на стоимость часа работы - аналитики, программисты, тестировщики, техподдержка и конечного пользователя тоже заставляют перейти на новое, но просто переписанное ПО на новом языке программирования. Поэтому прогрессивные будьте мягче, ваше время тоже пройдет и придет на смену вашему языку новый.

Не дописывает до конца проект, уходит, берут нового прогрессивного разработчика, а он решает переписать уже на новый язык или сменить фреймворк (тому уже аж год, "устарел"). Так продолжается лет 5-6, при этом проект на Делфи до сих пор работает как работал.

Дело не в самом Delphi, он взят как пример необычной динамики в рейтинге ЯП. Статья про методологию, разные способы оценки популярности языков программирования.

Студенты тоже оказывают влияние на рейтинги... Не думаю, что многие вузы выкинули Pascal из программы. В школах тоже еще Delphi/Pascal встречается.

>Когда только начинаешь карьеру разработчика, часто гложет сомнение: верно ли я выбрал язык программирования? Может, он уже устарел, или наоборот — слишком новый и не факт, что перспективный?

Сомнение должно глодать не по поводу "верно ли я выбрал язык программирования?", а по поводу "верно ли я выбрал профессию?"

История из жизни: познакомился с одним коллегой году в 2017. Он уже был очень продвинутый джун по шарпу. Тогда это был очень модный и популярный ЯП. Много часов вкладывался в самообучение, поднимался, поднимался, стал сеньором или около того. Но зарплата вполне уже сеньорская. Проект длинный заканчивается, ему и говорят: "сорян, у компании больше нет проектов с таким стеком, вали куда то еще". Выходит он на рынок труда и понимает, что предложений практически нет. То он не устраивает работодателя, то работодатель норм, но денег не платят. Решил переходить в питон. И вот он с сеньорской зарплаты падает опять на джуновскую. А у него ипотека и потребительский кредит. И тогда было больно и до сих пор печаль печальная. До сеньора опать качаться годами. При этом, самые "сливки" по зарплате уже сняли. Его опережают по знаниям и скиллам дети, которые только вышли из института. И такая хрень каждые лет 5. На моей памяти куча языков в топе прошло:

бейсик

паскаль

дельфя

си билдер

пхп

руби

ява

перл

шарпы

пихон...

Если человек выбрал профу админа, то он всю жизнь доучивается, только расширяя свой стек, повышая свою ценность, зарплату. Разработчик - это путь боли и унижения. Только что ты сеньор с завышенным ЧСВ, высокой зарплатой и запросами. А через 5 лет твой ЯП уже на помойке истории, ты опять джун и тебе сильно повезло если нет семьи и кредитов. Упасть по зарплате В РАЗЫ - это ну очень сильно на любителя. А еще это унизительно и морально просто убивает.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий