
Sergey
09.04.2018
07:09:07
в го тоже нет генериков, и не собираются добавлять даже)

Sergey
09.04.2018
07:09:26
а у тебя нихера нет) phpdoc только

Google

Sergey
09.04.2018
07:25:52
Propel все?

Anton
09.04.2018
08:01:47
Вообще, там rfc висит, но голосования никакого нет вроде

Sergey
09.04.2018
08:18:50

Anton
09.04.2018
08:24:14
Я про то, что не понял, что влияет на принятие какого-то rfc

Sergey
09.04.2018
08:25:57
1. наличие имплементации
2. факт того что имплементация не наносит существенного вреда производительности (как это было с typed properties)
3. факт того что фича реально нужна и от нее будет существенная польза (то есть это не мелкий сахар усложняющий парсер и позволяющий тебе сэкономить пару символов).
короч самая большая и сложная работа тут - убедить комьюнити что фича стоит того что бы ее потом поддерживали.

Evgenii
09.04.2018
08:33:21

Pavel
09.04.2018
10:20:00
Ктонибудь работал с amphp?
пытаюсь выполнить пример из доки
yield естесно должен быть в функции
а че в доке хуйня какаято?
или у меня
блин, написал вопрос и сам понял че надо
Loop::run(функция)

Google


Timur
09.04.2018
11:44:56
p.s. php, как и Си или Java - языки со слабой типизацией
Не существует стандартов слабой и сильной типизации, на которые мы можем однозначно ориентироваться. Поскольку эти слова - сравнительные понятия, то нам нужна точка отсчета, т.е. то, с чем мы сравниваем. Если кто-то говорит: "PHP - язык со слабой типизацией" и при этом не упоминает, по сравнению с каким языком PHP считается слабым, то он либо не понимает, о чем говорит, либо молчаливо подразумевает какие-то из языков (осознанно или не осознанно). Мы, люди, при общении всегда передаем неточную информацию и собеседнику остается предполагать, что имеется ввиду, полагаясь на свои знания, на контекст и т.д.
Конечно передающий, может уточнять передаваемую информацию, тем самым сужая контекст, множество возможных выводов и облегчая собеседнику понимание. Но, опять же, контекстов может быть бесконечное множество, как и уточнение - понятие бесконечное. Стало быть, одно растяжимое понятие опирается на другое растяжимое понятие. Передача информации человеческим языком фактически не может быть абсолютно точной.
Я это к чему? А к тому, что твое утверждение "php, как и Си или Java - языки со слабой типизацией" может быть понято разными людьми по разному и при этом все могут быть одновременно правы в своем выводе.


Sergey
09.04.2018
11:51:21
Не существует стандартов слабой и сильной типизации, на которые мы можем однозначно ориентироваться. Поскольку эти слова - сравнительные понятия, то нам нужна точка отсчета, т.е. то, с чем мы сравниваем. Если кто-то говорит: "PHP - язык со слабой типизацией" и при этом не упоминает, по сравнению с каким языком PHP считается слабым, то он либо не понимает, о чем говорит, либо молчаливо подразумевает какие-то из языков (осознанно или не осознанно). Мы, люди, при общении всегда передаем неточную информацию и собеседнику остается предполагать, что имеется ввиду, полагаясь на свои знания, на контекст и т.д.
Конечно передающий, может уточнять передаваемую информацию, тем самым сужая контекст, множество возможных выводов и облегчая собеседнику понимание. Но, опять же, контекстов может быть бесконечное множество, как и уточнение - понятие бесконечное. Стало быть, одно растяжимое понятие опирается на другое растяжимое понятие. Передача информации человеческим языком фактически не может быть абсолютно точной.
Я это к чему? А к тому, что твое утверждение "php, как и Си или Java - языки со слабой типизацией" может быть понято разными людьми по разному и при этом все могут быть одновременно правы в своем выводе.
это не сравнительные вещи. Это о том как ведет себя рантайм.
скажем в javascript любое выражение должно тебе что-то вернуть, вне зависимости от типов учавствующих в выражении. Потому язык со слабой системой типов. В Haskel или Typescript код который имеет выражение с несовместимыми типами тебе просто не скомпилится. Потому это язык с сильной системой типов. В Java у тебя есть тоже куча нюансов как себя рантайм ведет, а есть есть нюансы - система типов слабая. В C++ нюансов нет - тебе надо руками типы приводить на каждый чих - потому там сильная система типов.
это как явное vs неявное


