Pull to refresh

Comments 273

Пусть совсем замёрзнет Haskell,
всё равно его не брошу,
буду грызть его зубами,
потому что он хороший!

Тут вон Дядюшка Боб вывалил в своём очередном visionary talk, что "ФП это дисциплина по отношению к присваиванию". Ну вот и результат того, что человек не изучил достаточно и не знает Haskell — мифическое представление о большой области программирования.

Эта мысль была им озвучена и в Чистой архитектуре. Но что-то я не увидел внятного оппонирования.
Тренд понятен, но думаю youtube-статистика, это скорее о популярности среди новичков, а не о использовании в продакшен
На мой взгляд одна из выжнейших, если не важнейшая, метрика популярности технологии — это кол-во вакнсий по ней. Причём интереснее всего тренд, а не кол-во на момент. А PYPL это не учитывает.
необходимо уточнение: не просто количество вакансий, а меняющихся. По старым языкам, тому же COBOLу вакансии могут висеть годами. И уровень оплаты там неслабый. Но — нет умельцев, не хотят (и я их понимаю :-).
Более того, иные товарищи уроки и учебные материалы на ютубе в принципе не смотрят, поскольку это просто неудобно в сравнении с чтением хорошей статьи и доков:

навязанная скорость потока информации против той, которая тебе удобна( нередко суть уроков на ютубчике — это 90% времени чувак что-то открывает и запускает и остальные 10% — это все отвальное, включая упоминание какой-либо важной фичи, разумеется, мельком ), тогда как в случае с написанными текстом материалами восприятие информации идет с комфортной скоростью

проблемы с возвращением на нужный участок против незначительного перелистывания страницы до нужного фрагмента и его неспешное( иногда — многократное ) перечитывание — собсно, на ролике не особо удобно перемещаться по этапам, поскольку это, в первую очередь, видосик
UFO just landed and posted this here
Всё так. На мой взгляд, видео-подача материала оправдана тогда, когда сам материал динамический, представляет собой процесс, и никакой другой способ просто не может адекватно и полно передать суть, если только не включать в состав материала GIF'ы, например, но это, считай, то же самое видео.

Изучать же языки программирования по видео… Брр.

И еще. Я могу ошибаться, конечно, но, возможно, видео-формат используется еще и потому, что но — отличный способ защитить свои материалы от копирования и подделки, в отличие от текста. А это важный момент.
Вместо видео, по крайней мере для консольных программ *nix, придумали замечательные вещи навроде asciinema. Сам пользуюсь. Из плюсов, оно на сайте показывает js скриптом, всё выводится в виде текста и всегда можно поставить на паузу и скопипастить. Ну и так как исходники полностью открыты, как клиента, так и сервера, то можно заселфхостить, например для употребления внутри конторы.
Да, я знаю asciinema, прикольное средство, причем, скорее, именно прикольное. Полноценной заменой видеороликов оно, конечно, не является — во-первых, не всё можно отобразить с его помощью, во-вторых, нет звука. Ну и в третьих, для тех целей, для которых его применяют, вполне можно обойтись просто текстом. Там ведь и так текст, только анимированный.
Как по мне asсiinema хорош именно как гарантированно работающий пример на живой системе. То-есть если выбирать копипастить из asciinema ролика или из примера где-нить на сайте, я предпочту первое. Ибо там, если не было ошибок во время выполнения, больше гарантии что где-то не лопустили опечатку. Да и потом, особенно новичкам из «поколения Z», больше нравятся когда на экране всё шевелится. ;-) А отстутствие звука лечится конструкциями вида. # This is example of jq command usage
«Всё шевелится» — хорошо сказали :)

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


Кроме того, не уверен, корректно ли это отрабатывает конкретно asciinema, но нужно помнить, что вывод консольной утилиты — "это не только 10 кб текста, но и не очень легко усвояемые escape-последовательности". Бывают обычные "консольные" утилиты (да хоть тот же git), для наглядности переписывающие какой-нибудь индикатор прогресса. Бывают полноценные tui (тот же aptitude), "скриншот" которых, может, и получится передать в виде текста в <pre>, но не весь процесс работы.

UFO just landed and posted this here
уникодом

На агде разрабатывали? :)

UFO just landed and posted this here

Курс лекций по Rust отличный. Неформальный язык сильно отличается от письменного по передаче нюансов и вторичных смыслов, а они (иногда) важнее, чем первичные при рассказ про технологию или её аспекты. (https://www.youtube.com/watch?v=Oy_VYovfWyo&list=PLlb7e2G7aSpTfhiECYNI2EZ1uAluUqE_e)

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

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

А за себя я могу только повторить то, что выше — информацию в виде текста я усваиваю с примерно на порядок лучшей эффективностью, чем в виде аудио или видео. Как по вполне объективным причинам, так и в силу личных особенностей восприятия.

Каким бы распрекрасным ни был видео-курс лекций по Rust, он — видео. Всё, приехали, поезд дальше не пойдет. :)

Я искренне утверждаю, что за 20 минут лекцию (кроме вводной) не осилите. Прочитать — прочитаете, а вот осилить… Есть вероятность, что вы уже хорошо пишите на Rust/scala/haskell/modern C++, тогда вам всё просто и понятно. Если нет, то ни какими 20 минутами (и даже час сорок) оно даже близко не пахнет.

Перечитывать непонятный кусочек удобнее, чем пересматривать (ИМХО).
Если нет, то ни какими 20 минутами (и даже час сорок) оно даже близко не пахнет.

Лекция по вашей ссылке идет час сорок. Я сравниваю текстовую транскрипцию лекции с самой лекцией. Я не имею в виду «выучить язык». Два формата одного и того же материала. Простите, если у меня не получилось внятно сформулировать эту мысль.

Потратить на текстовую транскрипцию больше времени, чем на оригинал — думаю, что это невозможно. Хотя… если читать, шевеля губами, то возможно всё. :)

«Осилю» == «потреблю», это, наверное, самое подходящее слово, одинаково применимое как к видеоформату, так и к текстовому.
UFO just landed and posted this here

Говорить ему тяжеловато, но у вас есть варианты либо лектора с mad skill в риторике и едва-едва в Rust, либо человека, который хорошо разбирается в Rust.

Лекции должны быть максимально понятными, а не пересказывать спецификацию (для того, чтобы прочитать спеку — лучше читать спеку).

В это смысле именно эти лекции отличные (сам их смотрю).
К 4й лекции есть 4 непонятных момента (и все они связаны с примерами кода).

Мне кажется вы забыли о видео лекциях

Мне кажется, руководствоваться правилом «краткость — сестра таланта» далеко не всегда является удачной стратегией. Не могли бы вы развить ваш тезис?
я интроверт и предпочитаю всю информацию получать текстом

Путаете тёплое и мягкое.

