LINUX.ORG.RU

Почему PHP7 быстрее чем Python3?

 , , ,


2

3

Раньше было же наоборот когда PHP был на 5 версии? Есть ли смысл дальше учить Python для веба? Сейчас последние годы замечаю Django/Flask не очень активны в отличии от других технологий как Node.js, PHP/Laravel. Python в основном зациклился в машин лёрнинг.

UPD. Быстрее я имел ввиду производительнее. JS для ноды конечно круто, но беспорядочный синтаксис js не нравится в нём писать, и c php тоже такая проблема. Но как бы они есть, как laravel и nodejs. Их производительность намного превосходит чем питон.

Deleted

Последнее исправление: Deleted (всего исправлений: 4)

Ответ на: комментарий от WitcherGeralt

А ты тестировал? Возьми затесть джангу vs symphony - удивишься. Только сам потестируй, а не в инете ищи кем-либо сделанные хер пойми какие тесты.

menangen ★★★★★
()
Ответ на: комментарий от pawnhearts

Это какой-то треш, надо внимательно читать. Ты уверен? Я пеку упаковал в дорогу, так что остагётся просто поверить твоей экспертизе.

WitcherGeralt ★★
()
Ответ на: комментарий от th3m3

Но то, что php стал быстрее, лучше он от этого не стал.

Чтобы php стал лучше, он должен перестать быть php

annulen ★★★★★
()
Ответ на: комментарий от Deleted

но мне кажется производительность тоже очень важная вещь

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

Vit ★★★★★
()
Ответ на: комментарий от th3m3

Не круто. Хайп прошёл. Даже сам создатель от ноды открещивается и топит за Golang.

Так это отлично. Главных хипстор свалил, может что-то из неё теперь и выйдет.

crutch_master ★★★★★
()
Ответ на: комментарий от dem

Так и меня сейчас запущен Хром, SublimeText, MC, OpenSSH сервер и клиент.... Продолжить? Кто из них написан на Ноде?

Хром. Там v8. Что такого плохого вы видишь в ноде?

crutch_master ★★★★★
()

Как показала практика скорость PHP или Python вообще не имеют значения. Как правило тормоза изза запросов к базе данных или вообще вебсервисам 1C. Только для очень редкого проекта скорость самого языка принципиальна, но и тут можно решить грамотной настройкой

А зная квалификацию программеров на PHP можно сказать наверняка, что он самый тормознутый :)

ism ★★★
()

Питон он полноценный ЯП, а PHP шаблонизатор больше, но ничего, в PHP8 подвезут асинхронность как в ноде, и он всех заборет!

vladimir_vist
()

Почему PHP7 быстрее чем Python3?

Если в решете дырок больше, через него течёт быстрее. ☺

mord0d ★★★★★
()
Ответ на: комментарий от dem

9 из которых SQL пишут тупо суммируя строки из запроса с кусками SQL

Какие-то сказки из 90-х. Нынешние макаки вообще никаких запросов не пишут ибо не умеют, т.к. всё делает фреймворк.

no-such-file ★★★★★
()
Ответ на: комментарий от ism

на каждый запрос стартует и завершается

В 2к19 году это называется serverless-архитектурой и это — замечательно. Приложение не хранит state между запросами и можно вебскейлить тупо load balancer'ом.

x3al ★★★★★
()

Почему PHP быстрее чем Python?

Потому что $users->method() быстрее определяется, чем users.method, но когда я вижу пыхпых-синтаксис мне хочется УБИВАТЬ!

беспорядочный синтаксис js не нравится в нём писать

А тебе нравится, когда пистон умирает от такого?

users = []
users[7] = 'Вася'  #<----Здесь пистон умирает!

Пыхпых:

$users[7] = "Вася";  //<--Здесь всё Ок

Язык здорового человека (Ruby):

users = []
users[7] = 'Вася'  #<--И здесь всё Ок

Есть ли смысл дальше учить Python для веба?

Есть ли смысл изучать полудинамический недообъектный имМУТАНТбельный пистон?
Только если продусьён требует (пока что пистона много на хостингах) - в остальных случаях НЕТ.

Novator ★★★★★
()
Ответ на: комментарий от Novator

users[7] = 'Вася' #<----Здесь пистон умирает!

Ему просто не хочется работать на такого человека, как вы. И я его понимаю.

ugoday ★★★★★
()

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

