Бурный срач про PHP

Redjik

Джедай-мастер
да в 7ке тоже есть небольшая попоболь, дебажили долго, E_STRICT теперь только номинально существует
https://wiki.php.net/rfc/reclassify_e_strict

как бе мелочь для нормального кода, но когда начинаешь заигрывать с чужим говнокодом (vanilla forum, например) все падает еще на этапе установки
 

AnrDaemon

Продвинутый новичок
Кто это пишет вообще…
Кастить ресурс в интегер и спихивать в нотис?…
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@Redjik, ты считаешь проблемой, что старые пакеты, написанные с ошибками и нарушениями, не работают на новой версии без настроек совместимости? :)
В питоне просто отказываешься от новой версии языка.
А еще в питоне нет include. Библиотеки грузятся из единого репозитория OS.
Если нужна свежая версия библиотеки, а не та, которая установленна в системе, ставим утилиту virtualenv. А чтобы поставить virtualenv, сначала ставим pip. Отдельно для 2 и для 3.
Нельзя просто взять и написать приложение без пачки утилит и специальных костылей. Они не часть языка, о них не пишут в документации, но без них ничего не получится.
Это серьезный архитектурный недостаток Python, со времен, когда экономили 20 МБ на винчестере.
Даже в JS require уже сделали.

Ничего подобного composer нет и близко. Pip - это pear, центральный системный репозиторий, никаких библиотек из github. Часть пакетов pip содержат модули, написанные на С, и для сборки им нужны системные библиотеки, о чем можно узнать, только загуглив сообщения ошибок, возникающих при компиляции.
configure? нет, не слышали.

А еще в python до сих пор все используют Django. Это как если бы у нас все еще писали на Symfony 1, который и был слизан с Django.

PHP неконсистентен внутри, а Python - это хлам в инфраструктуре. Если на PHP у нас проблемы, то в python нам в голову не приходит, что подобные проблемы можно решать, просто молча кушаем 10-летнее дерьмо.
Но на питоне удобно писать всякие сетевые демоны на твисте.
 
Последнее редактирование:

cDLEON

Онанист РНРСlub
@Redjik, ты считаешь проблемой, что старые пакеты, написанные с ошибками и нарушениями, не работают на новой версии без настроек совместимости? :)
В питоне просто отказываешься от новой версии языка.
А еще в питоне нет include. Библиотеки грузятся из единого репозитория OS.
Если нужна свежая версия библиотеки, а не та, которая установленна в системе, ставим утилиту virtualenv. А чтобы поставить virtualenv, сначала ставим pip. Отдельно для 2 и для 3.
Нельзя просто взять и написать приложение без пачки утилит и специальных костылей. Они не часть языка, о них не пишут в документации, но без них ничего не получится.
Это серьезный архитектурный недостаток Python, со времен, когда экономили 20 МБ на винчестере.
Даже в JS require уже сделали.

Ничего подобного composer нет и близко. Pip - это pear, центральный системный репозиторий, никаких библиотек из github. Часть пакетов pip содержат модули, написанные на С, и для сборки им нужны системные библиотеки, о чем можно узнать, только загуглив сообщения ошибок, возникающих при компиляции.
configure? нет, не слышали.

А еще в python до сих пор все используют Django. Это как если бы у нас все еще писали на Symfony 1, который и был слизан с Django.

PHP неконсистентен внутри, а Python - это хлам в инфраструктуре. Если на PHP у нас проблемы, то в python нам в голову не приходит, что подобные проблемы можно решать, просто молча кушаем 10-летнее дерьмо.
Но на питоне удобно писать всякие сетевые демоны на твисте.
Рассказ таксиста о трудностях разработки ядерного реактора.
Ты можешь вывалить все либы в папку с скриптами и импортировать подобно include. А ещё можешь просто взять, да добавить в PYTHONPATH диру с либами. https://docs.python.org/3.5/using/cmdline.html#envvar-PYTHONPATH
virtualenv это всего лишь удобный способ организации всего этого добра.
В python можно просто взять и написать приложение без пачки утилит и специальных костылей. Просто нужно не пассажиров из аэропортов развозить - а хотя бы попытаться разобраться в том, что критикуешь.
По поводу pip и гитхаба: http://stackoverflow.com/questions/20101834/pip-install-from-github-repo-branch
Часть пакетов PHP содержат модули, написанные на СИ.
А ещё в ПХП пишут лапшой.
ПХП не консистентен, а Python красивый и локаничный. Если на ПХП у тебя проблемы, то в python даже в голову не приходит, что такие проблемы могут появиться.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Я о том же, python именно что локаничный. Никаких защищенных свойств, интерфейсов, трейтов, абстрактных классов, типизации. Фиксации API нет. Только контракты, только религия.