Он же не написал «интроверт и поэтому...», это два несвязанных утверждения, а не второе следствие из первого.
Обычно, одни адекватные люди упоминают вместе взаимосвязанные утверждения. А другие адекватные люди, встречая намеренное совместное упоминание утверждений, предполагают, что для рассказчика важна их взаимосвязь.
Взаимосвязь не означает следствие. Видео и выступления, очевидно, для экстравертов-докладчиков, является ли их аудитория тоже экстравертами? Возможно (но требуются исследования). Интроверту, как мне кажется, не нужен человек в качестве источника информации, он предпочтет обезличенный вариант — текст.
Видео и выступления, очевидно

очевидно, вы вообще не понимаете, о чём говорите:

выступления — это работа с аудиторией
записывать видео (а в нашем контексте, скорее скринкаст) — уютно сидеть за компьютером в одиночестве
UFO just landed and posted this here

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

UFO just landed and posted this here

Хамить не обязательно.
А про интроверсию я знаю достаточно, чтобы видеть, что вы заблуждаетесь в простых терминах.
Если есть, что сказать по делу – вперёд.

UFO just landed and posted this here
Думаю пассивную-агрессию тоже надо начать рассматривать как хамовство.

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

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

разного рода приветствия, формальные вопросы, не предполагающие ответа, и т.п.

Это всё отлично переносится в мессенджеры.
или по крайней мере взять паузу на обдумывание своего ответа на подобные неинформативные изыски общения с обычными людьми.

В том-то и фокус, что человеку со слабо прокачанным навыком "общение" часто нужно это самое время, чтобы разобраться в том, что из "поступающего на вход" является несущим смысл, а что — всего лишь принятые в обществе формальные ритуалы.
Самому при этом подобные нюансы общения использовать необязательно (культура общения в мессенджерах вроде пока позволяет подобные упрощения).

«Путаете тёплое и мягкое»
Разве теплое и мягкое друг другу мешают? По моему они всегда живут по соседству.

В том-то и дело, что далеко не всегда.

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

Могу посоветовать смотреть видео на x2 скорости, здорово экономит время

С дикцией многих авторов как бы не на 0,5× скорости хочется включить.
UFO just landed and posted this here
UFO just landed and posted this here
Или тот, который им задали на парах в универе.

Т.е. ваш implicit посыл понятен: у новичков меньше ошибок вида true negative: если задали новое — новичёк лезет в интернет.
Но вы упускаете ошибки типа false positive: новичёк в интернете интересуется, но промышленно программировать на этом не будет.
То есть, Вы предполагаете что популярность среди новичков — это некое самостоятельное явление, никак не связанное с индустрией?

Все я понимаю с тремя языками, но почему Хаскель то теряет? В своей нише он же единственный, или все нынче на Idris смотрят?

UFO just landed and posted this here
Наверное потому как он более академичный. В сфере сетевых технологий успешно применяют Erlang, убивают C++ с помощью Rust, а Java — Kotlin

Скорее убиваеют с помощью F# — куда более приближенном к "трудовым будням" языком, но при этом достаточно похожим на тот-же хаскель по многим параметрам, и что важно — хорошо интегрированным в .NET стек языков.

UFO just landed and posted this here

А если от тру ФП он все же далек, то легче использовать C# — тем более в последний завозят фичи более интенсивно.

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
C++ или Java?

C++ — значительная часть Windows; Microsoft Office, Adobe и другое прикладное ПО.
Java — почти весь банкинг, почти весь биллинг, куча другого Enterprise.
C++ — значительная часть Windows; Microsoft Office, Adobe и другое прикладное ПО.

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


Java — почти весь банкинг, почти весь биллинг, куча другого Enterprise.

Как минимум в мобильной разработке она до сих пор очень популярна.

UFO just landed and posted this here

У Си++ ниша осталась довольно узкая — сложные проекты, где требуются высокопроизводительные вычисления, очень хорошо ложащиеся на объектную модель, т.е. работа с графикой (например, игры).

Компиляторы, тем не менее, пишут на C++, а не на Haskell.
UFO just landed and posted this here
UFO just landed and posted this here
12 лет. Ближе к LLVM, чем к нашему времени.

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

Ну да, за последнее время ничего лучше этих инструментов ведь не появилось. Написать парсер — очень просто.

К парсингу относятся меньше 2% строчек кода в V8, я вот только что проверил.
UFO just landed and posted this here
Agda 2 старше чем V8 :-P

Rust — ок, на пару лет моложе. Ещё за ночь вспомнил Kotlin и Swift, те ещё моложе. Но ни один из них, чсх, не написан на Haskell / OCaml / Scheme и т.п.
UFO just landed and posted this here
Речь о том, что когда компилятор пишут не на этом же самом языке, то его пишут на C++: Perl, Cython, V8, Swift, PHP JIT.
UFO just landed and posted this here
…Coq, Agda, Idris 1, Purescript, Elm, QML (который для квантов).

Тогда докину в свой список Delphi, Visual Basic и csc (который для C#).

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

Лично я не пробовал писать компиляторы на Haskell, так что сравнить не могу. Но на правах байки могу рассказать, что один из инструментов, генерирующий какие-то таблицы для нашего компилятора, пришлось переписывать с OCaml на Python после того, как его создатель самоубился, а ни одного другого программиста, владеющего OCaml, в отделе не оказалось.
UFO just landed and posted this here
csc не на сишарпе? Прикольно, не знал.

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

А чего на питоне, а не на C++?

Со мной, естественно, не советовались, так что истинных причин я не знаю; но предположу, что потому, что программисты на Python доступнее и дешевле, чем на C++ (и уж тем более на OCaml).
«а ни одного другого программиста, владеющего OCaml» в стране не оказалось
>> И вы упорно не отвечаете, что, по-вашему, делает написание компиляторов на плюсах более удобным, и стоит ли мне на всякий случай переписывать (или в будущем писать) свои язычки на плюсах.

С фронтэндами языков лично я знаком лишь шапошно, но вот как написать бэкэнд на Хаскеле представляю крайне слабо (ну да сейчас всё в LLVM заворачивают):

На бэкэнде же ну не знаю 90% преобразований подпадают под один или оба паттерна:
— проанализировать граф и что-то в нём преобразовать (воможно транзитивно)
— заменить одно представление CFG-узла другим (идти «сверху вниз» по куску графа, храня какое-то очень большое состояние и меняя операции, в соответствии с состоянием — распределение регистров, IceBreaker, ...).

По-моему и то и то на Хаскеле писать больно (ну или не менее больно чем на условной Java).
UFO just landed and posted this here
>> Почему же больно?
> по-моему

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

А сейчас объясните плз, как это идейно реализовано, ведь immutable data несовместимо с циклическими структурами данных, при наивной реализации.
UFO just landed and posted this here
Спасибо, посмотрю.

>> А зачем вам там циклические структуры? :)

Не понял вопроса.

В принципе — потому, что IR содержит графы с циклами.

Технически потому, что представление графов: вершина содержит список дуг, дуга — два указателя на вершины технически наиболее удобно.
Поскольку эти графы сильно разряжены, активно изменяются, и большие (получить граф на 1000000 вершин (gcc -lto) дело не то, чтобы обычное, но и необычным не назовёшь), — то остальные представления проигрывают этому.

