LINUX.ORG.RU

Yii2 vs Django LTS Fight!

 , , ,


0

3

Сабж.

В связи с тем, что недавно релизнулась 1.11 версия Джанго смотрел в Сети сравнение возможностей обоих фреймворков.

Пока сделал выводы, что по функциональным возможностям ничья, если не брать во внимание тот факт, что Питон это не Пых.

Но тут как бы PHP7 пришел и порядок навел, говорят... )))

Хотелось бы услышать ваши Pro en Contra из первых уст.

★★★★★

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

Php быстрее тормозного питона и с адекватным синтаксисом. Питон проиграл.

Чем-то напоминает гиену из мауглей, которая пищит «а мы идем на север»

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

хотябы нормальные лямбды

А зачем нужны лямбды, кроме как понтануться однострочкой? =)

Siado ★★★★★
()

Django используется в Google, Youtube. PHP - только в соцтсетях. Python - язык общего назначения, PHP - только странички клепать. 95% кодобазы на хостинга php - это Wordpress.

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

Во-первых, это proposal, а не работающее решение:

Status: Accepted
Type: Standards Track
Created: 29-Sep-2014

Ну ок, есть такой?

выбирай любой: встроенный в pycharm, prospector, flake8 (может еще чего нагуглишь, это первое что мне сходу вспомнилось).

Ну если у тебя все функции в одну строчку, то нет проблем. А так даже чтобы if/else написать нужно выёживаться. И эти люди что-то там мычат против пыха. Бугагашечки.

И я все равно не вижу проблем в питонячьих лямбдах, может быть приведешь пример кейса, где тебе просто необходимо использовать многострочную лямбду с if/else в питоне?

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

А чем плох бейсик?

Ничем, если тебе меньше 12 лет.

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

Ну если у тебя все функции в одну строчку, то нет проблем. А так даже чтобы if/else написать нужно выёживаться. И эти люди что-то там мычат против пыха. Бугагашечки.

Если тебе необходимо использовать лямбды в несколько строк кода, да еще и с if/else, вероятно тебе стоит задуматься над перепроиктированием этой части кода.

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

в свое время - это был чень даже не плохой язык программирования

В своё время там были номера строк и не было процедур, сплошной goto и 100500 операторов на все случаи жизни. Сурово, но эффективно. Прям как щас в питоне.

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

Если тебе необходимо использовать лямбды в несколько строк кода, да еще и с if/else, вероятно тебе стоит задуматься над перепроиктированием этой части кода

Т.е. например декораторы в питоне использовать не стоит? Там ведь по смыслу нужна лямбда, но питонисты вынуждены писать

def foo():
  def wrapped():
...
  return wrapped

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

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

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

декоратор может возвращать несколько разных реализаций

В какой-то момент ты свернул куда-то не туда

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Я лучше тебя в игнор кину, если ты не назовёшь принципиальной разницы с точки зрения алгоритма.

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

В какой-то момент ты свернул куда-то не туда

Допустим у меня декоратор делает switch по типу и возвращает разные реализации для разных типов. Внезапно, да? Фанбои такие фанбои, не разбираются даже в том, за что топят.

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

принципиальной разницы с точки зрения алгоритма

Вперёд в гугл.

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

Т.е. например декораторы в питоне использовать не стоит? Там ведь по смыслу нужна лямбда, но питонисты вынуждены писать

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

Особенно эпично, когда декоратор может возвращать несколько разных реализаций
Допустим у меня декоратор делает switch по типу и возвращает разные реализации для разных типов. Внезапно, да? Фанбои такие фанбои, не разбираются даже в том, за что топят.

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

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

не совсем понимаю, почему по смыслу нужна лямбда?

Потому что имя wrapped ты используешь только 1 раз. Для чего тогда оно? Оно лишнее, если бы были нормальные лямбды, то можно было бы писать просто return function() { ... }

Или ты хочешь лямбами возвращать их, если да - то это как минимум плохая идея

Это отличная идея, т.к. мне не нужно выдумывать, как называть функции и код сосредоточен в одном месте - не нужно смотреть как оно называется и потом отдельно реализацию.

в switch пихать какую-то более менее сложную логику вредно

Просто ЛОЛ. На питоне видимо вообще писать какую-то более менее сложную логику вредно.

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

Потому что имя wrapped ты используешь только 1 раз. Для чего тогда оно? Оно лишнее, если бы были нормальные лямбды, то можно было бы писать просто return function() { ... }

Ну да, возможно так удобнее было бы.

Это отличная идея, т.к. мне не нужно выдумывать, как называть функции и код сосредоточен в одном месте - не нужно смотреть как оно называется и потом отдельно реализацию.

И потом у тебя получается лапша из непонятного кода, если я выделяю разные алгоритмы в разные функции, то я по одному названию функции (если оно нормальное) могу понять что делает метод, и не пытаться уместить в голове сразу все n алгоритмов.

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

получается лапша из непонятного кода

