mendel

mendel
Рейтинг
232
Регистрация
06.03.2008
SeVlad:
Алгоритмы - это не только цифра, это и аналоговый мир. Только законы их взаимодействия там во многом другие.

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

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

Правой кнопкой по переменной или названию класса, "перейти к определению" и все дела. Пхп дает некоторую излишнюю гибкость и наследование старых паттернов. Здесь к примеру явно должно было бы быть что-то вроде \Spl\FixedArray и только так. В языке полно функций с различным форматом написания. Префикс группы функций может быть как впереди так и сзади, неоднородный порядок параметров и все такое. Это несколько напрягает, но с другой стороны это следствие того, что язык втягивал в себя все возможные библиотеки очень быстро. Наращивание функционала ценой единообразия дало ему быстрый рост. В свою очередь этот рост дает ему инфраструктурные преимущества. Да и недостатки тоже)

богоносец:
Что лучше — коммунизм или фашизм?

Атеизм.

borisd:
Но вот даже в вашем простейшем примере во всю красу предстает один из самых ужасных недостатков ПХП, который меня коробит больше всего, а именно: имя класса SplFixedArray. Если смотреть на код, то сразу возникает вопрос: откуда он взялся, где его искать, что это такое, где и в каком месте искать его определение? А ответ простой - хз.

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

borisd:
Вы думаете у пхп есть какие то шансы против универсального языка?

Пхп в большинстве кейсов вставит ассемблер на раз-два три. Или вы пайтон универсальным обозвали?)))

borisd:
Ну, давайте сравним скорость обработки дампа википедии алгоритмом LDA (алгоритм тематической классификации) или LHS и сравним скорость. На питоне это будет десяток строк кода (с использованием соответствующего пакета) и несколько часов времени на обработку. На пхп как это реализовать и сколько там всё будет обрабатываться, я не знаю.

И я не знаю. И не буду делать. В детстве делал что-то подобное с библиотекой Машкова только на турбо Бейсике. Заняло пару дней. Вернее не так. Первая версия по прикидкам должна была работать около года. Я потратил два дня на переписывание кода, и оно вышло в неделю работы. Код был далек от оптимального, но смысла в оптимизации я не видел. Упиралось всё кстати не в память (которой было всего 32мб) или проц (который был 233 цирикс), а в скорость диска.

Еще раз повторюсь - не хочу участвовать в этом писькомерстве. Даже если без синтетики. Задача "напишите мне сложный код без четкого ТЗ и мы сравним кто быстрее - вы или библиотека которую за меня написали" - это не тест на реальном кейсе.

Равно как и сравнение обработки гигабайтных массивов не есть тестирование производительности. Даже ваш тест без SPL показал, что эффективность пхп примерно на уровне. +- 100% ничего не значат в реальных условиях. Не гоняет никто такие массивы и т.п. Кеширование и прочие подходы приведут к тому что все равно и тот и тот упрутся в скорость базы да кривизну архитектуры.

---------- Добавлено 08.10.2016 в 22:16 ----------

danforth:
Ещё не известно, какую версию используют для тестов. Если ниже 5.3, то пролетаем с SplFixedArray.

Ну вам же сказали - пхп5, что не понятно то?))

Sly32, всё смешалось - люди, кони. Вы смешиваете язык, фреймворк и кривизну рук разработчиков. Я понимаю вас по поводу последнего. Но не сочувствую, у вас хоть вордпресс, а у меня опенКарт). Но не стоит смешивать теплое с мягким. Да, говнокода в пхп больше, но и просто кода в нем больше.

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

<?php

$maxIndex = 50000000;

$a = new SplFixedArray($maxIndex);

for($i=0; $i < $maxIndex; $i++) {

$a[$i] = $i;

}

?>

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

---------- Добавлено 08.10.2016 в 20:33 ----------

Sly32:
Даже лень в эту дискуссию вступать. Почиайте литературку, посмотрите, где можно использовать первое и второе, напишите сайт. Я лично убедился, как грузит сервер сайт на джанге и как на вордпрессе с идентичной базой и для меня давно вопросов нет. Ну а вы ищите аргументы...

Сравнение вордпресса и джанго в сравнении скорости языков это да, бомба.

При всей глупости данного писькомерства в принципе - слив засчитан.

Битва синтетиков объявляется открытой?

Побежал за попкорном.

---------- Добавлено 08.10.2016 в 19:37 ----------

danforth, за статейку кстати спасибо. Только начал читать, вроде не совсем то что надо, но хоть ключевых слов наберу нужных). Стоит проблема с верстальщиками - интуитивно я вижу говнокод, но вербально сформулировать требования ЗАРАНЕЕ не могу. Надо как-то формализовать для себя, ибо работа с верстальщиками важная часть разработки.

danforth:
С точки зрения эстетики - нет, не уникально.

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

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

Уникальность кода верстки это глупость.

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

Из минусов меня пока только пузомерка гугла по скорости раздражает. Блокирующий ЦСС бутстрапа (а еще хуже бутсвотча), да с cdn - сильно портят показатели. PageSpeed 99 недостижим).

Sly32:
Про base интересно и в самом деле упрощает жизнь с открытием ссылок

Усложняет. Юзераген должен понимать этот тег, что верно не для всех роботов.

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

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

Sly32:
А про якорь не понял -все переходит как и должно,по той же странице - специально проверил)

Вот, самый минимальный кейс из всех возможных)

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

danforth:
Не согласен, т.к. в большинстве языков есть детали, которые выясняются с практикой.

Всегда есть такие детали которые даже с практикой не выяснить никогда) Только переустановкой головного мозга. Иначе откуда бы брались такие вещи как VQMOD?

И ведь дело то совсем-совсем не в языке... Представляет что они будут творить в других языках?

Ну да ладно, черт с ними с мозгами.

Можно много лет писать на языке, и не знать многих нюансов.

Я на пхп пишу лет 9-10. Всего в программировании 25.

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

Мелочь, а поломала мне уже написанную систему работы шаблонов.

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

Или нет, вот еще проще.

Буквально на этой неделе столкнулся с тегом <base.

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

Из пяти человек так никто и не мог сказать почему <a href="#more" ведет не на якорь, а на главную страницу. А уж с хтмл то все работают плотно.

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

Smart Shot:
А никого не смущает, что Яндекс 100 лет назад ответил на этот вопрос? Или придерживаться рекомендаций поисковых систем нынче не модно?

А вас не смущает что это уже несколько раз обсудили?)

Помимо яндекса существуют и другие поисковики.

Гугл считает не так как яндекс.

Правда у того же гугла есть утверждение:


Если Google обнаружит ошибки в вашей разметке (например, если отсутствует ожидаемое значение атрибута rel="prev" или rel="next"), дальнейшее индексирование страниц и распознавание содержания будет выполняться на основе собственного эвристического алгоритма Google.

Так что в теории можно не заморачиваться и делать под яндекс, а гугл потерпит (как в свое время с тегом <noindex>).

Всего: 1906