ПС
Вот смотрю материалы по Rust — и похоже(*) видел альтернативу циклической структуры, где вместо указателя содержался НОМЕР элемента в соответствующем векторе.
Ну т.е. это пиздец товарищи, не для такого мы коммунизм строили, чтобы значит ошибки из низкого уровня переносить в логику программы.
*) похоже — потому, что это бесплатная лекция с выложенного курса. Ролик без материалов.
UFO just landed and posted this here
>> тупо список детей, и всё

Но даже в таком представлении (где вы непонятно что выигрываете — вверх по зависимостям ходить требуется довольно регулярно (*)) если в графе цикл: a -> b -> a то у вас тоже цикл.

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

Когда / если дойдут руки (на других уже задачах) — обращусь к вам. Спасибо.
UFO just landed and posted this here
Вот смотрю материалы по Rust — и похоже(*) видел альтернативу циклической структуры, где вместо указателя содержался НОМЕР элемента в соответствующем векторе.

Да, это распространённый паттерн в Rust, зародившийся как часть Entity-Component-System, и приобрётший самостоятельность.


"Перенос ошибок низкого уровня в логику программы" — это хорошо, это значит что вместо UB вы получите панику. Но это не главная причина использования индексов вместо указателей. Главное — что это позволяет сохранять данные перемещаемыми.


P. S. Вот мой велосипед https://crates.io/crates/components-arena

Технически может быть и ок:
— удаление из такого массива ассимптотически дороже
+ массивы кэш-френдли, а читаем мы чаще, чем удаляем.

Но идейно: пока у вас всё хорошо инкапсулировано в хорошо отлаженной библиотеке — всё хорошо.
Но как только вы такой поттерн применяете в своём коде — вы сильно мешаете ошибки прикладного кода с ошибками структур данных.
Это меня очень смущает (до такой степени, что выглядит как антипаттерн).
удаление из такого массива ассимптотически дороже

Поэтому вряд ли это применяется там, где удаление необходимо. Просто место помечается как свободное и занимается следующим новым айтемом. В общем, обычный arena allocator.


Есть случаи, когда структура данных сильно связана с прикладным кодом, и смешение оправдано и необходимо (поэтому существует, например, intrusive collections). А если у вас не этот случай, вам такой подход и не нужен: тогда вы просто воспользуетесь библиотекой, в которой внутри инкапсулированы обычные сырые указатели.


В любом случае инкапсуляция всё равно должна быть, только уровнем выше. То есть всего слоёв три: "generic data structures" — "domain specific data structures" — "прикладной код", и смешиваются первые два слоя, но не все три.

Ну как бы это уже немного обманывает ожидания, которые я имел от Раста исходя из постов на Хабре (сейчас по сути пытаюсь для себя решить — надо ли мне это (изучение Rust)? ).

И такие моменты очень сильно смущают.
Мы создали такую хорошую и такую строгую систему (Borrow Checker), что один из паттернов программирования на языке — им не пользоваться // я несколько утрирую.

Почему не пользоваться? Ровно наоборот, этот паттерн как раз и позволяет по-полной задействовать borrow checker, в отличие от более привычного подхода с Rc, RefCell и т. п.

Когда вы сохранили «Vec» + «index_in_vec = 3» (вместо указателя \ ссылки) — то зависимость у вас логически никуда не делась, а в терминах доступных Borrow Checker её нет.
зависимость у вас логически никуда не делась, а в терминах доступных Borrow Checker её нет

И не должно быть. Это просто не задача borrow checker — отслеживание подобных зависимостей. Borrow checker следит за указателями. Индекс — не указатель: в отличие от указателя, он не препятствует перемещению содержимого Vec в памяти, не создаёт проблем в многопоточном окружении, не вызывает проблем с некорректным алиасингом — вот это вещи за которыми borrow checker следит. Иначе говоря, индекс — это существенно более слабая зависимость, чем указатель, основная часть зависимости сидит в базовом указателе и borrow checker за ней следит.


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

Да вы правы.
Действительно это зависимость другого рода и действительно Rust не обещает мне консистентность данных, а только отсутсвие ошибок с указателями (насколько я адекватно нагуглил после вашего комментария — разумеется прочитать и понять всю Rust Book я не упел).

Тут может быть только замечание, оно уже было произнесено, но хотелось бы его проартикулировать ещё раз.
С одной стороны «никто не виноват» вероятно циклические структуры данных — это действительно математически очень сложная штука раз такой паттерн вообще нужен.
Но мои ожидания всё-таки были другими: что инструмент сделает мой «список» безопасным оставив прежнюю производительность, а не вынудит использовать структуры данных переводящие «локальную опасную» ошибку в «неопасную и `менее локальную` ».
Мои ожидания — вроде как моя проблема (тем более циклические СД — наверное действительно сложно), а с другой стороны не упоминание довольно известных и актуальных проблем в популяризирующих материалах — не очень хороший тон.
Но это не главная причина использования индексов вместо указателей. Главное — что это позволяет сохранять данные перемещаемыми.

Я сходу не вспомню ни одного раза, когда мне бы надо было сделать граф перемещаемым. У вас есть примеры, зачем это может быть нужно?

Нет. Это просто удобство, а не необходимость. Но удобство существенное, хотя я не готов сходу его вербализовать. Просто чувствуешь, что просто и удобно, очень удобно.

Потому-что автору очень хотелось рассказать о том, что он любит Питон, а посторонний заголовок просто для отвлечения внимания, как в анекдоте про студента на экзамене, который выучил один билет про блох.
Какая-то, блин, халтура, притянул за уши ролики на ютубе, кто вообще учит языки по роликам на ютубе, дети чтоли?

"Анекдот в студию"


Google://студент экзамен блохи
;)

UFO just landed and posted this here

Может потому что проигрывает OCaml

UFO just landed and posted this here

А ActionScript ещё где то кроме флеша используется? Если нет, то он самый умирающий должен быть.

UFO just landed and posted this here

"Зомби" же. Вроде и есть ещё местами, где менять сложно, больно или банально овчинка выделки не стоит.

Самым франкенштейном должен быть Cobol, никакая серебрянная пуля его не берет:-)
Все (около) IBM-овские так или иначе живы и используются в экосистеме мейнфреймов (Ну разве что кроме LinuxOne) и Power Systems. Включая мой любимый REXX.

Довольно странные выводы. Ну вот я понимаю, что с одного языка можно перескочить на другой. Но с VBA куда переходить? Это единственный язык, встроенный в office, поэтому если нужно написать макрос, то писать приходится на VBA — что 20 лет назад, что сейчас.

Это единственный язык, встроенный в office, поэтому если нужно написать макрос, то писать приходится на VBA — что 20 лет назад, что сейчас.

Вы немного старомодны.

Данное решение даёт возможность писать надстройку для офиса на JS, но не макросы. Макросы всё так же надо писать на VBA.

Конечно, формат взаимодействия чуть другой (в том числе и по соображениям безопасности). Но сделать в итоге можно всё то же и даже больше.