Ну конечно, а если к лапше добавить название, то тут-то сразу всё становится понятно, ага. В switch у тебя и так есть case-ы по которым понятно, что должно происходить.

и не пытаться уместить в голове сразу все n алгоритмов

А тебя кто-то заставляет? С каждым кейсом связан свой алгоритм, более того он представлен прямо в кейсе, а не где-то там. Как раз в этом случае и не нужно ничего запоминать, т.к. сразу всё перед глазами и не нужно помнить, что конкретно делает функция c говорящим именем и содержанием в 3 строчки.

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

Ну конечно, а если к лапше добавить название, то тут-то сразу всё становится понятно

Ну если лапшу разбить на функции, то станет я думаю понятнее.

что конкретно делает функция c говорящим именем и содержанием в 3 строчки.

Я имел ввиду, если у тебя switch и на каждый case у тебя по 20 и более строк, то уже стоит задуматься над выделением в функцию. И чаще всего switch удобно использовать как координатор.

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

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

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

можно вообще без лямд прожить

И без питона.

если нету такой функциональности, не значит что язык плохой

Нет, но это значит: 1.Не всё в питоне прекрасно, есть и дичайшие костыли и просто неудачные решения, которые выдаются за python way 2.Питон ни чем не лучше любого другого популярного языка.

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

Нет, но это значит: 1.Не всё в питоне прекрасно, есть и дичайшие костыли и просто неудачные решения, которые выдаются за python way 2.Питон ни чем не лучше любого другого популярного языка.

Согласен

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

А как насчёт того, что со временем, с ростом проекта Yii2 может превратиться в «свалку библиотек» ? Своеобразный CakePHP вид сбоку))

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

Не проще ли бардак с типами разобрать вместо того чтобы новый создавать на его фоне, фанбой?

Goury ★★★★★
()

php

Не котируется для серьёзных разработок. php 7 не сделал революции. Он просто немного стал догонять другие языки по развитию. Но так и остался УГ.

Сравнивать Python с php - смысла нет никакого. php - это детcкий сад, по сравнению с Python.

th3m3 ★★★★★
()

Только питон, только хардкоре!

Питон это стабильность, вторую ветку закапывают уже какой год и не могут закопать.

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

Не проще ли бардак с типами разобрать

Допустим, не проще. И дальше что? Это был общий пример.

no-such-file ★★★★★
()

А есть сравнительные бенчмарки? Не гуглится ничего толкового.

// Тоже хочу сделать выбор, только еще на ноду приходится смотреть

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

Бытует мнение, что Джанга лучше структурирована, чем детище Макарова.

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

Бенчамарков не находил. Если кто найдёт, пусть сюда запостит.

Только сравнительную табличку функциональности смотрел.

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

Си подобный синтаксис более привычен большинству людей, это факт(почему это думаю объяснять не стоит). Тут не вопрос знания, тут вопрос банальной эстетики. Я не пишу на питоне в большей степени потому что вижу синтаксис который мне не нравиться(дело привычки на самом деле).

Какое, сцуко, эпичное преимущество пыха на пистоном. А меня эти ваши двойные стрелки бесят, если что.

anonymous
()

Пока сделал выводы, что по функциональным возможностям ничья, если не брать во внимание тот факт, что Питон это не Пых.

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

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

Собственно, тут уже к месту подметили по поводу качества кода, где нужны подобные ухищрения с лямбдами, но раз уж зашла речь о декораторах, то вот пример декоратора из PEP 443:

>>> @fun.register(list)
... def _(arg, verbose=False):
...     if verbose:
...         print("Enumerate this:")
...     for i, elem in enumerate(arg):
...         print(i, elem)
И не обязательно выдумывать особые имена для функций.

irr123
()
Ответ на: Только питон, только хардкоре! от ggrn

Уже не смешно. Я кроме odoo (OpenERP) уже ничего не встречал на 2-й. И то, что есть поддержка не мигрировавшего legacy, это большой плюс.

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

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

Зачем ты пишешь несколько разных реализаций, если не знаешь, что они делают?

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

И не обязательно выдумывать особые имена для функций.

А если у меня таких функций 100? Писать _1, _2 и т.д.? Очень наглядно.

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

yii сложнее в освоении

Мне так не показалось. Когда его учил по мануалу.

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

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

А если у меня есть двдрв-привод?

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

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

def test(arg: int):
    if arg < 0:
        def _():
            print(123)
        return _

    if (0 < arg) and (arg < 10):
        def _():
            print(345)
        return _

test(-1)()
test(1)()

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

А если у меня есть двдрв-привод?

а у меня в квартире газ флоппи-ридер

beka
()
Ответ на: комментарий от Twissel
test(-1)()

или

my_named_func=test(-1)
my_named_func()

Здесь просто функция возвращает функцию, так же работает декоратор и замыкание.

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

npm

pip никуда не делся, а вот склипать нормальный пакет с зависимостями внутри и который не надо разворачивать каждый раз я бы не отказался

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