Timur
09.04.2018
11:53:06
Ну это твое понимание. Ты можешь сказать, что это не сравнительные вещи, а я скажу, что сравнительные. Почему ты должен быть прав? Я читал одни источники, ты другие. Стандартов нет, как я сказал.
Один язык может быть с более сильной типизацией, чем другой. У PHP более слабая типизация, чем в C++ к примеру

Sergey
09.04.2018
11:53:29
я могу кинуть в тебя ссылкой на вики где все точки зрения разжеваны и на этом остановимся)

Timur
09.04.2018
11:54:42
Та же википедия, просто другой язык.

Sergey
09.04.2018
11:55:00


Timur
09.04.2018
11:55:26
Переведи в гугле на английский этот абзац:
Starke Typisierung wird meist mehr als Vergleich denn als absolute Bezeichnung genutzt: Sprache X ist stärker/strenger typisiert als Sprache Y. Bei solchen Vergleichen spielt sehr oft das Vorhandensein impliziter oder auch expliziter Konvertierungen eine Rolle; so ist PHP deshalb schwächer typisiert als C, weil PHP fast überall implizit konvertiert, C jedoch nur bei ähnlichen Typen. C++ ist wiederum deshalb stärker typisiert als C, da z. B. implizite Umwandlungen von void* in beliebige andere Zeiger nicht erlaubt sind. Noch stärker typisiert ist wiederum Object Pascal, das im Gegensatz zu C++ keine impliziten Konvertierungen zwischen Boolean- und Integer-Werten vornimmt. Und Haskell erlaubt noch nicht einmal implizite Konvertierungen von Ganz- in Gleitkommazahlen.
Не пойми как оскорбление. Просто гугл с немецкого на английский хорошо переводит
По крайней мере, лучше, чем на русский


Sergey
09.04.2018
11:56:32
Та же википедия, просто другой язык.
ну как бы там покрывается вопрос того что какой-то язык может иметь "более сильную систему типов" и про нюансы там есть и про отсутствие формальног оопределения
но если хочешь конкретики - сравни систему типов PHP и того же тайп скрипта, или идриса, или лиспа
и грусти

Timur
09.04.2018
11:57:06

Sergey
09.04.2018
12:00:34

Timur
09.04.2018
12:01:00

Google

Sergey
09.04.2018
12:01:24
....ты выдумываешь уже что-то
или ты про strict_types? я ж говорю, это кастыль который должен был помочь с плавным отказом от жанглирования типами в рантайме. А без жанглирования типами язык внезапно ставится с сильной системой типов)

Timur
09.04.2018
12:01:57

Sergey
09.04.2018
12:02:25
Выдумываю что?
короч я потерял нить общения потому либо давай конкретику либо закругляемся

Timur
09.04.2018
12:03:34
Конкретики нет, есть только уточнения, которые стремятся к бесконечности, о чем я и сказал в самом начале.
Но если кратко, то мое утверждение: строгая и сильная типизация - понятия сравнительные.

Boris
09.04.2018
12:03:44
Выдумываю что?
Ты как то слишком сложно хочешь донести мысль "все познается в сравнении" :)

Dmitriy
09.04.2018
12:03:45
Парни, есть какой-нибудь инструмент конвертации JSON Shema в человекопонятный вид? А то мне прислали схему на 1000 строк, не охота быть интерпретатором этого ЖСОНа

Timur
09.04.2018
12:06:18

Bohdan
09.04.2018
12:15:22

Dmitriy
09.04.2018
12:15:55
я уже доку ставлю

Sergey
09.04.2018
12:23:34
ну и поскольку началось все с дженериков я все же не понимаю как мы перешли к этой дискуссии...


Timur
09.04.2018
12:32:01
ну и поскольку началось все с дженериков я все же не понимаю как мы перешли к этой дискуссии...
Все началось с того, как я сказал, что необходимость в дженериках появилась из за существования строгой типизации. Они ведь созданы для того, чтобы применять одни и те же алгоритмы, к разным типам данных. То есть основная проблема решена. А остальные удобства, порождаемые дженериками - это побочный эффект.
В php подобной проблемы нет, можно одни алгоритмы применять к разным типам данных (конечно с оговорками). Но один джентльмен выше утверждал, что php нужны дженерики, только лишь ради побочных эффектов. Стоит ли это того? Усложнять синтаксис, ради пары удобств? Не получим ли мы в итоге просто синтаксический сахар?


