All streams
Search
Write a publication
Pull to refresh
3
0
Send message

Как же я ору

Только не слишком громко, пожалуйста, не надо беспокоить окружающих.

чтобы казаться взрослее

Эх, мне бы ваши проблемы. Эта милая уверенность в собственных силах, ощущение способности свернуть горы - просто ух!.. Да, мне тоже было 20+ :) Это пройдет. С первым же выгоранием, которое вам только предстоит.

Я думаю

Крайне сомнительно.

у вас нет никакого комлпекса самозванца

А где я говорил, что он есть?

у вас адекватная вашему уровню самооценка

Это правда. Я довольно неплох в своей области.

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

Так что как начали - то и получайте, юноша :3

Поржал с вас.

Да я от вас ничего умного, в общем-то, и не ждал.

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

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

Дежурно напоминаю, что в РФ госкап вместо рыночка.

всем окружающим очевидно

Вас разве не учили аккуратнее обращаться с квантором всеобщности?

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

Кстати, если вам мой опыт - не опыт, не поделитесь ссылочкой на собственный гитхаб? А мы посмотрим; оценим, так сказать, полноту вашего сосуда.

Вы абсолютно правы. У питона строгая динамическая типизация. У PHP же - нестрогая динамическая, буквально худшая типизация из возмоных (с оговорками). Да, есть подвижки в сторону строгости, но не более чем подвижки, которые не спасают от сложных проблем и ни от чего не защищают, кроме как в простых случаях. Увы, особо упертые личности даже после прочтения хабрастатьи про типизацию всё равно ничего не понимают :)

снова 12й

В разновидностях систем типов что-то значительно поменялось с тех пор?

подсветили

Когда будет полностью строгая типизация, тогда и светите.

Который не исполняется, что делает его не кодом по определению.

Но ведь исполняется. В какой раз подряд спрошу: вы ТОЧНО понимаете, что такое аннотации? :)

Да.

Примерчик, пожалуйста.

хотите жить в манямире, где php такой плохой и "вот-вот умрет"

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

вы же такого в отношении php не можете себе позволить

Могу, потому что я не программист-на-языке, как вы, и потому что у меня есть опыт с пхп.

оказывается в python ее еще меньше

Почитайте вот, чтобы чушь не нести.

Заменить в предложении php на python и предложение не перестало быть правдивым.

Нет. Потому что питон нигде не заявляет о том, что типы проверяются. Я у вас не случайно спрашивал, точно ли вы понимаете разницу между типизацией и аннотациями типов. Как видно, не понимаете.

код который не код

Это код.

И поэтому появились только в 3.5, ага

Появились тогда, когда в них осознали необходимость. Сели, продумали и сделали.

аннотации php доступны в рефлексии

Так аннотации или все-таки указанные типы? Я могу сделать аннотацию для упомянутого выше списка словарей и получить ее в рефлексии в PHP?

По итогу как - в php есть строгая типизация для примитивов и классов

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

сделали 3ю версию

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

к фракталу плохого дизайна

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

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

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

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

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

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

Далее мы с вами будем говорить только по существу. Ваш коллега выше сказал, что в PHP нельзя указать тип вложенных структур данных, чтобы он проверялся strict types. Это очередная полумера из мира PHP: strict types вроде существует, но по факту во многих случаях бесполезна. Или может мы оба ошибамся и на самом деле strict types в состоянии проверить что-то типа "массива словарей с ключами из строк и значениями из массива интов" (в питоне list[dict[str, list[int]])?

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

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

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

Успехов!

без костылей типа pydantic типизацию в принципе не сделать получается

Вы разницу между аннотациями и указанием типов точно понимаете? По-моему нет.

Умеют ли аннотации python'а такое - не знаю

В питоне аннотируется практически всё в любых сочетаниях и с любой вложенностью.

То есть без сторонних утилит, вообще ни о какой типобезопасности речи не идет.

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

Какая-то оголтелая уверенность в своей правоте основанная ни на чем

У меня 15 лет опыта коммерческой разработки, и я прекрасно знаю, сколько стоит поддержка пхп. Насмотрелся, как люди страдают, поддерживая, например, racktables.

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

Так и писать: "var: str". Но это АННОТАЦИЯ. Она не проверяется при исполнении, это просто метаданные. Технически проверку можно сделать рядом, но это никому не нужно, потому что есть mypy.

нельзя средствами языка указать, что "верну массив и 100% это будет массив интов"

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

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

нормально пиши - нормально будет

Только зачем пользоваться корявыми инструментами, если можно взять нормальные?) PHP - это легаси, больше он ни за чем не нужен.

Однако с заменой string на str код по прежнему исполняется как на скриншоте.

Потому что это аннотация, а не указание типа переменной.

phpcs + (phpstan | psalm) уже де-факто стандарт для php проектов

Ну слава богу, хоть это осилили.

Давайте, как результат - и там и там фатал, что в принципе равнозначно

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

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

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

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

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

В разработку на ЯП вообще.

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

Information

Rating
Does not participate
Registered
Activity