Дополнения писать можно на других языках давно, можно при определённой сноровке даже Javascript вставить, но это не тот use case.

Более того, автор путает VBA с, собственно, Visual Basic. Который, к примеру, используется на платформе .NET.
На платформе .NET используется VB.NET. В нем отличий от VB гораздо больше, чем между VB и VBA.
Язык один, а набор инструментов — разный. Вплоть до контролов (как сейчас помню, что нет таймеров в VBA).

Разные библиотеки, язык один. C++ в attiny и внутри office это тоже один язык.

Это как JavaScript в браузер и в node.js. VBA грубо равен JavaScript+Dom в браузере

Забавный факт: в первоначальной версии этой статьи, которая пришла мне в рассылке медиума, этими языкам были Альберт Эйнштейн Perl, Ruby, Scala и VBA. Очень неожиданный апдейт, надо признать
В каких это вселенных Скала умирает, интересно.
<сарказм>
Статья неполна без похорон PHP. Это же хороший тон уже примерно лет 15 — его хоронить. Требую немедленно добавить PHP в статью!
</сарказм>

Так он есть, на картинке с мнением Гугла, четвёртое место в номинации «Best programming languages», при том, что лучшим языком для вёба стала Ява. Такая вот рокировочка.

лучшим языком для вёба стала Ява

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

Более того, там еще и C/C++/Go среди лучших Programming Languages. Похоже гуманитарий составлял эти рейтинги.
это надо совсем не разбираться в текущих стеках веб-разработки.

Хмм, а почему? Мне казалось, что на Java можно сейчас разрабатывать просто и удобно. В 2020 году уже не нужны большие xml файлы и бинами и еще не пойми чем. Для сборки не надо устанавливать на комп maven/gradle, все происходит автоматом. Ну и, конечно, есть море библиотек, можно переиспользовать код с Android приложением и тд.


Тут ведь просто паритет с PHP, как мне казалось. Разве нет?

Тут ведь просто паритет с PHP

В вёбе пых однозначно «царь горы», его теснят JavaScript, Go и много кто ещё, но Ява где-то в конце этого списка, рядом с исчезающим Рубином (ака Ruby). В свою очередь за пределами вёба пыха такой же ноль без палочки, как Ява в вёбе. Но ява на царя горы тянет, разве что, в разработке под андроид, так что никакого паритета не получается.

И в разработке под Андроид сильно быстро пятится от Котлина.
Насчет «на Java можно сейчас разрабатывать просто и удобно» — это если не сравнивать с действительно простыми и удобными фреймворками ala Rails/Django/YII/Next.js etc. Если посмотреть на тех. стек стартапов, то на Java хорошо, если 1 из 10 будет.
В вёбе пых однозначно «царь горы», его теснят JavaScript, Go и много кто ещё, но Ява где-то в конце этого списка, рядом с исчезающим Рубином (ака Ruby)
Если посмотреть на тех. стек стартапов, то на Java хорошо, если 1 из 10 будет.

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


В 2012 году, когда я заканчивал вуз, у нас на потоке ряд людей решили начать стартапы и пр. И из них никто тогда не использовал PHP. Python был, .Net был, Java немного даже использовалась, но не PHP. Не знаю, почему, однако, как Вы сами видите, это наблюдение не самое статистически корректное.
Однако, в то время PHP был распространен для небольших интернет-магазинов (бюджет на один был 12-30 тыс рублей). Насколько мне казалось, сейчас Тильда и Ко забрали просто этот рынок себе.


Если говорить про стартапы, то я знаю Рокет Банк, Uber, Тинькофф, Деливери Клаб, Револют, ДелиМобиль, Aviasales, Instagram, WhatsApp и подобные. И мне казалось, что там backend пишется на Java/.Net, а frontend — на TypeScript + Vue/React/Angular. Мобильные системы, очевидно, на Java/Kotlin/Swift.


По Вашим словам, я сильно ошибаюсь. И вот мне интересно — где можно посмотреть на статистику?


Куча рейтингов сейчас строится по Google Trends. Я не знаю как, но запрос "CompositeDisposable RxNet" ассоциируют с .Net, а "ktor client авторизация" — с Kotlin. Если таких ассоциаций нет, то эти запросы вообще покрывают хорошо если 1% всех вопросов про программирование (с моей точки зрения). Так что эти числа просто непоказательны.


Статистики по стартапам я не видел (то есть я не видел достоверных данных, что именно используется в стартапах, однако, есть исследования вида "в нашем инкубаторе 50% кодят на Windows, а оставшиеся 40% — на JavaScript").


Также я видел аналитику по GitHub, однако, большинство строк кода, как мне казалось, пишется в приватных репозиториях. А значит, эта статистика тоже непоказательна. Аналогично, как и статистика скачивания какой-нибудь библиотеки, так как из-за работы кешей и корпоративных Artifactory, она сильно искажена.


А потому у меня вопрос — а на основе каких данных делается вывод, что "В вёбе пых однозначно «царь горы», его теснят JavaScript, Go и много кто ещё, но Ява где-то в конце этого списка, рядом с исчезающим Рубином (ака Ruby)"? И аналогично — откуда был получен факт "Если посмотреть на тех. стек стартапов, то на Java хорошо, если 1 из 10 будет."?

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

Статистика по строкам кода вообще непонятно что должна показывать; предположу, что больше всего строк кода написано на Фортране, Коболе и Си, но о популярности этих языков в 2020 это не говорит ничего.
WhatsApp

Здесь используется Erlang, взяли ejabberd и доработали, оптимизировали.
Использовался по крайней мере, сейчас то под крышей Facebook и с ушедшими основателями уже может быть всё что угодно, как было со Скайпом.
Вы можете посмотреть примерный тех. стек актуальных стартапов здесь:
djqyo3vqv2.execute-api.us-west-1.amazonaws.com/latest

Я не знаю, откуда Вы взяли, что Uber используют Java на бэке, но по их словам, там NodeJS — eng.uber.com/uber-tech-stack-part-two:
The core of our web tech stack is built on top of Node.js

Отвечу Вам и wlr398.


Я не знаю, откуда Вы взяли, что Uber используют Java на бэке, но по их словам, там NodeJS — eng.uber.com/uber-tech-stack-part-two:
Здесь используется Erlang, взяли ejabberd и доработали, оптимизировали.

Про WhatsApp — спасибо. Про Uber — я и не знал, что там работает. У удивился, что PHP везде используется. И, кстати, NodeJS не входит в множество "Rails/Django/YII/Next.js".


Со ссылкой https://djqyo3vqv2.execute-api.us-west-1.amazonaws.com/latest/. Как я понял, там доска из 500 объявлений (для осознания масштабов — в Сбер Техе чуть меньше 10.000 человек было в 2017 году, если в среднем человек работает в этой компании 10 лет, то раз в год уходят 1000 и надо нанимать еще 1000, чтобы просто удержать численность), где ряд американских компаний ищет кого-то удаленно. Причем, у одной ссылка на сайт для подачи — https://www.usds.gov/apply, что намекает на то, что это не совсем стартап.