anonymous
()
Ответ на: комментарий от ugoday

Ему просто не хочется работать на такого человека, как вы. И я его понимаю.

Нет, Гвидо просто не понял, что означает слово «динамический», как и ты.

Novator ★★★★★
()
Ответ на: комментарий от Novator

Так это говорит как раз о том что пхп с рабями дно. У тебя какое-то искажённое мировосприятие, да?

быстрее определяется

ну над эти вроде работают, сейчас на ноду равняются, а не на днищепых https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=f...

anonymous
()
Ответ на: комментарий от anonymous

как раз о том что пхп с рабями дно.

Это как раз показывает, что ещё один мамкин аналитик, далёкий от прикладного программирования, не понял слово «динамический».

Если мне нужно будет вручную расширять массивы, я возьму компилируемый язык: Си/CGI или Паскаль/CGI - геммор тот же, но работать будет в разы быстрее.

Novator ★★★★★
()

php - это сервер-сайд шаблонизатор, а python - это полноценный язык программирования общего назначения, их сравнивать как сами знаете что с пальцем.

nikolnik ★★★
()
Ответ на: комментарий от Novator

Пхп вызывает рак мозга, это уже давно замеченный факт. [] в питоне - это массив с нулевой длиной, потому обращение к индексу 7 вызывает ошибку, что вообще логично и ожидаемо для любого программиста. А в пхп [] - это вообще шо? Массив, хеш, лист?

nikolnik ★★★
()
Ответ на: комментарий от nikolnik

Пхп вызывает рак мозга

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

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

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

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)

Не пхп быстрый , блокнот , ИНИ рулят понял

anonymous
()

UPD. Быстрее я имел ввиду производительнее.

Результаты сравнительных тестов в студию. На ЛОРе джентельменам не верят на слово...

enso ★★★★★
()
Ответ на: комментарий от Novator

Хотя на примере PHP это не так понятно, но вообще-то «динамическая типизация» и «говнокод» это разные вещи.

ugoday ★★★★★
()
Ответ на: комментарий от Novator

Это ожидаемо для программиста

Который знает как устроены типы и стандартные структуры данных языка, на котором он программирует.

ugoday ★★★★★
()
Ответ на: комментарий от nikolnik

В питоне тоже подобного полно, вообще PHP классный язык для своих целей, мне даже в нем менять ничего не хочется.

vladimir_vist
()
Ответ на: комментарий от menangen

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

pawnhearts ★★★★★
()
Ответ на: комментарий от x3al

Если у тебя есть сервер, который обрабатывает запросы в eventloop`е или ещё как, это не значит, что у него есть state и load balancer`ом нельзя пользоваться.

pawnhearts ★★★★★
()
Ответ на: комментарий от nikolnik

php - это сервер-сайд шаблонизатор, а python - это полноценный язык программирования общего назначения, их сравнивать как сами знаете что с пальцем

А чем так питон сильно лучше и полноценен против пхп? Не тролинг. Мне правда интересно.

А в пхп [] - это вообще шо? Массив, хеш, лист?

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

[] в питоне - это массив с нулевой длиной, потому обращение к индексу 7 вызывает ошибку

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

Noob_Linux ★★★★
()
Ответ на: комментарий от Noob_Linux

Т.е. вместо того, чтобы честно упасть в месте возникновения проблемы, php молча присвоит «Null в качестве значения», что вызовет жестокое и необычное поведение где-то в совсем-совсем другом месте? Ну, вот, например, этим питон и лучше.

ugoday ★★★★★
()
Ответ на: комментарий от pawnhearts

Странно. Я почему то одни и те же шаблоны использую и на фронтенде и на бэкенде. Что я не так делаю?

dem ★★
()
Последнее исправление: dem (всего исправлений: 1)
Ответ на: комментарий от ugoday

Ну спорный вопрос. Как по мне падать из-за такой «ошибки» довольно странное решение. Т.к. это не ошибка в чистом виде это лишь признак отсутствия проверки (и возможность сделать её явно и просто - прямо как любят в питоне) да и никто не машет тебе сделать так что бы это упало настроив обработчик ошибок таким образом как тебе удобно - в моих проектах так и происходит кстати.