Sergey
09.04.2018
12:42:31
> В php подобной проблемы нет, можно одни алгоритмы применять к разным типам данных
ценой того что у тебя отстутствует возможность в компайл тайме проверять типы

Timur
09.04.2018
12:43:52

Sergey
09.04.2018
12:44:05

Sergey
09.04.2018
12:44:18
для рантайма, ваш КО)

Timur
09.04.2018
12:44:21

Google

Sergey
09.04.2018
12:44:33

Sergey
09.04.2018
12:44:55
есть тулинг, типа пхпшторма, которому очень даже полезны тайпхинты
и он тебе все проверит еще до того как ты запустишь)

Sergey
09.04.2018
12:45:03
ну и в целом, основная суть в ВОЗМОЖНОСТИ, опциональной возможности задавать типы. Именно по этому я в пример привел python

Дмитрий
09.04.2018
12:45:25
Парни привет.
Подскажите, в бандле может быть конфиг одной сущности в yml, а другой xml?
Так получилось что один конфиг в xml, внес изменения в конфиг yml и при entities получаю
No mapping file found named 'Tkd.orm.xml' for class 'BonusRgksBundle\Entity\Tkd'
как обновить сущности и схему?

Timur
09.04.2018
12:45:51
Именно потому, что тайпхинтинг опционален, проверка типов все равно будет происходить в рантайме

Sergey
09.04.2018
12:46:06
проверка типов в рантайме это херня какая-то

Timur
09.04.2018
12:46:16

Sergey
09.04.2018
12:46:20
я это могу делать просто на assert-ах

Sergey
09.04.2018
12:46:39
мне вот эти обсуждения напоминают адептов ФП в котлин чате
они ходят и ноют что им нужен паттерн матчинг, HKT, и чтоб монадами можно было обмазаться
вместо того чтобы просто писать себе дальше на скале, они требуют эти фичи в другом языке
вот так и с пхп, вместо того чтобы просто сменить язык, все ходят и ноют о типизации)

Timur
09.04.2018
12:48:23

Pavel
09.04.2018
12:50:30

Sergey
09.04.2018
12:51:23

Google

Sergey
09.04.2018
12:51:48

Дмитрий
09.04.2018
12:52:02

Sergey
09.04.2018
12:52:58
в прочем пхп уже перестал быть гибким, имея кучу легаси в исходниках
кстати, в Hack(который пхп фейсбука) щас хотят корутины затащить, такие же как и в котлине

Sergey
09.04.2018
12:53:49

Timur
09.04.2018
12:54:39
похоже что нельзя, получается надо xml переписать в yml
Именно из за этого я предпочитаю реже использовать бандлы, и писать самому. В пределах разумного конечно. Была как-то такая связка: Symfony 2.8, SonataAdminBundle, FOSUserBundle и еще какие-то.
Все конфигурации были разбросаны по проекту в разных форматах и файлах, некоторые локализации в XLIFF формате, некоторые в yaml, некоторые роутинги в xml, некоторые в yaml, некоторые через аннотации. Такое же дерьмо и с сервисами. Это был ад просто.

Дмитрий
09.04.2018
12:55:06

Alan
09.04.2018
13:26:57
и можно ехать

Sergey
09.04.2018
13:27:12
симфа уже отьехала от хака)
а раньше поддерживали совместимость

Alexey
09.04.2018
13:27:33

Alan
09.04.2018
13:27:44
а так бы можно было говорить что это новый пхп у нас )
и потихоньку сваливать
интересно почему они не вложились в развитие пхп а свой хак стали делать

Sergey
09.04.2018
13:39:45
ну то есть, они то вкладывались, но php пошел своей дорогой...

Sergey
09.04.2018
13:41:37
>php если что коммерческий продукт
А можно подробнее. Я наверно что-то упустил, но всегда считал, что сам PHP не является таковым

Sergey
09.04.2018
13:42:03
PHP как язык - опенсурсная шляпа, но вот Zend Engine - это вполне себе коммерческая штука