Вот как я и говорил — нет особо фактов, есть только. На том сайте ищут, как я вижу, в основном разработчиков под TypeScript. На другом могут искать под Java. Причем, если разработчик под TypeScript меняет работу раз в N лет, а разработчик на Java — раз в M лет, то численность вакансий надо еще будет скорректировать в соответствии с этим фактором.
Плюс надо учесть, что в ряде случаев ищется в принципе "Разработчик", ибо если человек не может кодить на разных языках, то редко такой человек будет действительно "сеньором" (хотя разные случаи бывают), ибо такой сотрудник не может осознанно выбирать инструмент под задачу, так как хорошо знает только один.


Как следствие, возвращаемся к вопросу — откуда вообще идут данные о распространенности языка/технологии в web? У нас же просто нет достоверных источников.

И, кстати, NodeJS не входит в множество «Rails/Django/YII/Next.js».

Почитайте про Next.js и как оно устроено. На бэке там именно NodeJS.

Я вижу, что Вы не очень хорошо знаете, что такое HackerNews и что это за объявления. HackerNews — это очень популярное сообщество в основном по разработке и около того, но также там обсуждаются и просто актуальные вопросы. Возникло на базе широко известного YCombinator. Раз в месяц различные стартапы публикуют там вакансии. По ссылке выше — за текущий месяц. Подобные треды стали настолько популярны, что там публикуют вакансии и многие крупные компании типа FB, Apple, а также гос. службы типа FBI. Я не очень понимаю, какие именно достоверные источники Вы хотите, если не можете сделать выводы по данным источникам. Впрочем, Вы можете считать, что Java — лучший web-фреймворк, я не ставлю цели Вас в этом разубедить.
Почитайте про Next.js и как оно устроено. На бэке там именно NodeJS.

Посыпаю голову пеплом. Вы правы.


Я не очень понимаю, какие именно достоверные источники Вы хотите, если не можете сделать выводы по данным источникам.

Повторюсь — я не понимаю, откуда идут выводы про "лучшая технология". Если это субъективное восприятие, то окей, вопросов нет. Если объективный факт — то откуда эти данные?
Я согласен, что с PHP работают немало людей. Это не доказывает факт, что это лучшая технология, но является неплохим косвенным доказательством.
Вы сказали про "тех стек стартапов", а в доказательство привели сайт по поиску вакансий, где явно не только стартапы, плюс число вакансий там сопоставимо с числом вакансий одной компании (условно, сейчас у Citi банка в Лондоне более 300 открытых позиций, а на той странице — около 500), что нивелирует полезность информации с сайта. Если кратко — малая выборка и это не только стартапы.
А потому я опять прихожу к выводу, что данные про "лучший фреймворк" — это мнение, так как даже статистики использования особо нет.


Вы можете считать, что Java — лучший web-фреймворк, я не ставлю цели Вас в этом разубедить.

Я не говорил этого (вроде, такое называется подменой тезиса?). Более того, называть Java фреймворком было бы странно. ktor+khtml еще можно назвать с натяжкой, конечно. Ну или Spring можно было бы, наверное.


Мне интересны факты в первую очередь — где что удобнее разрабатывать, а самое главное — почему. Если ответом будет "тут и школьник справится" — это одно. Если ответом будут детали в стиле "можно писать код сразу для сервера и браузером" — это другое. Если ответом будет "я просто знаю, что X удобнее" — то это не факт, а мысли человека. И вот мне интересны именно факты, а потому и спрашиваю.

Ну тут Тинькофф сайт создавался силами 18000*0.7 человек (общая численность — 18000, из них 70% — IT специалисты). И он внесет 10 сайтов в статистику от силы. А какая-нибудь web студия на 100 человек сделает сотню сайтов на PHP за год. Правда, говоря про распространенность, меня больше интересовало "где больше людей задействовано", а не "на каких технологиях крутятся сайты".


Но спасибо за ресурс.

В 2012 году, когда я заканчивал вуз.
в то время PHP был распространен для небольших интернет-магазинов

А на скамейках возле технопарка в Иннополисе красуются следующие языки: C#, PHP, HTML, Ruby, Objective-C, JavaScript, Java, Python, Swift (слева направо, сверху вниз, размер шрифта передать не могу). Столь же непригодны для экстраполяции на страну.


какие факты, предпосылки и рассуждения приводят к этому выводу.

Я посчитал, что вопрос был «почему вы над этими утверждениями ржёте?».


По части рассуждений: посмотрите на поддержку хостингами разных языков — 100% поддерживают php, мало кто поддерживает питон или перл, а java поддерживает примерно никто. В результате мелкие сайтики, кому тесно в соцсетях и конструкторах, но нет денег на админа начинают с cms / готового движка или фрилансерского самопала на php. Яве в этой нише ловить нечего, но именно из доработок этого ужаса вырастают средние и крупные по размерам сайты и тут уже совсем не факт, что кто-то станет менять язык.


Кроме ваших вариантов подсчёта популярность можно считать как: количество сайтов и количество разработчиков.


Если смотреть на количество сайтов, то пыхе приписывают около 80% (https://w3techs.com/technologies/overview/programming_language и https://www.wappalyzer.com/technologies/programming-languages/), во многом из-за огромного количества сайтов на WordPress (с хостингом у самого вордпресса).
Даже если выкинуть Вордпресс, доминирование пыхи в количестве сайтов опровергнуть нереально.


сейчас Тильда и Ко забрали просто этот рынок себе.

Таких Тильд и 20 лет назад было порядочное количество, и сейчас не меньше. WooCommerce, OpenCart, 1С-Битрикс — этих я знаю даже будучи «не в теме».


Если говорить про стартапы

Никто из не является стартапом, строго говоря, но раз уж вам интересны «серьёзные проекты», то получите, распишитесь: Facebook, Wikipedia, Вконтакте и сама Mail.ru, Yahoo, Baidu, Tumblr, Flickr, BlaBlaCar, Авито и уже упомянутый ранее WordPress (15 место в списке самых посещаемых сайтов мира), ну и 1С-Битрикс у нас в стране тоже популярен по вине маркетологов 1С.


Статистики по стартапам я не видел

Её нельзя экстраполировать на страну, даже если она у вас будет.


Аналогично, как и статистика скачивания какой-нибудь библиотеки

Вполне себе показывает изменение популярности языка со временем. Особенно если посмотреть на изменения в количестве библиотек и людей ими занимающимися.


Для оценки количества разработчиков мы можем ориентироваться только на количество вакансии и смириться с некоторым количеством шума.
Например, рейтинги по данным Хедхантера: https://m.habr.com/ru/company/hh/blog/474096/
На самом Хедхантере упоминаний «java web» в раза меньше, чем php, но даже на первой странице большинство не про предложений не про разработку сайтов, поэтому сложно судить во сколько раз их меньше.


У нас же просто нет достоверных источников.

Тогда на основании чего вы писали, что у них паритет?

Я посчитал, что вопрос был «почему вы над этими утверждениями ржёте?».

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


Если смотреть на количество сайтов, то пыхе приписывают около 80%

Вопросов нет, Вы правы. На PHP есть миллиард сайтов, сделанных на 1-2 недели.


Для оценки количества разработчиков мы можем ориентироваться только на количество вакансии и смириться с некоторым количеством шума.

Да, Вы правы.

UFO just landed and posted this here
Именно так :)
Просто на самом деле у Пайтона не получилось вытеснить РНР, поэтому он живее всех живых. Что по цене, что по скорости разработки (опуская опусы о «красоте»).