Мне вот кажется у питона есть более серьезные проблемы которые никак нельзя решить - отступы, которые усложняют автоформатирование и чтение кода. Так же не видел приличных реализаций DI и IoC паттернов из-за отсутствия строгой типизации, всё через какие то костыли. Ну и пресловутые - черепашесть, сложность развертывания окружения.

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

Noob_Linux ★★★★
()
Последнее исправление: Noob_Linux (всего исправлений: 1)
Ответ на: комментарий от Noob_Linux

суть

отступы

отсутствия строгой типизации

черепашесть, сложность развертывания окружения

мужик, ты вот это серьёзно сейчас? Все эти «проблемы» исключительно в твоей голове.

anonymous
()
Ответ на: комментарий от Noob_Linux

В питоне ты можешь написать foo.get('key', 'default_value'), если тебе такое поведение нужно. По дефолту возвращать null не верно, а если такой ключ есть и у него значение null.

из-за отсутствия строгой типизации

Ты ничего не перепутал, в питоне строгая типизация, в отличие от php. Но как это связано с паттернами, я тоже не понял.

pawnhearts ★★★★★
()
Ответ на: суть от anonymous

Да, это вкусовщина (что я и отметил), примерно как и претензии ugoday к PHP.

Noob_Linux ★★★★
()
Ответ на: комментарий от pawnhearts
<?php
class Cat {
    public function Say() {
        echo 'Meow!';
    }
}

class Dog {
    public function Say() {
        echo "Gav!";
    }
}

function Say(Cat $class) {
    $class->Say();
}

Say(new Dog());

PHP выдаст ошибку.

class Кот():
    def голос(self):
        print("Мяу!")

class Собака:
    def голос(self):
        print("Гав!")

def голос(жывотное: Кот):
    жывотное.голос()

голос(Собака())
А питон не выдаст, шах и мат, PHP язык для пацанов.

vladimir_vist
()
Ответ на: комментарий от vladimir_vist

Да и PHP для сайтов создавался, а питон для скриптов вместо шела.

vladimir_vist
()
Ответ на: комментарий от pawnhearts

По дефолту возвращать null не верно, а если такой ключ есть и у него значение null

ну то есть вся претензия в том что вам лень сделать проверку на существования ключа когда это важно так:

if(array_key_exists('key', $arr)) { //... }

или же когда наличие/отсутствие ключа не важно сделать (как правило так и есть) так:

if($arr['key']) { //.. }

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

Ты ничего не перепутал, в питоне строгая типизация, в отличие от php

да ладно? И я прямо могу на питоне написать вменяемый DI контейнер который по сигнатурам методов определит зависимости? Чет не видал, покажи. А в PHP вот могу и то что строгая типизация в PHP опционально это другой разговор, но вы видимо не слышали что на PHP можно писать используя строгую типизацию раз заявляете что её там нет.

Noob_Linux ★★★★
()
Ответ на: комментарий от pawnhearts

Ты не знаешь что такое IoC и DI?

Ну я хочу например сделать ряд сервисов. Например сервис отвечающий за работу с пользователя, ещё один отвечает за работу с заказами, а третий за рассылку. Ну т.к. у нас например сайт/API то я хочу создать контроллер в аргументах которого перечислить нужные мне инстансы сервисов (перечисляю естественно интерфейсы, а не реализации что бы можно было одной строчкой в конфиге их подменить везде) и мне !!автоматический!! пробросятся зарегистрированные в конфигурации DI инстансы этих сервисов.

Это прекрасно делается в Java, C#, PHP, а вот в Python, Js что всё жутко костыльно и не удобно.

Noob_Linux ★★★★
()
Ответ на: комментарий от Noob_Linux

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

pawnhearts ★★★★★
()
Ответ на: комментарий от Noob_Linux

Да что ты говоришь, Python и JS гораздо гибче Java и C#, один eval() в JS чего стОит :-)

menangen ★★★★★
()
Ответ на: комментарий от Noob_Linux

Массивы в питоне работают строго определённым, простым, понятным и хорошо задокументированным способом. И с этой точки зрения, данное поведение, выпасть с traceback'ом «index out of range» является единственно разумным. Если вам нужно другое поведение — воспользуйтесь другим типом данных. Что, по-моему, очевидно.

Отступы это не проблема. Стэковерфлоу-драйвен-девелопмент наверное страдает, но, если честно, мне пофиг.

Ну а насчёт сложности развёртывания окружения, это вы ещё с ява-миром не сталкивались.

ugoday ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.