|
2.4, Вася (??), 11:55, 12/02/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
А зачем так много разных марок легковесных авто?
| |
|
3.10, Аноним (10), 12:29, 12/02/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Спроси у немцев и других французев. У нас в стране одна марка.
| |
|
|
Часть нити удалена модератором |
5.24, нах (?), 15:58, 12/02/2019 [ответить]
| –1 +/– |
> Интересно, что сцукерберги являясь богатой технологической компанией,
это сцукенберг богатый технолог - а компания бедная, он (судя по просачивающейся информации) на конкурсе паталогической жадности победил бы даже Безоса.
поэтому и неасилили - умные и грамотные оттуда сбегают при первой возможности, остаются пехепе кодеры.
заметь, случаев человеков добровольно и без принуждения сбежавших из sun или даже ужасного microsoft мне совершенно не известно.
> Лучше бы карму починил себе, скоро как у Биллигейца станет.
это ему поперерождаться неприкасаемым раз этак с триста, чтоб как у блингейца стала, придется. Тот иностранным шпионам личную информацию своих пользователей как-то ни разу вроде не слил.
| |
|
|
|
2.35, Аноним (35), 19:55, 12/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
Уперлись они в его производительность/сопровождаемость. Сначала компиляли в С++ (проект назывался hiphop), а теперь свою vm написали: скорость выполнения подняли, типов добавили в язык (привет любителям динамической типизации). Когда дофига написанного кода - так проще.
| |
2.42, Аноним (42), 00:57, 13/02/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Видимо, им проще и дешевле чинить PHP, чем переходить на нормальный язык.
| |
|
3.48, Онаним (?), 09:34, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
Ну и какой язык в манямирке сегодня нормальный? В реальности же - PHP и есть самый нормальный язык для своих задач. Как по статистике, так и по факту. Просто не стоит забывать, что каждый инструмент имеет своё назначение.
| |
|
|
5.80, Hello (?), 17:28, 17/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
Для мейнстримных. Мейнстрим тоже приносит бабло (люди покупают машины - компании имеют деньги). А пхп мейнстримный - его просто понять, есть в любой дыре за копейки, шишки все набиты. Что еще нужно для "поднять сайт за вечер" или "поднять проект чувакам, которым нужна куча взаимозаменяемых разрабов"?
| |
|
|
3.61, сцукенберг (?), 15:36, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
конечно дешевле - так я двух нормальных разработчиков нанял, они подпиливают это хевеэм, 24/7, сдохнут новых найму.
А саму мордокнигу пишут на этом дешевые макаки, в Хайдерабаде на рынке если в шесть утра зайти, то на рупь пучок продают.
Причем, в отличие от этих первых умных, те слаще морковки не едали, и щасливы горбатиться на меня за три копейки, никуда не убегают.
| |
|
|
1.7, Ilya Indigo (ok), 12:10, 12/02/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
Надеюсь, следом за Hack, PHP8 будет тоже двигаться в сторону статической типизации и выкинет несовместимые с этим особенности, функции и языковые конструкции.
| |
|
|
|
4.14, тоже Аноним (ok), 13:12, 12/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
На практике - вредная и ненужная вещь. Достаточно простых переводов в строку и обратно на уровне языка, и статика наведет порядок там, где сейчас его можно упустить просто по небрежности.
Пока РНР был языком тяп-ляп функций, как JS, динамика была критичной.
Сейчас, когда все всерьез и через ООП, она больше мешает.
| |
|
5.21, Junior frontend developer (?), 15:12, 12/02/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Проблема не в том, что она не нужна, а в том, что это куда больше выразительной силы, чем обычно нужно пользователю, что создает дополнительную сложность и когнитивную нагрузку. Да тот же ООП в большинстве случаев предоставляет куда больше динамизма, чем нужно.
Использовать конструкции языка, предоставляющие минимально нужную выразительную силу — хорошая практика.
| |
|
6.22, Аноним (22), 15:31, 12/02/2019 [^] [^^] [^^^] [ответить]
| +5 +/– |
Проблема пыха не динамическая типизация, а легаси и слабая типизация.
| |
|
7.23, тоже Аноним (ok), 15:45, 12/02/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Проблема еще и в том, что тем, кто продолжает писать это легаси, не подается 220В на клавиатуру.
| |
|
|
5.50, Онаним (?), 09:47, 13/02/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Угу. Лепим ООП к месту и не к месту, получая на выходе одноразовый тормозной говнокод.
Была тут ситуация - нужно было разобрать список телефонных префиксов в дерево, навесить на проходные узлы ветвей несколько параметров, и просчитывать потом параметры листьев по запросу.
Сначала сделал рабочий PoC "легаси" - на хэшах и просто массивах. Потом вспомнил, что сейчас модно ООП, сконвертил префиксы в объекты, объявил проперти параметров, геттеры-сеттеры, методы прохода к ветвям и расчёта, "всё как надо". Накладные расходы по памяти на формирование дерева оказались таковы, что пришлось всё это счастье выкинуть, и вернуться к ассоциативным массивам.
Мораль: забивать гвозди отвёрткой - вредно.
| |
|
6.52, тоже Аноним (ok), 10:39, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
Внезапно, именно статическая типизация могла уменьшить потребление памяти в вашем случае.
Если, конечно, не дурить и не строить деревья из объектов без всякой на то необходимости.
| |
|
7.67, Онаним (?), 22:54, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
Необходимость в деревьях там 100%, в процессе обработки нужно выхватывать произвольные субдеревья с наследованием параметров и перечислением индексов как наличествующих, так и отсутствующих листьев. Листьев - семь с половиной миллионов. Параметров в дереве не много, но они ближе к началу-середине, и реже - на листьях. Там вариантов банально нет.
| |
|
6.65, KonstantinB (??), 22:40, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
А, геттеры-сеттеры это у нас ООП, понятно. Сдуру можно и буй сломать. Бегом читать Фаулера и Эванса, в частности про антипаттерн anemic model.
| |
|
7.66, Онаним (?), 22:52, 13/02/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Дурак выхватил из рассказа два малозначительных слова, и на основании них начал делать свои далеко идущие выводы. Впрочем, на то он и дурак.
| |
|
|
|
|
|
2.12, vitalif (ok), 13:09, 12/02/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Надеюсь, что нет. Идите на хрен со своей типизацией "пока в вилларибо настраивают сборку, в виллабаджо уже сделали MVP"
| |
|
3.16, тоже Аноним (ok), 13:15, 12/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
... на Ноде, которой ничего такого - вроде статической типизации или широкого использования в серьезных проектах - не грозит.
| |
|
|
|
6.26, KonstantinB (ok), 17:06, 12/02/2019 [^] [^^] [^^^] [ответить]
| +3 +/– |
Серьезный или несерьезный, а типизация очень хорошо помогает не накосячить тупейшим образом. У меня есть что сравнивать: вот под рукой два проекта (оба одинаково серьезные), старый написан на чистом ES5, а новый на Typescript. Если с Typescript почти все ошибки вида "забыл обязательное поле или опечатался в имени ключа в цепочке map/filter/reduce" ловятся уже на этапе компиляции, то с чистым ES5 такая же ошибка приводит к получасу мучительной отладки.
| |
|
7.31, Аноним (31), 19:09, 12/02/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Если с Typescript почти все ошибки [...] на этапе компиляции
Сколько раз вам нужно запустить компиляцию, чтобы исправить реально все обнаруженные ошибки? Сколько это по времени, помноженное на время компиляции?
Ничего не имею против строгой типизации, но вся это маята с компиляциями из одного языка в другой, потом ещё 10 раз, потом ещё интерпретатор с jit... не проще ли сразу взять нормальный язык типа c++? Компилироваться будет столько же, но хоть при выполнении не будет жрать как не в себя.
| |
|
8.36, Антон (??), 20:52, 12/02/2019 [^] [^^] [^^^] [ответить] | –1 +/– | чтобы отлавливать ошибки не нужно запускать компиляцию, это делает IDE Компиля... текст свёрнут, показать | |
|
7.43, Онаним (?), 07:36, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
> типизация очень хорошо помогает _криворучкам_ не накосячить тупейшим образом
Fixed
| |
7.63, Аноним (62), 17:16, 13/02/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Дорогой друг. Я понимаю что ты ахринеть разработчик. Но у меня за плечами, 7 лет си, 5 лет php, 2 года js, 5 лет ruby и 3года golang. И если ты говоришь что тебе статическая типизация нужна что бы не косячить то ты даун. Твои проблемы от нестрогой типизация. А статическая типизация добавляет проблем при нереиспользовании кода. Конечно если ты веб макака пишущая круды на готовом фреймворке то тебе это мало о чем скажет.
| |
|
|
|
|
|
2.27, KonstantinB (ok), 17:18, 12/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
На подмножестве PHP уже сейчас можно писать строго. Выкидывать там ничего не будут хотя бы потому, что тогда придется переписать примерно весь Wordpress, но самому себе никто не мешает запретить использовать "опасное" подмножество PHP. Есть линтеры, есть настройки анализатора кода в IDE, есть, в конце концов, code review.
| |
|
3.33, Ilya Indigo (ok), 19:42, 12/02/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
> На подмножестве PHP уже сейчас можно писать строго.
Строго - это когда ты определяешь в любом месте кода:
int a;
и теперь a можно присвоить только число в определённом диапазоне.
А когда ты можешь это указать только в параметрах ф-ий и м-ов - то это вообще ничто!
> ...тогда придется переписать примерно весь Wordpress,
И чё!?
| |
|
4.40, KonstantinB (ok), 00:23, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
> А когда ты можешь это указать только в параметрах ф-ий и м-ов - то это вообще ничто!
На самом деле, при должной декомпозиции (когда нет простыней по сто строк кода) на практике получается почти то же самое.
> И чё!?
То, что никто это делать не будет.
| |
|
5.49, Онаним (?), 09:38, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
Вот сразу видно, когда "классики" лезут в язык с динамической сборкой. В итоге при попытке притащить свои паттерны и "декомпозицию" по 5 строчек кода на класс / функцию, размазанных по 100500 отдельным файлам, у них внезапно начинаются проблемы, потому что динамическая сборка не дружит с подходами кодэ-макак, неспособных удерживать в голове более трёх строк одновременно (оставшиеся две - название функции с агрументами и закрывающая скобка).
| |
|
6.55, KonstantinB (ok), 10:54, 13/02/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это вы лихо всех авторов общепризнанных паттернов проектирования ПО в кодомакак записали. :-)
Нет, кодомакаки это как раз писатели простынок с цикломатической сложностью over 100500 методом копипаста со stack overflow.
Проблем с декомпозицией нет никаких вообще, динамика ей не мешает никак, с чего бы?
| |
|
7.69, Онаним (?), 22:57, 13/02/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
С того бы, что PHP вынужден каждый раз всю эту портянку подгружать и парсить. На каждый, сцуко, запуск. Сейчас opcache слегка спасает, но и он не всесилен.
А мозговой стэк оверфлоу при чтении кода - это как раз у горе-декомпостеров ради декомпоста, без цели и смысла.
| |
7.77, Онаним (?), 22:28, 14/02/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Когда у кодомакак ломается паттерн - это хорошо. Потому, что учиться думать самостоятельно - хорошо безусловно.
| |
|
|
|
|
|
2.32, Coocos (?), 19:36, 12/02/2019 [^] [^^] [^^^] [ответить]
| –3 +/– |
Какой смысл в ПХП со статической типизацией если есть Java с отлаженным JIT, богатым выбором библиотек и отсутствием геммороя со сборкой расширений.
| |
|
3.34, Ilya Indigo (ok), 19:46, 12/02/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Какой смысл в ПХП со статической типизацией если есть Java с отлаженным
> JIT, богатым выбором библиотек и отсутствием геммороя со сборкой расширений.
Какой смысл в жабе с её виртуальной машиной, если есть C++ с отлаженной кросплатформенной компиляцией, богатым выбором библиотек и отсутствием геморроя с докупкой оперативной памяти?
| |
|
4.53, coocos (?), 10:40, 13/02/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Такой что требуется значительно больше времени тратить на разработку вместо того чтобы купить память.
| |
4.64, Аноним (62), 17:23, 13/02/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Отсутствие ручного выделения памяти для вас уже недостаточно? Или вы по причине своей не компетентности не понимаете что для каждого яп свои задачи?
| |
|
|
|
1.29, Аноним (29), 19:05, 12/02/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Поместил php8 с jit компилятором, на бенчмарках показывает 40% прирост производительности и 26% на реальном проекте, жаль в прод его пока рано.
| |
|
2.37, SubGun (ok), 23:55, 12/02/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Это проект из разряда "допили сам". За 3 года так и не дошел до прода с поддержкой php.
Но работает и правда шустро. Не вижу кому он без пхп может понадобиться, кроме самого фейсбука?!
| |
|
|
2.45, Онаним (?), 07:38, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
В том, что это больше не PHP, а скорее самостоятельная поделка для внутренних нужд фейсбука.
| |
|
3.51, Аноним (51), 10:26, 13/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
> В том, что это больше не PHP, а скорее самостоятельная поделка для внутренних нужд фейсбука.
Как Go для Гугла?
| |
|
|
5.76, bentall (ok), 20:59, 14/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Ну не совсем, но типа того. За пределами оных они бессмысленны.
К Go это уже определённо не относится. А вот Hack/HVVM скорее всего так и останется языком одной фирмы, виртуальная машина которого одно время использовалась для ускорения PHP.
| |
|
|
|
|
1.60, bentall (ok), 14:47, 13/02/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Логично, HHVM как альтернативный JIT для PHP с выходом семёрки уже как-то и не нужен (вот и Wikipedia.ORG в процессе перехода с HHVM на PHP 7.0). Поэтому фейсбуковцы и сконцентрировались на поддержке своего языка. Нужен ли такой брат-2 PHP — вопрос другой. На фоне того что PHP начал терять популярность — далеко не факт, очень сильно сомневаюсь, что за пределами FB кто-то станет переписывать большой проект с PHP на Hack (хотя это, наверняка и проще, чем на что бы то ни было другое).
| |
|
2.78, bentall (ok), 17:32, 15/02/2019 [^] [^^] [^^^] [ответить]
| +/– |
А между тем язык Hack в TIOBE вытеснил с 50-го места TypeScript. Наверняка в связи с этим самым новым HHVM, но мало ли, чем чёрт не шутит, ввдруг кому-то вне FB да пригодится.
| |
|
|