Лет 15? Да ладно. Это Perl вот столько всё хоронят и хоронят.

Уфф, слава богу, 1С не упоминается. Значит, с ним всё хорошо. Продолжаем продолжать.

Это «ненужно» не нужно, на глобальном рынке языков программирования. А продолжать конечно можно. Местами вон и на коболе продолжают. И даже неплохо так.

Иногда хочется поиграть в сарказм и самоиронию без тегов сарказм и самоирония.

SAP ABAP зато упоминается, я с ним работаю и действительно все обсуждения на форумах были в 2005-2011 годах, потом всё меньше информации, несколько блогов абаперов и всё в рунете.

Так ведь у статьи стоит плашка "перевод". Логично, что у них там просто не знают про 1С.

Никак не пойму, почему python выстрелил, а perl скатился. Достаточно программировал на обоих языках, и perl мне показался более цельным и зрелым. Что с ним оказалось не так, что он "не пошёл"?

Perl "write-only". Не совсем, конечно, но в существенной степени. Его вынужденно использовали когда не было достойной альтенативы, а когда она появилась в лице Python, желающих добровольно разбирать эзотерические закорючки Perl оказалось мало.

Первым убийцей Перла был, имхо, ПХП

Он не был "убийцей", он просто появился в нужное время в нужном месте — новая ниша бурно растущего веба и низкий порог входа "для домохозяек".

И отобрал эту нишу у Перла, где он чуть ли не монополистом был для CGI

Его и создавали как парсер регулярных выражений, а не язык ;). Собственно, с php похожая история.

UFO just landed and posted this here

Скорее как шаблонизатор итоговый, постпроцессор если угодно.

UFO just landed and posted this here

Нет. Его создавали как клей shell + sed + awk при похожести на Си. Любой Unix-админ, которому приходилось использовать в скриптах sed и awk (то есть все в соответствующую эпоху), прекрасно его оценит.

Perl не «write-only», вот не надо. Если культура разработки есть, то всё ок — OTRS тому пример.
Питон появился всего через 4 года после перла, так что альтернатива всегда была, форсить его начали только в районе 2010 года из-за бума веб-разработки(пхп фу-фу, мы не такие) и очередной волны ML, до этого он мало кому нужен был в публичном поле(хотя даже в десктопном игростроении применялся — Severance: Blade Of Darkness тому пример).
Python, имхо, более универсальный язык, чем просто очередной ЯП для веб-разработки.
На Питоне можно писать сервера приложений, какие-то обработчики данных (не обязательно больших), какую-то автоматизацию для серверов, еще много всякого.
К примеру, мой последний относительно крупный проект — автоматическая проверка корпуса текстов — написан полностью на Питоне. И там нет веб-интерфейса.

Питон весьма специфичен как ООП-язык, имхо. И специально или нет, но как-то продвигается то ли процедурный, то ли функциональный подход, а не ООП. Переход, вернее переключение на него с "Си с классами"-образных и обратно не очень практичный.

Из популярных "языков для веб-разработки" фактически, только PHP да JavaScript. Все остальные, как тот же Perl, многоцелевые (GUI-приложения на нём тоже делали).

на любом языке можно писать "write-only". Но совсем не обязательно пользоваться этой возможностью.

Его вынужденно использовали когда не было достойной альтенативы

У них разница всего в 4 года (1987 Perl и 1991 Python), так что Python вполне мог выступать альтернативой большую часть прошедшего времени
Чтоб его за ногу, старый добрый Perl был моим фаворитом на FreeBSD.
https://www.my-old-version.com/perl/

Теперь он вообще никому не нужен, впрочем, как и сама FreeBSD :-)

Это популярный миф, что write only: на нём прекрасно можно писать — и пишут — читабельно. Из-за таких мифов и хоронят до сих пор. Про Python и вынужденность тоже ошибка — он повяился в начале 90-х, возможность "не разбирать закорючки" была еще на заре веба. Нет, причины другие.

Потому что в питоне в какой-то момент появился джанго и это он выстрелил а не питон.


А в перле какое-то время была стагнация, разброд и шатания. Причем они уже лет 10 как кончились.

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

Чуть выше бейсика.
Ну это если писать как на бейсике, а так — надо регекспы понимать как минимум, а это не всем просто дается. Да и неименованные параметры — тоже.

Уж у питона точно меньше порог.
надо регекспы понимать как минимум

Необязательно. К тому же регэкспы не только в перле есть.

Зачем использовать регэкспы там, где задача не предполагает? За сколько лет опыта разработки на Перле — регэкспы применяются редко, не во всякой программе они нужны.

Потому, что perl-way изменения строк — регексп
Python так же скатывался постепенно в небытие, пока лет 5 назад его не начали массово использовать для Machine Learning. А раз уж он уже у вас в ML используется и есть кодеры, то вполне логично и весь backend на нем же писать.

Perl был погублен своим же основателем, который решил Perl 6 сделать совершенно несовместимым с Perl 5 и к тому же разрабатывался настолько долго, что даже самые консервативные Perl-кодеры устали ждать и перешли на что-то более актуальное.
До machine learning он уже вовсю использовался для data science
Python много где использовался, но это было очень нишево и популярность его была сильно ниже того же php. На порядок, может даже не один.
В большинстве ниш, где использовался и используется Python, PHP никогда не использовался и никогда не будет использоваться, так что сравнение абсурдное — примерно как сравнивать по популярности SQL с XML.
Мне кажется, что одной из крупных составляющих, которые обеспечили взрывной рост Питона, была крайне удачная библиотека pandas и ноутбуки Jupyter (забыл, как они раньше звались), которые вместе с низким порогом вхождения и дали некислый пинок росту аудитории.

Perl всем хорош, вот только он не истинно объектно-ориентированный, в отличие от Python. Bless и т.д., вся объектная система перла, это лишь поздно появившаяся "эмуляция" ОО с большим количеством ручной работы и без многих ОО фич (к примеру чтобы создавать методы с заданной сигнатурой, надо ставить сторонний модуль). Сколько видел других перловиков, крайне малая часть из них использовала и понимала объектный Perl. Отсюда кстати растут ноги и у утверждения про "perl = write only" тк для написания хорошего высокоуровневого кода на чисто процедурном перле (равно как и на баше, zsh итд) требуется очень высокая дисциплина/культура разработки.

истинно объектно-ориентированный, в отличие от Python

