1.1, leibniz (ok), 18:15, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +48 +/– |
Ни на йоту не знаю пхп, но искренне поздравляю всё пхп-подмножество опеннета.
| |
|
|
3.338, Odalist (?), 18:47, 28/11/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
О мои лесные боги, куда катиться мир. Где мой перл, где паскаль, где я? Надо сделать ретуал!
| |
|
2.94, Аноним (94), 21:13, 26/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> пхп-подмножество
похапешников же! Вообще браво, обтекаемо выразился)
| |
2.264, Влик_Валик (?), 14:39, 27/11/2020 [^] [^^] [^^^] [ответить]
| –5 +/– |
Динамический HTML изжил себя, как и технология flash от Adobe. Ждем полноценной замены дырявого языка.
| |
|
|
|
3.332, Аноним (332), 15:12, 28/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
в понимании ПХП, deprecated - это не состояние, а функция, причем сильно с побочными эффектами и неявными аргументами через глобальный контекст (зато теперь даже с именованными и в произвольном порядке!)
| |
|
4.340, hshhhhh (ok), 19:43, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> в понимании ПХП, deprecated - это не состояние, а функция, причем сильно
> с побочными эффектами и неявными аргументами через глобальный контекст (зато теперь
> даже с именованными и в произвольном порядке!)
Пятый пхп пропал из всех актуальных репозиториев -- его чтобы поставить надо к этому специально идти.
| |
|
|
2.15, IdeaFix (ok), 19:00, 26/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
К сожалению уже. Столько сделано чтобы 5.6 нельзя было использовать, что... жаба гадюку, или гадюка жабу - уже без разницы.
| |
2.48, Аноним (48), 19:51, 26/11/2020 [^] [^^] [^^^] [ответить]
| –5 +/– |
Я пока продолжаю новые проекты писать на PHP 5.2, изучать новые перделки тупо лень.
| |
|
3.58, Аноним (58), 19:58, 26/11/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
Не заметил большой разницы между 5.x и 8.x, если не извращаться с UB/half-UB.
Назад вот да, уже прыгнуть сложно. А вперёд, если код не ногами писан - обычно мелочёвка.
| |
|
4.333, Аноним (332), 15:17, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Окуджава (сам говорил) в начале знал три аккорда, а в конце целых семь!
Что поделаешь, талантливый поэт!
... а большой разницы между аккордами все равно нет, главное успеть пальцы переставить!
| |
|
3.66, Аноним (58), 20:14, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Другое дело что с семёрки начиная в синтаксис аккуратненько добавили офигительное количество всяких плюшек, ради которых кое-что даже охватывающий рефакторинг прошло, потому что они реально позволяют и количество кода сократить, и производительность оптимизировать.
| |
|
4.202, _hide_ (ok), 10:32, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Не подскажите каких? Как по мне, только синтаксис попортили неканоническими конструкциями особо не поменяв ничего.
| |
|
5.309, Аноним (58), 09:14, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Подскажу. Берёте Upgrade Notes с 5.6 до 7.0, далее до 7.1, 7.2, 7.3, 7.4, 8.0 - внимательно читаете.
Тут перечислять выйдет целая портянка.
| |
|
6.319, _hide_ (ok), 12:58, 28/11/2020 [^] [^^] [^^^] [ответить] | +/– | Открыл https www php net manual en migration70 new-features php 1 Scalar type... большой текст свёрнут, показать | |
|
7.354, Аноним (354), 10:48, 29/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Настоящим программистам все эти возможности статической типизация не нужны. Они всегда могут запустить var_ dump и проверить что передаётся, а что возвращается
| |
7.367, Аноним (58), 22:26, 29/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
На самом деле уже null coalescing и spaceship очень сильно сокращают код, это не беря более серьёзные изменения. Сейчас ещё аналогичный сахар для вызова методов добавили - тоже очень сильно свернёт if (... === null)'ы.
| |
|
|
|
|
3.133, Аноним (133), 00:29, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Аналогично, только пишу на 5.3 (у 5.2 какие-то проблемы были с совместимостью с 7.x).
И работает как на старом 5.3, так и на 7.4 с быстрым opcache. Ну да, вместо '[]' пишу 'array()', но вообще не напрягает.
| |
|
|
1.3, A.Stahl (ok), 18:15, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –9 +/– |
Вот он -- Питон и Баш в одном флаконе и с адекватным синтаксисом. То, чем почему-то не стал Перл. Лучшее что вообще происходило в интерпретируемом говноболоте.
| |
|
2.34, анонимуслинус (?), 19:36, 26/11/2020 [^] [^^] [^^^] [ответить]
| –6 +/– |
питон посерьезней пхп будет. любой из версий. но ты там продолжай верить. и да перл он не заменит, как и компилируемые языки. но может быть доиграются jit, что в скором на несистемные и важные вещи начнут клепать поделки вот на этом)))
| |
|
3.127, анонимуслинус (?), 23:41, 26/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
и что у людей столько злобы. за правильные слова минусуют сразу. я ведь не сказал, что он неприменим в веб. я сказал , что чисто технически он слабее того же питон. у них изначально разное направление . пхп веб-сервера, питон скриптовой язык общего пользования. естественно питон универсальнее и обладает более широкими возможностями. хотя сейчас стали делать "сайт- как -приложение". так что тут вопрос небольшой. скриптовой язык общего назначения(вплоть до написания программ целиком и язык чисто веб и сервисов. вы ужж когда минусуете подумайте хоть мозгами. а то типичные анонимы опеннета.)))
| |
|
2.111, Аноним (111), 22:37, 26/11/2020 [^] [^^] [^^^] [ответить]
| –6 +/– |
> То, чем почему-то не стал Перл.
Потому что это язык вуду. И написанный на нем ког дерез некоторое время не понимает даже его автор.
| |
2.129, rshadow (ok), 23:50, 26/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Так с перлом сравнивать как теплое с мягким. Там скорее разная идеология, синтаксис это уже последствия.
| |
|
3.145, Аноним (40), 02:02, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> скорее разная идеология
Скорее наличие идеологии в perl и отсутствие её в php. Хотя отсутствие идеологии тоже можно считать идеологией… Но первый постмодернистский язык всё равно — perl.
| |
|
|
|
2.27, Аноним (58), 19:30, 26/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Аналогично, только лет уже 20.
JIT вообще то, чего ждалось очень долго - теперь критичные куски кода будут выполняться очень шустро.
| |
|
3.76, Аноним (76), 20:31, 26/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Очень шустро, примерно аж на 10% шустрее. Наверно жит всё-таки не бесплатный, значительные накладные расходы идут в довесок. Вот что шустро, это часть кода переписать на си.
| |
|
4.146, Аноним (40), 02:04, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да, насчёт накладных расходов очень интересно. За эти сомнительные 10%, небось, придётся заплатить 400% ОЗУ?
| |
4.207, Аноним (207), 10:47, 27/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
0-10% шустрее для типичного похапе с ассоциативными массивами и отсутствием типизации. Если же писать код в современном стиле, с явной типизацией и включенными strict_types - выигрыш будет существенный. Накладные расходы можно свести к нулю через opcache.preload.
В целом, прогресс очень значительный, и на этом уже можно комфортно программировать большие проекты.
| |
|
5.213, Аноним (207), 10:56, 27/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Добавлю, чего действительно не хватает, чтобы PHP стал нормальным языком.
Не хватает двух вещей:
1. Удобного способа создания типизированных иммутабельных структур. final свойств (как в Java) или readonly свойств (как в C# или typescript) нет, приходится генерировать геттеры. Хорошая IDE позволяет это упростить, но все равно эта куча бойлерплейт-кода изрядно раздражает. Отличным решением было бы позаимствовать data classes из Kotlin.
2. Дженериков. Без них невозможно реализовать обобщенные типизированные структуры данных - да даже типизированные коллекции сделать нельзя.
Все остальное уже вполне неплохо (да, неконсистентность стандартной библиотеки никуда не делась, но с этим можно жить, если привык).
| |
|
|
3.78, Sw00p aka Jerom (?), 20:35, 26/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
>теперь критичные куски кода будут выполняться очень шустро
Такс это какие ещё куски? Мат вычисления на пхп?
| |
|
4.84, Аноним (58), 20:45, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Обработка данных.
Биллинг мобильной связи между операторами с цепочкой "до абонента" как пример годится?
Там и вычислений прилично, и разбора CDR, и обработки всяких опций типа пакетов данных.
| |
|
5.104, Sw00p aka Jerom (?), 21:39, 26/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Биллинг мобильной связи между операторами с цепочкой "до абонента" как пример годится?
Вы серьезно? аккаунтинг, статистика, агрегация, анализ, машинное обучение раз уж на то пошло?
Биг-дейта и пхп разве совместимы?
> Там и вычислений прилично, и разбора CDR, и обработки всяких опций типа пакетов данных.
Серьезно? это в каких масштабах? Там где нужно со всякими хадупами решать вопрос вы будете решать с помощью пхп?
пс: на картинке из новости, нет ни одного теста с работой на больших данных (статистика, агрегация и т.д.), заявлено только "например, интенсивные математические вычисления или обработка в циклах данных, находящихся в оперативной памяти." - они что там ускорили foreach? ну хоть на этом спасибо.
| |
|
6.116, Аноним (58), 23:11, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Хадупы в биллинге трафика лишние. Там допустим любой пакет с общим счётчиком на большую группу абонентов поставит всё это хадупство колом, потому что общий счётчик сериализует.
| |
|
|
6.119, Аноним (58), 23:18, 26/11/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Эээээ секундочку Географический анализ от биллинга отличается тем, что - 1005... большой текст свёрнут, показать | |
|
|
8.189, Аноним (58), 10:20, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | У нас задача учёт, да Аналитика вторична, но она тоже на PHP D Абсолютно Оно ... большой текст свёрнут, показать | |
|
|
|
5.172, qweqwe (?), 08:18, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Без ассинхронности и многопоточности это бесполезно.
Если делать это имеющимися средствами, то PHP неимоверно жрёт ресурсы (больше жабы) и постоянно течёт. Был опыт - больше не надо...
Если писать быстрые решения, то на golang и ему подобных.
| |
|
6.190, Аноним (58), 10:21, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Давно уже не течёт, примерно с 5.6 начиная - всё вылизали почти до блеска.
Тот же биллинг месяцами ворочается без перезапуска, и нигде не протекает.
| |
|
|
4.86, Аноним (58), 20:49, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Формирование международных тарифов на основании тарифных данных от нескольких апстримов, и загрузка итоговых маршрутов и планов тарификации в софтсвитчи. Там из десятка исходных XLS получаешь в базу больше миллиона префиксов, которые надо обсчитать, вычислить оптимальный маршрут, тариф для абонента, потом это дело свернуть так, чтобы на свитче база раком не вспухла, и залить в свитч. А ещё отдать мобильному тарификатору, когда он попросит тариф для вызванного номера XXX. Тоже как пример.
| |
|
|
6.191, Аноним (58), 10:23, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Если хочется нагородить велосипедов - то почему бы и нет.
Биллинг в основном, как ни странно, работа с текстом и околотекстом.
Даже arbitrary precision math - по сути "текст" (байтовые массивы).
И с map'ами для всего и вся, причём набор атрибутов в объектах map'ов может быть динамическим.
PHP для этой задачи с его хеш-массивами (которые map'ы и есть) как нельзя лучше подходит.
| |
6.193, Аноним (58), 10:24, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
У нас CRM на .NET. Я вижу, как они с ним трахаются, с жёсткой типизацией, с необходимостью динамические проперти отдельными мапами держать, и всегда думаю - перешли бы на PHP, этих проблем, которые у вас есть, вообще не было бы.
| |
|
7.196, Аноним (58), 10:26, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Пришёл блджад null вместо данных в пакете обмена - вся апликуха сдропнулась в Exception.
Потому что разборщик в объекты сторонний, и nullable типы не умеет.
| |
7.334, Andrey (??), 15:25, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> У нас CRM на .NET. Я вижу, как они с ним трахаются, с жёсткой типизацией
Жесткая в смысле сильная или статическая? Если статическая, то при желании можно использовать dynamic. Если сильная, то другой и не должно быть, потому как ловить баги уровня 0 == 'foo', себя не уважать. В любом случае шарп как язык на голову выше php.
| |
|
|
|
4.87, Аноним (58), 20:53, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Формирование базы перемещения номеров для тех же свитчей.
Тянем с местной базы LNP/MNP списки операторов с маршрутными кодами. Списки префиксов с маршрутными кодами по умолчанию. Историю портирования номеров от оператора к оператору инкрементно. Вычисляем так же инкрементно, какой номер куда заруливается после применения последнего инкремента из базы. Сопоставляем маршрутные коды. Сопоставляем идентификаторы стыков, которые каждый конкретный оператор имеет свои и разные. Заливаем на свитч.
И т.д. И т.п.
| |
|
|
|
1.7, Аноним (2), 18:19, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –9 +/– |
>Возможность оставления символа запятой после последнего элемента в списке параметров функции.
Больше граммар макак
| |
|
2.12, leibniz (ok), 18:30, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Больше граммар макак
Вы про солидную часть комментаторов опеннета?
| |
|
1.8, InuYasha (??), 18:19, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –9 +/– |
Хотел пыхнуть, но поперхнулся - от обилия сахара прям тошно стало. :-|
(читать голосом Гинтоки) Эй, разрабоччеги! Если программисты подхватят диабет - что будете делать, аа? Настоящий самурай не остановится ни перед ?wtf:null, ни перед скобкой! Если вы такие крутые, то почему не приняли инициативу P++? Если есть время городить синтаксический сахар, не лучше ли потратить его на строгую типизацию, а??
| |
|
2.29, Аноним (58), 19:30, 26/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
За строгой типизацией вам в другое место.
PHP нестрогой типизацией и хорош, в том числе.
| |
2.175, Аноним (354), 08:29, 27/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
В строгая типизация появилась в php 7.0 и включается директивой declare(strict_types=1)
| |
|
1.11, КО (?), 18:28, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Jit показали.
Табличку с графиками показали.
Циферки показали.
Знать бы что это за циферки.
| |
|
2.44, Аноним (58), 19:48, 26/11/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Соотношения это.
Либо числа запросов, либо обратное времени выполнения.
Вот то, что не указали - это да, конечно, сиди и гадай, что из двух.
| |
2.278, Секрет (?), 18:21, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Это они dotnet догоняют. В энтерпрайзе сейчас C# очень неплохо в вебе обосновывается, и нововведения прям из этого монстра взяты. Но из-за наследия и культуры, только хуже сделают, кто хотел, ушёл уже на C#.
| |
|
3.360, Аноним (360), 15:49, 29/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
C# и в геймдеве прочно обосновался и на виндлвом дестопе ему нет альтернатив по скорости и удобству гуи приложух(Qt не беру в расчет ибо сложно)
| |
|
|
|
|
3.23, nomad__ (ok), 19:22, 26/11/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
не так то, что строка - это не число. Даже если эта строка состоит из этого числа. И ни разу это не интуитивно. Конвертни её в число и сравнивай на здоровье.
| |
|
|
5.32, Аноним (32), 19:33, 26/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Шаблон тут ни при чем. В середине 90 имел довольно сомнительное удовольствие познакомится с lisp, там встречались "странности" и похлеще, но они были уместны согласно области применения языка. А вот зачем подобный выворот сознания нужен в языке, основное и единственное назначение которого - служить инструментом для быстрого ваяния веб-интерфейсов - ... ? вот это вопрос столетия.
| |
|
|
7.168, Аноним (32), 07:29, 27/11/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Ну в лиспе фактически вообще нет ни чисел, ни строк...
И я немного не о том.
Да, наверное, неудачное сравнение подобрал...
| |
|
6.39, Аноним (58), 19:44, 26/11/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
- основное и единственное назначение которого - служить инструментом для быстрого ваяния веб-интерфейсов
Это только в вашей голове. На деле же это уже некомпилируемый язык общего назначения ныне, который подходит для широченного круга задач.
| |
|
7.45, nomad__ (ok), 19:49, 26/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> - основное и единственное назначение которого - служить инструментом для быстрого ваяния
> веб-интерфейсов
> Это только в вашей голове. На деле же это уже некомпилируемый язык
> общего назначения ныне, который подходит для широченного круга задач.
Году в 2010 работал в одной конторе, где на PHP писали системные скрипты. Не на питоне или перле, а на пхп. Извращенцы.
| |
|
8.50, Аноним (58), 19:51, 26/11/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Почему извращенцы У нас вся почти инфраструктура на нём, кроме CRM И то потому... текст свёрнут, показать | |
|
9.51, nomad__ (ok), 19:52, 26/11/2020 [^] [^^] [^^^] [ответить] | –2 +/– | Потому что питон и перл в системе уже есть, а пхп еще поставить надо И ради нес... текст свёрнут, показать | |
|
|
11.55, Аноним (58), 19:55, 26/11/2020 [^] [^^] [^^^] [ответить] | –1 +/– | То есть если хочешь что-то свежее 5-летней давности - всё равно самому накатыват... текст свёрнут, показать | |
|
|
|
|
|
16.65, Аноним (58), 20:12, 26/11/2020 [^] [^^] [^^^] [ответить] | +2 +/– | У меня в десктопной системе нет из коробки ни PHP, ни питона, ни перла Потому ч... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
6.53, Annoynymous (ok), 19:53, 26/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Шаблон тут ни при чем. В середине 90 имел довольно сомнительное удовольствие
> познакомится с lisp, там встречались "странности" и похлеще, но они были
> уместны согласно области применения языка. А вот зачем подобный выворот сознания
> нужен в языке, основное и единственное назначение которого - служить инструментом
> для быстрого ваяния веб-интерфейсов - ... ? вот это вопрос столетия.
За тем же, почему в bash и posix shell тоже можно сравнивать строки с числами.
Для скорости разработки.
| |
|
7.80, Ordu (ok), 20:40, 26/11/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Нельзя В posix shell нет чисел от слова совсем, там всё строки То, что отсутст... большой текст свёрнут, показать | |
|
|
|
|
11.135, Ordu (ok), 00:48, 27/11/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Я не знаю, в каком труде он писал об этом, я знаю, что Бертран Рассел глумился н... большой текст свёрнут, показать | |
|
|
13.142, Ordu (ok), 01:30, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | Чё это Я в древнегреческом не понимаю, поэтому единственный для меня способ оце... текст свёрнут, показать | |
|
|
15.153, Ordu (ok), 02:54, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | Ты сейчас выполняешь ad hominem атаку на Рассела и Скалигера, что могло бы иметь... большой текст свёрнут, показать | |
|
|
17.265, Ordu (ok), 15:17, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | Это слишком абстрактный вопрос, чтобы дать на него ответ Может быть и так, и эд... большой текст свёрнут, показать | |
|
|
19.293, Ordu (ok), 21:11, 27/11/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Как и любая аксиома -- это лишь аксиома То есть некоторое допущение, которое де... большой текст свёрнут, показать | |
|
21.306, Ordu (ok), 05:00, 28/11/2020 [^] [^^] [^^^] [ответить] | +/– | Если в реальности нет чисел, то в ней нет и истины То есть никакой -- ни сомнит... большой текст свёрнут, показать | |
23.364, Ordu (ok), 18:45, 29/11/2020 [^] [^^] [^^^] [ответить] | +/– | Этот принцип работает только тогда, когда ты ввёл в употребление целые числа, то... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.33, nomad__ (ok), 19:35, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да мне наплевать как там в пхп, я его не знаю и никогда на нем не писал. Из языков с динамической типизацией пишу на Erlang'е и там такой фигни нет.
| |
|
6.72, тоже Аноним (ok), 20:26, 26/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы, видимо, даже не в курсе, что пишут на РНР.
95% чисел, которые надо с чем-то сравнивать - это, внезапно, данные из БД или из форматов типа XML.
То есть строки.
Остальные 5% - это JSON, там как повезет.
| |
|
7.75, Аноним (58), 20:29, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Да не только данные из БД. CDR, пользовательский ввод, данные от внешних приложений и из файлов. В основном это строки. Если бы язык был строго типизированным - были бы целые полчища тайпкастов. А так, возможность строку как число использовать и наоборот - это очень удобно. Хотя где надо, конечно всё равно делаются тайпкасты, иначе неоптимально.
| |
|
8.83, банан (?), 20:44, 26/11/2020 [^] [^^] [^^^] [ответить] | +4 +/– | я езжу с заглушкой за место ремня безопасности, очень удобно, и машина не пищит... текст свёрнут, показать | |
|
9.88, Аноним (58), 20:55, 26/11/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Нет, я обязательно на ходу проверяю ремень безопасности каждый 13 секунд Зато о... текст свёрнут, показать | |
|
|
9.90, Аноним (58), 21:02, 26/11/2020 [^] [^^] [^^^] [ответить] | +/– | Если у вас есть неприятные неожиданности - значит вы чего-то не учли Прежде чем... текст свёрнут, показать | |
9.91, Аноним (58), 21:03, 26/11/2020 [^] [^^] [^^^] [ответить] | –2 +/– | если вы всерьёз полагаетесь на то, что тайпкасты спасут вас от проблем - это уж... текст свёрнут, показать | |
9.93, Аноним (58), 21:13, 26/11/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Простейший пример Прилетают данные в JSON от нескольких источников, которые мне... текст свёрнут, показать | |
|
10.137, Ordu (ok), 01:10, 27/11/2020 [^] [^^] [^^^] [ответить] | +3 +/– | Про схему json никто из вас не слышал, конечно У вас вообще вся система выстрое... большой текст свёрнут, показать | |
|
|
12.143, Ordu (ok), 01:34, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | Я выше описал как действовать в такой ситуации Разбирай json в типизированную с... текст свёрнут, показать | |
|
|
|
15.223, Аноним (223), 12:06, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | В каждом слове ложь и передергивание Когда Вы приступаете к разбору, Вы берете ... большой текст свёрнут, показать | |
|
|
|
|
|
12.283, Ordu (ok), 19:44, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | Отмечу, ты не первый, кто выдирает эту фразу из контекста ты можешь почитать ко... большой текст свёрнут, показать | |
|
|
10.215, Аноним (223), 11:05, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | Прилетают данные в JSON от нескольких источников, которые мне неподконтрольны Т... большой текст свёрнут, показать | |
|
|
|
7.159, nomad__ (ok), 05:37, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Вы, видимо, даже не в курсе, что пишут на РНР.
> 95% чисел, которые надо с чем-то сравнивать - это, внезапно, данные из
> БД или из форматов типа XML.
> То есть строки.
> Остальные 5% - это JSON, там как повезет.
Сайты пишут, это все, что я про него знаю.
А данные из БД, XML, JSON или еще откуда разбирают на всех языках. Я, например, на Эрланге этим занимаюсь, до этого на Go этим же занимался. Могу этим же заниматься на SML, C, Расте или Лиспе. И ни один из этих языков почему-то не приравнивает строку к числу. Так чем ПХП такой особенный?
| |
|
8.164, Аноним (164), 06:46, 27/11/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Он спроектирован левой ногой его автора, чтобы побырому непрофессионал наброса... текст свёрнут, показать | |
|
7.180, Аноним (180), 08:38, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Из-за таких webM вчера наткнулся на прочерк в поле цена, который зачем-то varchar помножить не мог, а ещё это тормозит проц.
| |
|
|
|
|
|
2.16, Аноним (32), 19:01, 26/11/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Да этот цирк с "==", "===", "!==" и т.п. давно пора было свернуть...
Нигде более не встречал подобного безумия...
и ЧСХ - кто-то ведь этим безумием пользовался...
| |
|
3.74, тоже Аноним (ok), 20:28, 26/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это где это вы увидели "было"? Его по-прежнему пора свернуть, "ждите оргазма...".
| |
3.173, Аноним (14), 08:19, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
>Да этот цирк с "==", "===", "!==" и т.п. давно пора было свернуть...
Почему? Это очень удобно же. Сравни:
Python:
if isinstance(a, int) and a==5:
do_something()
PHP:
if($a===5)
do_something()
| |
|
4.230, Аноним84701 (ok), 12:33, 27/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Почему? Это очень удобно же. Сравни:
> Python:
> if isinstance(a, int) and a==5:
> do_something()
> PHP:
> if($a===5)
> do_something()
Получается какое-то сравнение теплого с мягким:
в питоне строгая типизация и 5 == '5' будет False, в отличие от. Ппоэтому проверять при сравнении еще и тип, обычно совершенно не нужно.
| |
|
5.297, банан (?), 22:43, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> в питоне строгая типизация и 5 == '5'
строгая типизация это когда у вас такое выражение не компилируется.
| |
|
6.300, Аноним84701 (ok), 23:06, 27/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> в питоне строгая типизация и 5 == '5'
> строгая типизация это когда у вас такое выражение не компилируется.
Это называется "статической" типизацией и имеет смысл именно там.
В динамической типизации возможность сравнить что-то без автоприведения, получая для _разных_ типов всегда "False"
> objects of different types always compare unequal
вполне вписывается в концепт "строгой" типизации.
| |
6.320, анонизмус (?), 13:04, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ты путаешь строгую типизацию со статической. В php тоже есть режим строгой типизации. Включается директивой declare(strict_types=1);
| |
|
|
|
3.174, Аноним (14), 08:21, 27/11/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
>Да этот цирк с "==", "===", "!==" и т.п. давно пора было свернуть...
JS ещё. Первый по популярности язык. 👅
| |
|
|
|
6.322, тоже Аноним (ok), 14:01, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Отнюдь. Это оператор присвоения, если нельзя, но очень надо.
Например, $object ==== TRUE; // тестируем обвал всей системы
| |
|
|
|
3.204, Аноним (354), 10:36, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Это лучше чем в java где нужно метод equals вызвать, а перед этим проверять что не null чтобы не бросило npe
| |
|
2.18, Аноним (18), 19:13, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Я после нескольких лет работы на Oracle SQL только недавно у джуниора увидел, что можно number в кавычки делать.
| |
|
|
4.47, menangen (?), 19:51, 26/11/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
А точнее 2 плюс строка “6” будет новая строка «26» - всё логично, не в число же строку «6» конвертить - кто его знает что там в твоей строке закодировано- это ж просто набор байт
| |
|
5.57, Страшный аноним (?), 19:57, 26/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Просто использовать для конкатенации в строки отличный знак от знака "+". Например в древнем Visual Basic это "&", в PL/SQL - "||"
| |
|
6.92, Lex (??), 21:10, 26/11/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Одно - булевы операции, другое - логические
Время офигительных идей по конкатенации.
А если я строку к строке хочу «прибавить» - тож отдельный символ или их набор придумывать ?)
Но это уже к разговору о том, что «конкатенация» строк именно «+» - это, в общем-то, общепринятый стандарт для многих ЯП
Собсно, от того и «видов» проверки равенства несколько - с автоприведением к типу( т.е просто проверка по значению ) и с проверкой равенства самого типа
| |
|
|
8.167, Lex (??), 07:21, 27/11/2020 [^] [^^] [^^^] [ответить] | –1 +/– | ЖС-кудах, ты ли это 5 124 2 0b00000101 124 0b00000010 0b00000111 ... большой текст свёрнут, показать | |
|
|
10.199, Lex (??), 10:30, 27/11/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Да, в одном из случаев очепятка Но сути не меняет, что в жс 124 и 124 124... текст свёрнут, показать | |
|
|
|
|
8.166, Lex (??), 07:19, 27/11/2020 [^] [^^] [^^^] [ответить] | –1 +/– | Придурящеься тут только ты Кого волнует, как оно в вб и прочем мусоре написано,... текст свёрнут, показать | |
|
|
|
5.85, банан (?), 20:49, 26/11/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
> всё логично
только в реальности вы не увидите такого кода
(6 + '6') === "66"
вы увидите такой
(money1 + money2) === money3
я вообще, если честно, бил бы палкой людей, которые убеждают окружающих что приведение типов в js логично.
| |
|
6.187, Туретта Хуюндберг (?), 09:55, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> я вообще, если честно, бил бы палкой людей, которые убеждают окружающих что приведение типов в js логично
Потом такие нетривиальные баги вылезают, что в десять раз больше времени потратишь на их поиск.
С нестрогой типизацией такое "удобство", что оно потом боком вылезает.
| |
|
5.98, Аноним (40), 21:29, 26/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Единственное, что в такой ситуации было бы логично, это кинуть исключение. Потому что код написан jопой и явно будет делать не то, чего от него ожидали.
| |
|
|
5.284, банан (?), 19:47, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> А так же мы не видели java, c# и т.д. где тоже самое
приведите пример пожалуйста, только чтобы без вот такой вот петушни
(6 + (int)'6') == (int) (object) "66"
| |
|
|
|
|
1.17, rvs2016 (ok), 19:04, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
> а также несколько изменений, нарушающих совместимость
И нравится ж кому-то этот язык!
Ну в 98-м году я его использовал только потому, что у меня тогда ещё не было доступа к ваянию сайтов на перле. Но это было в 98-м году и только по указанной причине! Но не сейчас же! :-)
| |
|
2.22, Аноним (-), 19:20, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
так вон сверху там местный иксперт, не предъявивший ни разу примеров своего кода, поет оду этому архитектурному выкидышку
| |
2.24, Аноним (24), 19:24, 26/11/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Причем тут нравиться заказчики хотят подешевле вот и используют кучу сначала каких-то бесплатных решений вроде Joomla, а потом нанимают программиста для решения всех проблем.
А как вот малому бизнесу расти сразу нанимать Java команду из 5 человек что бы они пол года кушали бюджеты?
Отличное решение для компаний - букашек.
| |
|
3.231, Аноним (231), 12:44, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
>А как вот малому бизнесу расти сразу нанимать Java команду
>из 5 человек что бы они пол года кушали бюджеты?
Так им ведь нужны простые формошлёпы. От них требуется только склейка компонентов написанных кемто другим. Не нужно понимать устройство компьютера или паттерны проектирования, только перебрасывание данных по примеру из Гугла.
| |
|
|
1.25, Аноним (24), 19:25, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Подскажите оно уже может самостоятельно работать или все еще необходимо встраивание в сервер приложений?
| |
|
2.31, Аноним (58), 19:33, 26/11/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Оно с самого начала самостоятельно работало.
Из cli работает, какой ещё самостоятельности вы хотите?
| |
2.37, hshhhhh (ok), 19:40, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
А вы что-то запускаете без вебсервера и сразу же вешаете приложение на 80 порт?
| |
|
3.41, Аноним (58), 19:45, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
И тянет для этого тонну ногами деланных зависимостей от Васянов с очередного npm...
| |
|
4.68, hshhhhh (ok), 20:21, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> И тянет для этого тонну ногами деланных зависимостей от Васянов с очередного
> npm...
Какое отношение зависимости имеют к вебсерверу?
В каком языке вы не тянете сотни тысяч непонятных зависимостей?
| |
|
|
6.71, hshhhhh (ok), 20:25, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> В PHP очень мало тяну. В рантайме есть почти всё, что нужно.
Вам очень повезло что вы не пользуетесь фреймворками.
Но с другой стороны -- повезло ли вам?
| |
|
7.81, Аноним (58), 20:41, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
MVC фреймворки хороши, когда они оправданы.
Допустим биллингу MVC без надобности.
Или допустим самый мелкий CodeIgniter - это уже 100500 разрозненных классов. Их загрузка и инициализация, даже с учётом opcache, может небольшое, но нагруженное приложение просто убить по производительности.
| |
|
8.82, Аноним (58), 20:43, 26/11/2020 [^] [^^] [^^^] [ответить] | +/– | Очень хорошо в тесте JIT это видно У мега-фреймворков от JIT толку вообще ник... текст свёрнут, показать | |
|
|
|
|
|
|
4.69, hshhhhh (ok), 20:22, 26/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Какой-нибудь Node.js только так и работает.
В интернетах пишут что Node.js прекрасно работает за nginx'ом, не говоря уже про varnish
| |
|
5.286, Аноним (239), 19:59, 27/11/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Если вы пишете приложение на node js, которое не является ни консольным, ни микр... большой текст свёрнут, показать | |
|
4.73, hshhhhh (ok), 20:27, 26/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Какой-нибудь Node.js только так и работает.
Кстати, а это правда что 80 порт из коробки только доступен только для root?
| |
|
5.99, Аноним (40), 21:34, 26/11/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Все привилегированные (<1024) порты доступны только root (или процессу с CAP_NET_BIND_SERVICE, ели речь о linux). Коробки тут ни при чём.
| |
|
6.101, hshhhhh (ok), 21:37, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Все привилегированные (<1024) порты доступны только root (или процессу с CAP_NET_BIND_SERVICE,
> ели речь о linux)
Я к тому что запускать node.js приложения без вебсервера -- это интересно выглядящее занятие.
| |
|
7.105, Аноним (40), 21:40, 26/11/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
> запускать node.js приложения -- это интересно выглядящее занятие
Так достаточно.
| |
7.162, Аноним (162), 06:39, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
>запуск ноды на 80 порту
sudo node app, но зачем? Пхп тоже без проксирования nginx такое себе запускать. Обычно пхп под апачем за nginx работает.
| |
|
|
|
|
|
|
|
|
|
4.122, Аноним (58), 23:27, 26/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
"Spaces are not treated as equivalent to tab"
Dixi, по сути. Да и вроде ж в пыхтоне 3 табы считаются не комильфо, а если к табам пробел добавить - то и вообще не взлетит.
| |
|
5.144, анонимуслинус (?), 01:57, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
когда пишешь код на питоне хотя бы в том же kate или kwrite отступы считать не надо. Там знаешь ли поддержка питона из коробки, как подсветка синтаксиса, так и правильные отступы при переходе на новую строку. Я уж не говорю про нормальные IDE. прежде чем поливать что то грязью разберитесь хотя бы. я понимаю когда всю жизнь пишешь только со скобками , потом весьма непривычно, но это беда не языка, это беда пользователя. и не сравнивайте компилируемые языки со скриптовыми.
| |
|
6.250, Аноним (250), 13:31, 27/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
гоу сдавать вступительный экзамен по инфе на питоне! да, тот, что на бумаге
| |
|
7.262, анонимуслинус (?), 14:13, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
сам писал в kate скрипты на питоне и знаешь ли не испытал ни одной проблемы. а информация о питоне есть на их сайте зайди и почитай. если интересно. питон хороший язык, но он скриптовый язык и у него должна быть своя зона применения, а не целиком писать на нем. по крайней мере я всегда считал плюсы основным, а питон оберткой.
| |
|
|
|
|
|
|
1.52, menangen (?), 19:53, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –8 +/– |
Кроме нового тормозного JIT - ничего нового, и эти дурацкие $имена $переменных - господи, они так неумело перл копировали, что всё говнецо спёрли в свой пхп
| |
|
2.62, Аноним (58), 20:03, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
$ в именах переменных - это слегка непривычно, но в конечном счёте очень удобно.
Во-первых, снимает проблему насчёт того, окажется твой $xor ($throw, $define, нужное вписать) ключевым словом или нет.
Во-вторых, есть такой концепт, как обращение к методу или свойству по динамическому имени. $object->$namedProperty. Позволяет не городить map'ы.
| |
|
3.67, Аноним (58), 20:17, 26/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
А реальная причина в том, что парсеру так проще, он получается эффективнее. Для не-компилируемого языка это тоже немаловажно. В чём допустим проблема, что у вротпресса и симфоней от JIT толку нет? Они 100500 файлов кода затаскивают дольше, чем этот код выполняют, любители "классики" и "разбить на 100500 классов по 1 методу в каждом" игрались.
| |
|
4.155, Аноним (155), 04:25, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Бред, не имеющий ничего общего с реальностью. Симфони компилирует ди-контейнер + опкеш умеет подгружать небольшие файлы + есть прелоад
| |
|
5.205, Аноним (58), 10:43, 27/11/2020 [^] [^^] [^^^] [ответить] | +/– | 1 Для загрузки каждого класса срабатывают загрузчики классов самого скрипта 10... большой текст свёрнут, показать | |
|
|
|
2.102, Аноним (40), 21:38, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Они когда неумело копировали perl, не удосужились подумать, для чего там что было сделано. В итоге получилось намного хуже, но без полной ломки обратной совместимости уже не исправить (да и зачем, если есть perl?).
| |
2.228, анон (?), 12:30, 27/11/2020 [^] [^^] [^^^] [ответить] | +3 +/– | Проблема даже не в дурацком синтаксисе - этот язык не предназначен для чего-либо... большой текст свёрнут, показать | |
|
3.268, Аноним (58), 16:20, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> концепция php где он выполняет работу и умирает плохо подходит
Для мозгов, не способных сломать кости "классической" парадигмы программирования.
Для web как раз таки лучше придумать сложно.
| |
|
4.296, анон (?), 22:28, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
О чем речь? Вызов метода в "классической" парадигме - эквивалент полному циклу работы php. Много мозгов не нужно чтобы это понять, а вот перестроиться под нормальную работу после php мозгу какраз тяжело. И для современного веба это плохо подходит - постоянные уведомления в веб приложениях, и прочий интерактив. Я не говорю что php надо хоронить, но крупные проекты доставляют неудобства не только самим пхпшникам и решение проблем и детских болезней php занимает уже значительное время в разработке.
| |
|
|
|
1.100, ИмяХ (?), 21:36, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
А нафига этому языку математические операции? Он же для показа текста и картинок на сайте, на ней же не пишут чисдодробилки.
| |
|
2.117, Аноним (231), 23:11, 26/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
На JS тоже большая часть кода вовсе не числодробилки, но, что будет если отключить ему JIT?
| |
2.124, Аноним (58), 23:32, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Внезапно в Web для показа текста и картинок HTML+JS.
А PHP уже давно и всерьёз обсчитывает всё, что эти HTML+JS показать должны.
| |
|
3.149, Аноним (40), 02:19, 27/11/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Всерьёз обсчитывает — это читает с диска и вытягивает из СУБД, после чего сляпывает вместе и отправляет клиенту? Да, в таких серьёзных обсчётах без JIT никак.
| |
|
4.206, Аноним (58), 10:46, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Как насчёт обсчитать игровую ситуацию например? Клиент послал "я хожу влево", теперь мне надо послать сообщеньице бэкенду. Далее в бэкенде понять, с какими из 100 объектов в локации он взаимодействует, триггернуть каждому эвент по взаимодействию, если таковые нашлись, сохранить результат, послать клиентской части в ответ сообщеньице с результатами сего действия: "вы налетели на детские грабли и они больно стукнули вас, -100 HP, -50 STR в течение 15 минут".
| |
|
5.253, Аноним (40), 13:36, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
А теперь, пожалуйста, пример такой игрушки, написанной на похапе.
| |
|
6.335, Аноним (335), 17:41, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Minecraft Bedrock Edition. Наиболее популярная реализация сервера на PHP.
| |
|
|
|
|
2.181, Аноним (354), 08:46, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Как раз плохо что в php нету типов для финансовых операций типа decimal128 или BigDecimal
Есть только расширение bc-math которое со строками работает и мало операций
| |
|
|
|
5.269, Аноним (58), 16:21, 27/11/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
Fixed point вас устроит?
Если мы о финансовых операциях, floating point вообще мимо и называется "вы делаете это совершенно через задницу".
| |
|
6.273, Аноним (236), 17:12, 27/11/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
ну расскажите что же сломается если считать в floating point decimal128
| |
|
5.281, Аноним (231), 19:11, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> оно уже научилось дробные числа?
gmp_div_qr даст Вам остаток от деления. Целое, остаток и делитель это и есть полноценная дробь бесконечной точности. Как написать простенькие функции работы с такими дробями на на основе gmp, Вас должны были учить в школе на уроке алгебры.
| |
|
6.287, Аноним (354), 20:00, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
То есть нет и нужно писать велосипед.
А если не дай бог ошибусь, оно ерунду начинает вместо баланса
| |
6.288, Аноним (354), 20:03, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
И это при том что есть готовое расширение bc-math
А лучше java.math.BigDecimal
| |
|
|
|
|
|
1.109, Аноним (-), 22:26, 26/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Операция PHP 7.4
0 == "0" TRUE
0 == "0.0" TRUE
0 == "foo" TRUE
0 == "" TRUE
42 == " 42" TRUE
42 == "42foo" TRUE
----------------
о боже! как это развидеть?
| |
|
2.128, Аноним (115), 23:44, 26/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
А что именно тебе не нравится? В документации описаны все правила сравнения и логика их работы
| |
|
|
4.154, Аноним (115), 02:57, 27/11/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
У тебя получилось рекурсивное определение. Что ты имеешь в виду под нелогичностью (первое упоминание этого слова в твоём сообщении)?
Скорее всего твоё определение приведёт к тому, что все языки программирования, согласно ему, будут являться не логичными
| |
|
|
6.263, Аноним (263), 14:32, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну в общем стандартный хейтерок. За 3 комментария не смог объяснить ни что конкретно не нравится, ни почему. Уверен, ты вообще не программируешь
| |
|
7.271, Аноним (40), 16:37, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну в общем, стандартный фанбой. Не смог даже подсчитать, что моих сообщений в этом треде было два (это третье). Но рад, что у тебя подгорело.
| |
|
|
|
|
|
2.345, Аноним (360), 21:51, 28/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Строгое сравнение === учитывает тип, а то что ты вбросил кусок говно родок с перла
| |
|
3.366, Аноним (40), 22:20, 29/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
В perl таких граблей нет, в нём разные операторы для сравнения строк (eq) и чисел (==).
| |
|
|
|
2.238, Аноним (238), 13:07, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> несколько изменений, нарушающих совместимость
Причина не использовать.
| |
|
1.161, Ананоним (?), 06:04, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Творцы в поисках занятий выпускают версии языков как бешенный принтер. Ох не к добру это, не к добру.
| |
|
2.186, Аноним (49), 09:36, 27/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
...И сказал Господь: вот, один народ, и один у всех язык; и вот что начали они делать, и не отстанут они от того, что задумали делать; сойдём же и смешаем там язык их, так чтобы один не понимал речи другого. И рассеял их Господь оттуда по всей земле; и они перестали строить город...
| |
|
1.170, b0r1s (ok), 08:10, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Дождались. Хороший интерпретатор. Использую для прототипирования и написания сайтов, скриптов. Была даже своя CMS. Подкупают $переменные и include для написания самодостаточных приложений.
Скрипты некоторых интерпретаторов при деплое часто в репозитории лезут, на PHP при разработке напихал зависимостей в архив через composer и в деплой.
Если Чебурнет врубят, удаленные репозитории сразу накроются, никакого деплоя кода завязанного на них не будет. C PHP тоже будет проблема поддержания актуальности зависимостей, но это уже не так критично как невозможность деплоя.
Чтоб небыло проблем с удаленными репозиториями можно свой дистриб GNU/Linux замутить на базе LFS и менеджер пакетов использовать на базе PHP сайта.
| |
1.176, dalco (ok), 08:29, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Новая версия - это, конечно, круто, вот только бОльшая часть PHP-прог из моего хозяйства с версией 8.0 работать отказались. А в issues к ним куча воплей - "отключили давным-давно deprecated функцию XXX, негодяи!"
В общем, как сидел на 7.4, так и продолжу ближайшие пол-годика :)
| |
|
2.185, Аноним (49), 09:32, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
> с версией 8.0 работать отказались
Как же не поломать всё :) это просто цель изготовителей апдейтов.
| |
2.235, Аноним (236), 12:55, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
>В общем, как сидел на 7.4
какой ты модный. Нормальные люди сидят на 5.5 или 5.2
| |
|
|
2.242, Аноним (231), 13:14, 27/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Как не умело в Unicode на уровне языка, так и не умеет
> без mbstring.
То, что Вы называете строками это не более чем массивы байтов, там можно с чистой совестью хранить бинарные структуры. И только строковые функции относятся к этим массивам как к строкам. Это позволяет работать с любой кодировкой без постоянных перекодирований и парсер php не обязан преобразовать весь исходник в UTF-32 перед работой. И позволяет хранить и обрабатывать служебные строчки вроде имён переменных и ключей в словарях, как ANSI. То есть наиболее производительным образом.
| |
|
3.257, Аноним (40), 13:42, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> То, что Вы называете строками это не более чем массивы байтов, там можно с чистой совестью хранить бинарные структуры.
И чё, на '\0' не споткнётся?
| |
3.274, Аноним (164), 18:06, 27/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это ты сейчас предложил переизобрести строку внутри строки? В сях этого добра нажрались, а ты в динамическом языке предлагаешь.
| |
|
4.279, Аноним (231), 18:25, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
А в PHP нет иного способа делать это. Всякие fread оперируют "строками" но это не значит, что ему доступна работа только с текстом. Он может читать и выводить любые данные, например формируя картинку, офисный документ или архив. Если мой склероз мне не изменяет, то в Perl точно так же. А он в свою очередь эту логику вероятно унаследовал от Си.
Но лучше так, чем как в JS, где нормальных массивов долгое время не было вовсе.
| |
|
|
|
1.200, Аноним (200), 10:32, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
отдайте уже этот трупик вордпрессу, посадите в теслу, теслу в ракету маска и отправьте куда-нить на Плутон
| |
1.216, Аноним (216), 11:10, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Что за бред написан про nullsafe?
> При вызове методов разрешено применение оператора "?", который позволяет инициировать вызов только, если метод присутствует
При чём тут "метод присутствует"?
Оператор ?-> в отличие от -> можно применять к null-объекту и получать на выходе null. Всё. Других отличий от -> нет.
| |
|
2.220, HolyHell (ok), 11:35, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Видимо тот кто писал не посмотрел на пример с документации
$country = null;
if ($session !== null) {
$user = $session->user;
if ($user !== null) {
$address = $user->getAddress();
if ($address !== null) {
$country = $address->country;
}
}
}
И если цель стоит $country выставить значение то можно написать как $country = $session?->user?->getAddress()?->country;
Ну и
$foo = null;
$foo?->bar()->baz();
| |
|
1.219, HolyHell (ok), 11:31, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Как минимум теперь будет проще передавать параметры в методы (public function foo(name: 'test'){}). Ну и Union Types тоже хорошо.
| |
1.237, Аноним (237), 12:57, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Пишу на PHP время от времени. Страшно. С каждой новой версией на 1 адекватное изменение 10 безумных.
| |
|
2.240, Аноним (238), 13:09, 27/11/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Зато куча народа при деле. Ну хотя бы переписать WordPress и все плагины к нему.
| |
|
|
|
|
4.349, Аноним (261), 01:15, 29/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Чтобы бизнес логика финансов работала в правильных языкам программирования.
| |
|
5.358, Аноним (360), 14:24, 29/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Есть COBOL и его дитя ABAP который пилился как раз для программирования бизнес процессов, зачем натягивать жабу на бизнес если она является ЯП общего назначения примерно как C++, C#, Python и прочие...
Влажные фантазии жаберов про язык для кофеварок и энтерпрайз чаще всего взаимоисключают друг друга
| |
|
|
|
|
1.276, Аноним (-), 18:12, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Эффективность математических вычислений, в PHP. Пишу коммент по букве, после нажатия на кнопку - каждый раз проваливаюсь под стол от смеха.
| |
1.282, Аноним (282), 19:21, 27/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Вау, на пхп еще кто-то пишет? Не, я сам писал пол-года, но это было десять лет назад.
| |
|
2.299, Аноним (298), 23:00, 27/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну я писал на PHP 20 лет назад..... Однако она самый распространённый ЯП в вебе по числу внедрений. И конкурентов пока нет.
| |
|
3.305, Аноним (49), 04:06, 28/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Язык мебмакак, самых низкооплачиваемых рабов и... Ой, простите, ведомых и людей с инвалидностями.
| |
|
4.312, Аноним (360), 09:52, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Лол, но Java это такие же веб-макаки со своим Spring, и такие же рукожопы не осилившие SQL со своим hinernate, да и зп у жаб выше пыхарей тыщ на 30, а вот говнокода с стиле jee в разы больше
| |
|
5.316, Аноним (298), 10:36, 28/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
У автора комментария, видимо, ни в PHP нет опыта, ни в Java. Области примерения соверщенно разные. К тому же, веб-интерфейсы на Spring сейчас не пишут. А для написания бизнес-логики Java весьма надёжна. Как по языку, так и по средствам вокруг языка. Начиная от статических валидаторов, заканчивая различными профилировщиками. Плюс вся Big Data живёт на Java.
| |
|
6.325, Аноним (360), 14:07, 28/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Смузи у тебя по губам течет при слове бизнес-логика или бигдата? А если сказать проще... бэкэнд для веба, твой энтерпрайзный мир разрушится?
| |
|
7.327, Аноним (327), 14:22, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Скажи прямо - Java не осилил. И вообще, плохо представляешь технологические средства для решения современных задач.
| |
|
|
|
4.315, Аноним (-), 10:33, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Питон уже вовсю борется с php за роль самого дешевого. Впрочем, у питона одна проблема - не факт, что количество внедрений на нём приблизится к PHP. Технологичность у PHP таки выше.
| |
|
5.324, Аноним (360), 14:05, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Пистон пыху не конкурент, ведь пых царь в своем царстве веба и не лезет в системное по, матан и ии
| |
|
|
3.313, Аноним (360), 09:53, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Это говорит о том что пых понастоящему нужный язык, тут смузи языки пару лет немогут выдержать после релиза, а пыху уже за 20
| |
|
4.317, Аноним (-), 10:38, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Возраст - не показатель. Питону - 30. На каждом столбе предлагают ему поучиться, но никто не хочет тащить его в прод.
| |
|
|
|
1.318, Ilya Indigo (ok), 11:10, 28/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Изменено поведение при сравнении строковых и числовых типов.
Ну наконец-то! Я уже даже не ожидал этого, и смирился с этим косяком и костылём ===.
А тут наконец-то в PHP сделали по-человечески!
P.S. Может, когда-нибудь, и это (int)(1.001*1000) = 1000 исправят.
| |
|
2.326, Аноним (326), 14:21, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
>P.S. Может, когда-нибудь, и это (int)(1.001*1000) = 1000 исправят.
тебе это никогда не исправят, потому что число 1.001 не имеет точного представления в двоичной системе счисления
| |
|
3.331, Ilya Indigo (ok), 14:59, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
>>P.S. Может, когда-нибудь, и это (int)(1.001*1000) = 1000 исправят.
> тебе это никогда не исправят, потому что число 1.001 не имеет точного
> представления в двоичной системе счисления
Подобное говорили и про '1st' == 1, мол это эквивалентно (int)('1st') == 1, и если нужно без приведения типов, то используй костыль ===, как я и делал.
Но ведь исправили!
А про fdiv() я вообще молчу! Извращенцы!
| |
|
2.329, Аноним (326), 14:34, 28/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
(PHP 4, PHP 5, PHP 7) bcmul — Умножение двух чисел с произвольной точностью
<?php
var_dump(((int) bcmul(1000, "1.001")) == 1000);
bool(false)
| |
|
3.330, Ilya Indigo (ok), 14:56, 28/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
>> (int)(1.001*1000)
> bcmul(1000, "1.001")) == 1000);
Это делается ещё проще стандартными методами
round(1.001*1000)
| |
|
|
5.351, Аноним (354), 01:46, 29/11/2020 [^] [^^] [^^^] [ответить]
| –6 +/– |
Float и double во всех языках и на всех процессорах работают одинаково
Пыха здесь вообще не причём
| |
|
6.353, Аноним (49), 04:10, 29/11/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Float и double во всех языках и на всех процессорах...
Давай, расскажи ещё больше сказок. А ещё лучше попробуй сделать round(2.5) в разных языках - вот ты удивишься! Ты, поди, не в курсе, что интел использует бухалтерское округление, когда round(2.5)=2? Из-за чего некоторые проги используют софтовую реализацию математического округления, чтобы получать 3.
| |
|
7.355, Аноним (326), 11:12, 29/11/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
Кроссплатформенный ассемблер пойдет?
#include <stdio.h>
#include <math.h>
int main() {
printf("Result: %f", round(2.5));
return 0;
}
Result: 3.000000
| |
|
|
|
|
|
|
1.343, Аноним (343), 20:52, 28/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> Добавлена функция fdiv(), выполняющая операцию деления без вывода ошибки в случае деления на ноль.
Хм...
В документации:
> PHP Function List
> fdiv() doesn't exist.
В ченджлоге 0 упоминаний.
| |
1.347, Аноним (360), 21:53, 28/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Смотрю и поражаюсь как же корежит жаберов от пыха, примерно так же как плюсовиков корежит от жаберов
| |
1.348, СССР (?), 23:16, 28/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
"Изменено поведение при сравнении строковых и числовых типов"
мдааа, весьма печльно когда от версии меняется поведение выполнения скрипта при операциях сравнения ((
| |
1.359, Аноним (360), 14:26, 29/11/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Нахрена вам точность в языке который в 99.9% случаев работает со строками символов как CMS?
| |
|
|
3.369, Аноним (58), 22:31, 29/11/2020 [^] [^^] [^^^] [ответить]
| +/– |
Это лучшее представление для денег, поверьте.
Нет, можете конечно сразу в float запихать... но после этого деньги вам доверять будет так себе.
| |
3.370, Аноним (58), 22:38, 29/11/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Тут забавный случай. На днях посмотрел (ради интереса, какие ещё можно плюхи реализовать в своём) на один маститый биллинг телефонный известный (не российской разработки, нет), написанный бородатыми свитерастами аж на сях, аж без плюсов. Обнаружил забавное. У них на вычислениях денег самый настоящий float, мало того - так ещё и есть округления на промежуточных шагах до двух знаков после точки - и не регулируется, из-за этого у меня на очень небольшом тестовом сете (реально небольшом, не более суток по одному абоненту) набежало ошибок округления туда-сюда евроцентов на несколько. Поплевался, решил, что вот такая фича нам точно не нужна :D Название не скажу, чтобы не подрывать репутацию.
| |
|
4.378, Прокоповна (?), 14:25, 30/11/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> На днях посмотрел написанный бородатыми свитерастами аж на сях, аж без плюсов.
Страсть как люблю такие драммы !
| |
|
|
|
|