И где же взять список зависимостей для библиотек, которые ставишь через pip install https://github.com/user/repo.git@branch ?
В гугле по сообщениям об ошибках? :)

Распаковать библиотеки в папку и писать import, как в PHP4 в начале каждого файла писали include? Выставлять значение PYTHONPATH, как в 4ке выставляли include_path? :)
В python немало приятных вещей - работа со строками, безразмерный int, но отстает он серьезно, и некрофилия удручает. В питоне о проблемах не думаешь точно так же, как на 4ке не думали про автозагрузку, PSR и composer.json - это было невозможно.
И это я еще не сравниваю python с Golang.
 
Последнее редактирование:

stalxed

Новичок
Сравнение с питоном и перлом - много в этой теме.

А вот если взять более высокоуровневые языки: C#, Java(и производные Clojure, Groovy, Scala), Ruby - почему они не забирают в массовом масштабе долю веб проектов у php?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Очень сложно отобрать веб-проекты у языка заточенного под веб-проекты на уровне архитектуры и окружающей его инфраструктуры.
 

WMix

герр M:)ller
Партнер клуба
@stalxed, мне кажется ты хотел сказать низкоуровневые или онанаковоуровневые
 

Adelf

Administrator
Команда форума
Ну если бы он Ruby из этого списка убрал, еще бы прослеживался смысл :)
 

cDLEON

Онанист РНРСlub
Я о том же, python именно что локаничный. Никаких защищенных свойств, интерфейсов, трейтов, абстрактных классов, типизации. Фиксации API нет. Только контракты, только религия.

И где же взять список зависимостей для библиотек, которые ставишь через pip install https://github.com/user/repo.git@branch ?
В гугле по сообщениям об ошибках? :)

Распаковать библиотеки в папку и писать import, как в PHP4 в начале каждого файла писали include? Выставлять значение PYTHONPATH, как в 4ке выставляли include_path? :)
В python немало приятных вещей - работа со строками, безразмерный int, но отстает он серьезно, и некрофилия удручает. В питоне о проблемах не думаешь точно так же, как на 4ке не думали про автозагрузку, PSR и composer.json - это было невозможно.
И это я еще не сравниваю python с Golang.
Интерфейсов нет - есть абстрактные классы https://docs.python.org/3.6/library/abc.html
Вместо трейтов - множественное наследование
Типизация - есть. Да, в аргументы функций типы не пропишешь, вернее это сделать можно, но на уровне аннотаций https://www.python.org/dev/peps/pep-3107/
Что такое фиксация API ? :confused: pip freeze ?
А список зависимостей тянется из requirements.txt, которая, обычно, лежит в корне любой библиотеки. https://pip.readthedocs.org/en/1.1/requirements.html
Ну да. Берешь так и пишешь import. Зато сразу понятно из какого места это всё подтянется. В отличии от ПХПшного автолоада. К тому же, при чём здесь python ? Давай-ка мы ещё и Java недоязыком назовем.
Лол. Отстает от чего ? Там есть больше фич, чем есть в ПХП. Декораторы, async\await, futures, генераторы, итераторы, дескрипторы, метаклассы. Продолжать ?
А ты возьми - да сравни. Лично в golang я не вижу ни одной киллер фичи.
Ты вот не поверишь, но за 3 года с python я реально не думал ни разу ни о одной проблеме, с которой я постоянно сталкивался в PHP.
 
Последнее редактирование:

Breeze

goshogun
Команда форума
Партнер клуба
срач бессмысленный и беспощадный
 

Adelf

Administrator
Команда форума
@cDLEON, не спору ради а интересу. Из ссылки, которую ты прислал:

Код:
class Foo:
    def __getitem__(self, index):
        ...
    def __len__(self):
        ...
    def get_iterator(self):
        return iter(self)

class MyIterable(metaclass=ABCMeta):

    @abstractmethod
    def __iter__(self):
        while False:
            yield None

    def get_iterator(self):
        return self.__iter__()

    @classmethod
    def __subclasshook__(cls, C):
        if cls is MyIterable:
            if any("__iter__" in B.__dict__ for B in C.__mro__):
                return True
        return NotImplemented
__У__ __вас__ __там__ __принято___ __так__?

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

AnrDaemon

Продвинутый новичок
Давайте ещё Lua вспомним. С её first-class-всё-подряд переменными.
 
Сверху