я не уверен, что это хорошо — это и tradeoff по скорости работы и всякие нежданные нюансы с переопределением и наследованием ) Хотя ООП сам по себе очень мощная и полезная концепция


тк для написания хорошего высокоуровневого кода на чисто процедурном перле (

равно как и на Си :-)

Ruby почему-то не упомянули. Он тоже сильно вниз скатывается. Скоро вторым Перлом станет

UFO just landed and posted this here
Поглядим, что будет на Рождество, когда Мац обещал выкатить версию 3.0
не ну знаю, судя по сообщения в LinkedIn вполне себе жив. К тому же и сам язык и Рельсы вполне себе развиваются. Просто рельсовый хайп давно спал, конкуренты подтянулись, и это уже не мега-прогрессивный фреймворк, а просто один из многих, но в остальном, имхо, все нормально с ним
поиском лучших языков программирования 2020 года

Следующий этап — поиск фломастера лучшего цвета?
(и не спрашивайте "лучшего для чего", так не принято)

Да что ж все так любят хоронить перл?


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

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


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

Да что ж все так любят хоронить перл?

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

Модули вполне себе активно поддерживаются — достаточно посмотреть на CPAN. И новые модули тоже появляются, которые поддерживают "последние писки" новых технологий, протоколов, облаков и всего такого.


Что касается "остановился в развитии" — это смотря что считать развитием. Если с точки зрения появления новых фич в самом языке — да, с этим туго, но разработка идёт, баги фиксятся, производительность улучшается, периодически что-то новое появлятся, типа улучшенного синтаксиса или новых конструкций.


Есть достаточно задач которые с помощью Perl решаются гораздо лаконичнее и быстрее чем на других языках, иногда ценой (не)читаемости кода (для непосвящённых) или производительности (но это не всегда важно), поэтому до смерти ему ещё далеко — по крайней мере пока живы те кто знает Perl.


Просто два примера — управление в пакетами в Debian/Ubuntu чуть менее чем полностью реализовано на Perl, то же самое с Proxmox — совсем неплохо для "мёртвого" языка, и я почему-то уверен что большинство пользователей и даже разработчиков об этом даже не подозревают.


Со стороны серверов мне приходится работать с C, C++, C#, PHP, Python и Perl, плюс почти вездесущий (ba)sh — и несмотря на то что мой личный фаворит это C# (по фичам и синтаксису) — то что нужно сделать быстро (или просто прототип) я скорее всего сделаю на Perl, то что нужно сделать быстрым и красивым (внутри) — на C#, очень быстрым — C/C++, совместимым с большинством хостингов — PHP/Python, то есть выбор языка или фреймворка зависит от задачи, а не от популярности или других субъективных факторов (благо я могу себе позволить послать клиента если он мне что-то навязывает).

Просто два примера — управление в пакетами в Debian/Ubuntu чуть менее чем полностью реализовано на Perl

Хм… Очень интересно, а systemd на python. Делаешь apt install php на голой ("облачной") ubuntu и получаешь систему с perl, python и php

Не забывайте --no-install-recommends и получите systemd без питона, равно как и php без кучи другого мусора, но вот без зависимости от perl обойтись очень трудно — посмотрите сколько пакетов его требуют, причём вовсе не как "рекомендуемый".

Без perl-base отвалятся dpkg и apt, все 3 — essential пакеты, на которые не всегда указаны зависимости.

На телефоне сейчас сложно воспроизвести, но, емнип, apt install --no-install-recommends php тянет systemd, а тот python

UFO just landed and posted this here
Systemd — на C. Голая Ubuntu — minimal, отправлена Canonical c 20.04 в загончик legacy.
Похоже, что история закончилась. Теперь ни один ЯП с большим легаси вот так просто уже не умрет. Его будут развивать, подтягивать новые фичи, появится два языка в одном, постепенно все переползут на новый стек, и вуаля — условный new-Perl будет уметь и в ФП, и в модули, и в ООП, и в аспектное программирование. И, в результате, останется с нами навсегда.

Условный new-Perl уже был (Perl 6, ныне Raku) — не взлетел. Всё дело в том что в Perl уже есть и ОО, и модули, ФП, АОП и ещё много чего — точнее, всё это реализуемо средствами которые уже есть без особого ущерба глазам, но ещё есть необходимость тянуть за собой обратную совместимость — поэтому существенных изменений в языке нет.


Конечно у него есть недостатки, как и у любого другого языка, но в руках эксперта — это мощный и удобный инструмент, как и любой другой. Да, он мало популярен, но "под капотом" ещё много чего работает на Perl, поэтому жить он будет долго, пусть и не очень радужно и без фанфар.

UFO just landed and posted this here

Тут два, минимум, аспекта есть противоположных:


  • насколько обратная совместимость будет мешать выбирать newPerl для новых проектов
  • насколько обратная совместимость будет помогать плавно мигрировать на newPerl

Пошла движуха проекта Perl7, вот и поглядим.

Ну вот в Centos было тоже все на перл внутри, а сейчас — на питоне. Понемногу переписали.

Откуда вы все такую чушь берете? Развивается и язык, и модули поддерживаются.

зато для веба там только джанго и в целом не очень есть альтернативы

далеко не так. Для веба там полно всего. Начиная от Flask и aiohttp до кучи библиотек и фреймворков, которые имеют невысокую популярность потому, что первые 3 покрывают 80% сценариев.


https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=fortune&l=zijzen-1


Если вопрос про ЦМС, то да, с ними сложнее… но использовать ЦМС для чего-то чуть более сложного, чем демо сайт ЦМС, обычно плохая идея. В части разработки нестандартных решений питон несравним. А там, где нужно стоковый сайт с 2 страницами и блогом, питон конечно не нужен — вордпресс проще.

Ехал python через python,
Видит python в реке python.
Сунул python руку в python,
Python python python python

Новый жанр в составлении рейтингов—«Гадание на YouTube’е»

Допустим есть два языка — один очень понятный и логичный, другой переусложненный. И если по второму будет гораздо больше обучающих видеороликов и обсуждений на форумах — разве это можно считать его большей перспективностью и популярностью?
Отдельный прикол это ситуация с COBOL.

Реклама Python какая-то. Вся статья "вот смотрите я пишу на Python какой он классный, а все остальные языки непопулярны".

Похоже Python никого не оставляет равнодушным — или чистое хейтерство, или безоглядная реклама.

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

"Я 2 квартала гналась за вами чтобы сказать, как вы мне безразличны" (ц) :)

«Девочка, постой! Постой! Девочка, ты эту бутылку уже два километра тащишь. Отдай её дедушке.» (Масяня)
Ваша как бы цитата из «Обыкновенного чуда» и кварталы там ещё поискать надо.
В оригинале было: «Я три дня гналась за вами, чтобы сказать, как вы мне безразличны».

Я пишу стиснув зубы на всём к чему равнодушен. Что ненавижу, хотя это громко сказано, на том просто не пишу

Особенно странно демонстрировать графики. На них не видно изменения популярности обсуждаемого языка, зато всё видно про Python. Так визуализация тенденций не делается, какой в ней смысл.

ahdl после покупки Intel вымирает(((
настоящих тру программисто почти не встретишь, я рад, что знаком как минимум с тремя, кто еще кодит на ahdl...

А куда переходят, Verilog?

vhdl, verilog,
новые разрабы любят всякие суржики типа
symbol+qsys+nios+c
и получается такой венегрет, что ужас-ужас…
«старая» школа уходит, когда боролись за каждую ячейку и каждый такт…
Миль и Мур переворачиваются…
rust кроме блокчейнов гдето используется?
Самый быстрый веб-сервер в мире с unsafe функциями?)
А если серьезно, то Amazon Firecracker полностью написан на Rust'е.
fortran «похоронили» десятилетия назад, однако до сих пор есть вакансии с очень хорошей зарплатой. и наоборот, в «популярные» языки кидается масса людей, которые своими предложениями утягивают зарплаты вниз.
p.s. нужно заниматься тем, что нравится, оттачивать навыки — работодатель найдется.
p.p.s. любые советы нужно воспринимать с изрядой долей скептицизма.
Так графики строить нельзя. Если haskell в 100 раз менее популярен чем python, то даже если он вырастет в два раза вы этого на графике не увидите. Для правильного отображения делается две y-оси с соответствующими масштабами, python слева и haskell справа.
P.S. Можно еще в логарифмическом масштабе строить, там тоже будет видно динамику haskell.
Очевидно, что agenda автора была показать популярность Python; для этой цели его графики отлично подходят.
Последнее место куда бы я пошел за информацией о языке программирования, это ютубчик и видосики.
Печально становится от того, что популярен стал видео контент, это просто не удобно, это просто тупо, это просто бесполезно. А нет я не прав это мерило знаний и успеха (
Но даже здесь на хабре всё чаще ссылаются не на текстовые статьи, а на какие-то получасовые подкасты :-/
Вот это и расстраивает, когда вместо 5 минут чтения по диагонали в поисках нужной информации приходится отсматривать часы, видосиков с неизвестным содержимым и неизвестного качества.

Странно, что никто ничего не сказал про Delphi. Для тех кто не в курсе, вот пару недель назад в начале сентября новая версия вышла — 10.4.1. Но статус "умирающий" ему все равно можно смело давать.

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

Да, я тоже это заметил. Видимо считается, что об этом все знают. А кто не согласен будет всё равно продолжать программировать на нём, что с них взять :-)

python умирающий? У меня строгое ощущение, что название статьи вводит в заблуждение

Где в названии статьи вы увидели Python?
Горячая четвёрка умирающих языков программирования

Python

Я занимаюсь серверной разработкой, используя Python. Я, кроме того, сделал несколько проектов, используя фреймворк Django. Что тут сказать — мне нравится Python.

Это, если верить тому, что выдаёт Google, язык, который лучше других языков помогает в поиске работы в 2020 году.

Я тупой ?

Согласен, в оформлении статьи ошибка и должно было быть:


Python


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


А теперь о главном
Мой любимый язык программирования — ...

UFO just landed and posted this here
видео на YouTube

Оценивать язык по видео?.. Выносите сразу.


Другая метрик, PYPL, это вообще что? Где ссылки? Общепринято использовать индекс TIOBE

Статья должна называться не горячая четверка, а холодная четверка, или остывающая...

VBA — изучал его в хобзе еще в далеком 2009 году. Уже тогда думал, что он никому не нужен. Однако даже сейчас в 2020 на гос. предпрятиях много где встречаю его.
Перл — one love.

А Delphi умирающий или мертвый? Он сейчас используется хоть для чего-нибудь?

Ну по вакансиям у нас в стране на твёрдом последнем месте по зарплате. Правда статистика не полная. Не понятно то ли потому, что он в Москве не популярен, а в провинции более популярен. То ли ниже зарплата во всех регионах страны.

А так-то он развивается конечно понемногу. Можно например мобильные приложения писать, и он при этом работает гораздо быстрее, чем Android Studio.
Про Perl5 очень смешно. Он вечен в своей сфере применения.
UFO just landed and posted this here
Молодые люди, послушайте старого дядьку программиста. Все эти рейтинги языков программирования и поиски языка, на котором войти в специальность или, того хуже, начать новый проект, от лукавого. Каждый программист должен знать хотя бы один ассемблер и иметь хоть минимальный опыт программирования на С/С++. Все остальное он освоит по мере надобности — хоть Basic, хоть Java, хоть Python, хоть PHP, хотя это уже не язык, так, баловство одно.
Любители ФП вам возразят, что опыт на С/С++ как минимум незачем, как максимум вреден.
Каждый программист должен знать хотя бы один ассемблер и иметь хоть минимальный опыт программирования на С/С++.

Закопайте уже стюардессу. Иметь понимание о чуть более низкоуровневых вещах чем в остальных языках — это конечно, хорошо и полезно, но это можно сделать и без выстрелов в ногу и без густо навешанных сбоку за 40 лет костылей под видом фич.

Попробуйте Rust.

>> но он уже и не очень-то жив
Это как «не очень-то жив»? Какую мысль автор доносит читателю?
Индекс TIOBE, Google Trends не актуальны наверное потому, что «man Perl» и cpan вполне достаточно, чтобы не ходить по интернетах в поисках документации и модулей.
И как можно здраво сравнивать популярность SQL, R и Perl?
Также, PostgreSQL, MariaDB, Debian используя Perl, считают ВАЖНЫМ, УДОБНЫМ, СТАБИЛЬНЫМ, НАДЁЖНЫМ язык у которого топовый "source code size". Возможно популярность это не то, чего стоит стремится :).
Давайте все посеем картошку, ведь в этом году на неё отличная цена. Только в следующем мы все станем банкротами.
Сомнителен антирейтинг C/C++. Во-первых, их нечем заменить: на ассемблере что ли предлагаете real-time разрабатывать? Во-вторых, у них высокий порог вхождения, и низкие зарплаты не оправданы ничем, кроме провальности проектов, эти позиции предлагающих. Или иначе: невозможностью нанять адекватных профессионалов и довольствование дешевыми; при этом невозможностью заменить технологию более простой.

Плюсы с точки зрения изучения хороши емкостью инвестиций времени: изучать можно долго и много, и постоянно повышая собственную ценность. Ну и опять же: замена не подоспела.
UFO just landed and posted this here
Вставки вставками, но real-time накладывает ограничения на все приложение, а не только на некоторые процедуры. Как минимум, нужен адекватный менеджер памяти без сборщика мусора.
UFO just landed and posted this here
Все-таки Rust не заменяет C. OK, даже если Rust полностью вытеснит C++, это не объясняет низкую оплату в сегменте.
UFO just landed and posted this here
В контексте статьи — тот, который бы вы разместили в заголовке вакансии. Если вы посчитаете, что с этой задачей лучше всего справится разработчик на VBA, то VBA ;).

Подозреваю, что знание C/C++ было бы в разделе must have, ну так, на всякий случай.
Sign up to leave a comment.