The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз языка программирования PHP 8.3"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз языка программирования PHP 8.3"  +/
Сообщение от opennews (?), 23-Ноя-23, 21:29 
После года разработки представлен релиз языка программирования PHP 8.3. Новая ветка включает серию новых возможностей, а также несколько изменений, нарушающих совместимость...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=60172

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от DEF (?), 23-Ноя-23, 21:29   –4 +/
Большинство слоупоков до сих пор сидят на 7.4.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #66

2. Сообщение от Дмитрий (??), 23-Ноя-23, 21:31   +1 +/
Когда строгие коллекции??
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #179

3. Сообщение от Аноним (3), 23-Ноя-23, 21:44   –1 +/
Для этого дженерики нужны. Можно, конечно, сделать только массивы, как в Golang, а потом страдать, но в пхп и так достаточно страданий
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #9, #10, #60

4. Сообщение от пох. (?), 23-Ноя-23, 21:49   –7 +/
не хочу быть банальным, но не могу удержаться от вопроса: ОНО ЕЩЁ ЖИВО?! лол
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #8, #32

5. Сообщение от лютый арчешкольник... (?), 23-Ноя-23, 22:03   +4 +/
>ОНО ЕЩЁ ЖИВО

оно небось всё ещё 50+ % веба занимает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #7

7. Сообщение от Аноним (7), 23-Ноя-23, 22:17   –3 +/
это если как измерять? по количеству посетителей? сомневаюсь, что гугл написан на пыхе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

8. Сообщение от Аноним (8), 23-Ноя-23, 22:17   +3 +/
Facebook/VK по-прежнему крутятся на нём.

Лол оставьте дома.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

9. Сообщение от Аноним (9), 23-Ноя-23, 22:19   +1 +/
Вроде в HHVM есть дженерики, может и в PHP когда-нибудь завезут, если решать что они там нужны
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

10. Сообщение от Вы забыли заполнить поле Name (?), 23-Ноя-23, 22:47   –6 +/
> Для этого дженерики нужны.

А еще указание variance. Ибо если делать как в Java, то получается нетипобезопасно, потому что массивы коварианты. Хорошо хоть в golang инварианты.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #50, #52

11. Сообщение от Аноним (11), 23-Ноя-23, 22:48   –17 +/
кто знает, а пы-хы-пы такой же безопасный как раст или как си дидов?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #12, #51

12. Сообщение от Аноним (11), 23-Ноя-23, 22:51   –4 +/
поставлю вопрос по другому, какой безопасный язык программирования использовать для веба?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #13, #14, #15, #17, #24, #39, #130, #147

13. Сообщение от Смузихлёб (ok), 23-Ноя-23, 23:02   +3 +/
> какой безопасный язык программирования использовать для веба

Будто у тебя есть выбор. Ответ на моей аватарке.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #82

14. Сообщение от Аноним (14), 23-Ноя-23, 23:03   +/
Пых уязвимей ассемблера, если ты хотел об этом знать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

15. Сообщение от Аноним (15), 23-Ноя-23, 23:05   +/
F#
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

17. Сообщение от Тот_ещё_аноним (ok), 23-Ноя-23, 23:51   +5 +/
На вебне эксплуатируют кривизну поделки или браузера и от языка сервера это мало зависит.
Вордпресс и битрикс на пыжике например, вспотеешь обижать, если(ага) правильно стоят.
За жабаскрипт или го? Да так же точно всё.

А бебезопастность памяти? Так уборщик мусора есть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

19. Сообщение от nonon (?), 24-Ноя-23, 00:35   –15 +/
Думаю пора этот язык не развивать. А рекомендовать переходить на другие ЯП.

На Пайтон. Он куда более универсальный, хоть и похож
На модный go
Та даже на JS

Жаль что до сих пор когда гуглишь какой первый ЯП учить натыкаешься на PHP

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #20, #22, #25, #30, #38, #61, #104, #146, #148

20. Сообщение от alchekalin (ok), 24-Ноя-23, 00:42   +9 +/
Думаю, сэр немного заблуждается. Так что не жаль.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

22. Сообщение от Александр (??), 24-Ноя-23, 01:12   +4 +/
Из динамически типизируемых скриптовых PHP по структуре как раз больше всего подходит для бэкенда. То есть, это такой баланс: когда проект достаточно здоровый, чтобы писать его на python, но и нет необходимости скорости, чтобы переходить на шарпы/джаву. В целом, свою нишу занимает. 8-ой не трогал, писал на 7-ом. За исключением пары исторических моментов, язык понравился.
Js в беке имхо тот ещё мазохизм. Тогда уж лучше Ts
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #35, #37, #67

23. Сообщение от Sw00p aka Jerom (?), 24-Ноя-23, 01:26   +/
>> // Было array (-5 => 'a', 0 => 'b') // Стало array (-5 => 'a', -4 => 'b')

ухх, а если пихнуть -0?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #27, #88, #94

24. Сообщение от Аноним (24), 24-Ноя-23, 01:33   +5 +/
Для веба нужно HTML.
Ещё немного (НЕМНОГО Я СКАЗАЛ!) css.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #69

25. Сообщение от Аноним (24), 24-Ноя-23, 01:35   +3 +/
Не то, чтоб я за пхп, но в чём преимущество питона в вебе?
Ну чем оно лучше? Нет, можно и питон, но чем он лучше?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #44

27. Сообщение от Тот_ещё_аноним (ok), 24-Ноя-23, 01:46   +5 +/
Imho -0 equ 0
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #40, #63

28. Сообщение от 11111001010 (?), 24-Ноя-23, 01:51   –1 +/
Чот он каким-то монстром стал, давно на нём не писал ничего.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #31

30. Сообщение от OpenEcho (?), 24-Ноя-23, 02:12   +7 +/
> Думаю пора этот язык не развивать.

Обоснуй, а то звучишь так авторитетно, прям так и хочется поверить

> На Пайтон. Он куда более универсальный, хоть и похож

Ты по скорости не пробовал его с сабжем сравнивать?

> На модный go

Го - значительно больше низкоуровневый, не всегда это надо

> Та даже на JS

Сорри, но жoпy с пальцем сравнивать, JS - асинхронный, управляемый событиями, когда  PHP - синхронный.

> Жаль что до сих пор когда гуглишь какой первый ЯП учить натыкаешься на PHP

Use the right tool for a job

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #43, #80

31. Сообщение от Аноним (31), 24-Ноя-23, 03:17   +1 +/
Да, старые версии на 98 винде работают и поддерживают Utf-8. Если не гоняться за дизайном, можно  PHP сайты с IE5 подружить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #33, #84

32. Сообщение от glad_valakas (?), 24-Ноя-23, 03:28   +1 +/
оно нас переживет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

33. Сообщение от 11111001010 (?), 24-Ноя-23, 04:17   +/
Зачем ты утрируешь? 😠😡
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

35. Сообщение от Другой Александр (?), 24-Ноя-23, 05:46   +7 +/
Надо ввести жёсткую модерацию на попытки уместить в одном предложении слова "скорость" и "джава".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #90, #175

37. Сообщение от Аноним (37), 24-Ноя-23, 06:24   –4 +/
Нишу дохлого легаси занимает успешно, да. Кол-во вакансий не даст соврать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #176

38. Сообщение от Аноним (38), 24-Ноя-23, 06:35   –2 +/
>рекомендовать переходить на другие ЯП.

На Пайтон. Он куда более универсальный, хоть и похож

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #57

39. Сообщение от nox. (?), 24-Ноя-23, 07:01   +/
Можно попробовать C (например, с фреймворком Wt). Но в любом случае безопасность упирается в WEB сервер.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

40. Сообщение от nox. (?), 24-Ноя-23, 07:04   +1 +/
В математическом смысле нет. Да и в программировании с плавающей точкой тоже.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

43. Сообщение от лул (?), 24-Ноя-23, 07:13   +/
Юзай Swoole, ежели асинхронщину желаешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

44. Сообщение от Аноним (44), 24-Ноя-23, 07:23   –4 +/
Он быстрее пыха вот в чём.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #53, #56, #58, #59, #70, #102

46. Сообщение от Аноним (46), 24-Ноя-23, 07:29   +/
Это же php с классами, а значит php++. Странно что js с классами тоже не назвали js++.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #54

50. Сообщение от Вы забыли заполнить поле Name (?), 24-Ноя-23, 07:59   –2 +/
Так, например, след. код на java

class Main {
  public static void main(String[] args) {
    String strings[] = {"house", "daisy"};
    Object objects[] = strings; // covariant

    objects[1] = "cauliflower"; // works fine
    objects[0] = 5;             // throws exception
  }
}

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

51. Сообщение от Аноним (51), 24-Ноя-23, 08:04   +6 +/
А кто сказал, что раст безопасный?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #55

52. Сообщение от Вы забыли заполнить поле Name (?), 24-Ноя-23, 08:05   –1 +/
>> Для этого дженерики нужны.
> А еще указание variance. Ибо если делать как в Java, то получается
> нетипобезопасно, потому что массивы коварианты. Хорошо хоть в golang инварианты.

Также есть хорошее сравнение по variance в одном из последниз PEP питона https://peps.python.org/pep-0695/#summary

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

53. Сообщение от Аноним (51), 24-Ноя-23, 08:07   +3 +/
Сомнительно, а с учетом того, что PHP где нужна скорость компилируется JIT, то и неверно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

54. Сообщение от Аноним (51), 24-Ноя-23, 08:08   +1 +/
Есть (был, выкуплен) Objective-J.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

55. Сообщение от Аноним (55), 24-Ноя-23, 08:12   +7 +/
какие-то маркетологи
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

56. Сообщение от Сталин (?), 24-Ноя-23, 08:14   +6 +/
Нет, не быстрее )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

57. Сообщение от Аноним (55), 24-Ноя-23, 08:17   –2 +/
php после 4й версии закончился
Сейчас мы наблюдаем какую-то химеру
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

58. Сообщение от Аноним (58), 24-Ноя-23, 08:27   +2 +/
А вот тут по подробнее. Пхп с версии 7 вроди как нехило так ускорился, за счет использования jit компиляции и обошел по скорости питон, причем значительно. Не?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #73

59. Сообщение от Бывалый смузихлёб (?), 24-Ноя-23, 08:31   +9 +/
настолько быстрее что в разы медленнее
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

60. Сообщение от Vlad VIolentiyemail (?), 24-Ноя-23, 08:33   +1 +/
Решается через PHPDoc и добавления анализаторов кода типа psalm и phpstan
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

61. Сообщение от Аноним (58), 24-Ноя-23, 08:37   +/
Его бы немного почистить от лишнего, создается впечатление что уж больно много всего в языке. Создается впечатление что внем функции под каждый чих...(утрированно)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #89, #93, #103

62. Сообщение от Аноним (58), 24-Ноя-23, 08:42   +/
О! Вопрос. А вот язык Юля(Julia), что думает о вэбе?
Слышал что ей восхищались, вот интересно стало...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #64

63. Сообщение от Sw00p aka Jerom (?), 24-Ноя-23, 08:42   +1 +/
-0 в пхп нет кажись (
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #134

64. Сообщение от Аноним (64), 24-Ноя-23, 08:56   +1 +/
Юля больше не вставляет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #65

65. Сообщение от Аноним (58), 24-Ноя-23, 09:19   +3 +/
Mojo?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #74, #220

66. Сообщение от нах. (?), 24-Ноя-23, 09:45   +5 +/
> Большинство слоупоков до сих пор сидят на 7.4.

а некоторые и на 5.x

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

67. Сообщение от Аноним (67), 24-Ноя-23, 09:52   –7 +/
«Больше всего подходит для бэкенда» и переменные, мутирующие от того, что на них косо посмотрят, в одном предложении…
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #177

68. Сообщение от Анонусemail (?), 24-Ноя-23, 09:53   –2 +/
> Разрешено создание замыканий из методов и передачи именованных аргументов в эти замыкания.

господи какой трэш и ужас щас начнется

Ответить | Правка | Наверх | Cообщить модератору

69. Сообщение от BlackRot (ok), 24-Ноя-23, 09:56   +2 +/
Html, css, Javascript а ещё уметь юзать графические редакторы, бек на php тож не лишним будет
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

70. Сообщение от User (??), 24-Ноя-23, 10:01   +2 +/
Учитывая, что на голом что Пыхе, что змеюке под веб никто почитай и не пишет - то сравнивать надо не "языки", а конкретные фреймворки умножая на коэффициент руко...крылости разработчиков и тут возможны разнообразные варианты. Впрочем, для большинства проектов голый пырформантц в первую тройку критериев для выбора не попадает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #91, #92

73. Сообщение от Tron is Whistling (?), 24-Ноя-23, 10:05   +4 +/
JIT в 8
Но тем не менее 7 нехило так ускорилась, в частности за счёт прекращения копирования части структур до момента, пока их не поменяют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

74. Сообщение от Аноним (74), 24-Ноя-23, 10:09   +/
This
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

76. Сообщение от YetAnotherOnanym (ok), 24-Ноя-23, 10:48   –1 +/
> Override

Для Эллочки-людоедочки со словарным запасом в 30 слов.
> генерация отдельных исключений (...) в случае проблем, возникающих в операциях работы с датами и временем
> генерация исключения при попытке передачи объектов, ресурсов или массивов в переменных, определяющих границы диапазона

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #77, #78

77. Сообщение от Tron is Whistling (?), 24-Ноя-23, 11:13   +1 +/
Учитывая что мой код состоит процентов на 15 из обработки ошибок, могу сказать, что проблемы были, но не столь существенные. Зато выброс исключений где не надо прилично увеличит объём этого кода бесполезными зажимами try { ... } catch (\Exception $e) { }, просто чтобы оно не проваливалось по стеку. Потому что кроме исключения можно получить например false.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

78. Сообщение от Tron is Whistling (?), 24-Ноя-23, 11:15   +/
А делать из PHP жабу, где все эти цепочки исключений отрабатываются фиг знает где, и в итоге всё равно осыпаются тут и там - я вообще не знаю, чем поколение смузи думает. Нормальная C-подобная отработка ошибок: получил false или другой код ошибки - отработал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #79

79. Сообщение от Tron is Whistling (?), 24-Ноя-23, 11:15   +/
(и только если не хочешь отрабатывать на месте - вот тогда бросил исключение. САМ)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

80. Сообщение от Tron is Whistling (?), 24-Ноя-23, 11:18   +/
Ну, у меня допустим ныне свой стек короутин для PHP. Линейный (в отличие от реакта, который заставляет строить ужасающие своим размахом деревья), очень коротенький (тысячи 2 строк на всё про всё включая сахар), простой и пристойный. Будет время - выложу в паблик, хотя смузям не зайдёт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #81

81. Сообщение от Tron is Whistling (?), 24-Ноя-23, 11:20   +/
И да, с не***ческим перформансом - ~10000000/s переключений задач на 3.4GHz ядре, если задачи на генераторах. Это всего ничего - ~350 тактов на переключение. Если на файберах - в ~1.6-1.8 раза больше тактов, меньше задач.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80

82. Сообщение от Аноним (82), 24-Ноя-23, 11:47   +1 +/
тут спрашивают про безопасный, а не про язык для смузихлёбов
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

84. Сообщение от hshhhhh (ok), 24-Ноя-23, 12:23   +4 +/
пхп сайты можно даже с lynx и wap подружить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #149

88. Сообщение от Lost Inside (ok), 24-Ноя-23, 12:47   +/
В чем смысл пихания -0, если можно пихнуть просто 0? Я имею в виду - практический смысл, а не трансцендентные фантазии иррационалистов от разработки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #109

89. Сообщение от OpenEcho (?), 24-Ноя-23, 12:51   +/
> создается впечатление что уж больно много всего в языке.

Классический вариант, когда подхватывается корпоративно

> Создается впечатление что внем функции под каждый чих...(утрированно)

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

90. Сообщение от тоже Анонимemail (ok), 24-Ноя-23, 12:57   –1 +/
Или познакомиться с продуктами JetBrains, давно развенчавшими этот стереотип.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #129, #212

91. Сообщение от тоже Анонимemail (ok), 24-Ноя-23, 12:59   +6 +/
Производительность веб-проекта - что на пыхе, что на питоне, да даже на жабоскрипте - в основном зависит от того, насколько хорошо разработчик знает... SQL.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #101

92. Сообщение от YetAnotherOnanym (ok), 24-Ноя-23, 13:21   –2 +/
> голый пырформантц в первую тройку критериев для выбора не попадает

Это временно. Пока начальство не вызвало и не попросило объяснить счета за хостинг и/или почему всё так тормозит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #100

93. Сообщение от Tron is Whistling (?), 24-Ноя-23, 13:33   +4 +/
И вот в этом его прелесть. Для простейшей задачи не надо тащить 100500 зависимостей из разных npshit'ов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

94. Сообщение от Tron is Whistling (?), 24-Ноя-23, 13:35   +/
Интересно, кто-то вообще этим как-то пользовался?
В смысле задефайнить номер первого элемента, но не остальные.
Это ж прямой путь налететь на грабли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #118

95. Сообщение от Tron is Whistling (?), 24-Ноя-23, 13:39   +/
Ну вот #[Override] - это извращение.
Почему бы просто override не добавить.
Типа public override function xyzzy().
Куда-то оно не туда после 8.1 сворачивать начало совсем...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #96, #97, #98

96. Сообщение от Tron is Whistling (?), 24-Ноя-23, 13:40   +/
Анонимные классы - это тоже какой-то 3.14дец. Зачем??? Вся суть определений классов в их статичности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #116

97. Сообщение от Tron is Whistling (?), 24-Ноя-23, 13:41   +1 +/
Не, я понимаю, что это очередная попытка решить проблему отсутствия множественного наследования - теперь можно на ходу лепить ***ту из классов, но лучше бы первое сделали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #156, #183

98. Сообщение от Tron is Whistling (?), 24-Ноя-23, 13:43   –2 +/
А того, чего не хватает - так и нет.
А не хватает
- Множественного наследования (уже упомянул)
- Перегрузки базовых операторов
- Перегрузки методов (варианты наборов аргументов), ну и заодно к ним сахарка темплейтов под типы, последнее для тех, кто очень любит типизацию и смузи
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #105, #107, #117

100. Сообщение от User (??), 24-Ноя-23, 13:58   +2 +/
>> голый пырформантц в первую тройку критериев для выбора не попадает
> Это временно. Пока начальство не вызвало и не попросило объяснить счета за
> хостинг и/или почему всё так тормозит.

АБСОЛЮТНОЕ большинство веб-проектов до этого светлого момента просто никогда естественным образом не дорастает, вот в чем фокус.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92 Ответы: #128

101. Сообщение от User (??), 24-Ноя-23, 14:05   +1 +/
> Производительность веб-проекта - что на пыхе, что на питоне, да даже на
> жабоскрипте - в основном зависит от того, насколько хорошо разработчик знает...
> SQL.

Вообще да, но нет ). Или вернее, от того, насколько хорошо SQL знает разработчик ORM\framework'а - поскольку в большинстве случаев будет примерно дефолт :).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #106, #196

102. Сообщение от nonon (?), 24-Ноя-23, 14:06   –1 +/
Если учитывать что писать на нескольких языках такое себе.. типа прыгать с одного на другой так себе удовольствие..

На пайтоне можно писать скрипты, программы для десктопа. машинное обучение, нейронные сети, ну и бекенд..
На пхп только бекенд. Если нет у вас в планах писать всю жизнь бекенд, мне кажется вы освоете новый ЯП который вам понравится больше не для бека, для других целей, но начнете писать на нем так же и бекед) Хех)
Там на гошке, либо еще на чем-то

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

103. Сообщение от тоже Анонимemail (ok), 24-Ноя-23, 14:10   +3 +/
> в нем функции под каждый чих

Это пугает только новичков, которые в панике представляют, что это все надо вызубрить.
На самом деле, это как раз приятная особенность пыха: в его стандартной библиотеке куча оптимального кода на С, которым можно воспользоваться, как только тебе понадобилась эта оптимальность - вызвав одну из этих многочисленных функций (собственно, просто оберток над вызовом библиотечной функции).
Например, недавно при обсуждении одного довольно ресурсоемкого алгоритма, реализованного на чистом пыхе, мне подсказали функцию, о существовании которой я и не подозревал, хотя давно пишу на РНР. С минимальными изменениями алгоритма замена одного из его блоков на эту функцию ускорила его в 25 раз!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #131, #184

104. Сообщение от noc101 (ok), 24-Ноя-23, 14:11   +1 +/
> На Пайтон. Он куда более универсальный, хоть и похож

Пару букв схожи? Рукалицо
Почему униварсальность значит лучше?

>На модный go

Го немного про другое. Хотя и на нем есть веб, но все таки он про другое

>Та даже на JS

А где он выполняется, ты знаешь? А где РНР? Разницу объяснять?

>Жаль что до сих пор когда гуглишь какой первый ЯП учить натыкаешься на PHP

Жаль что есть такие люди как ты, которые крестовой отверткой гвозди забивают и кричат что микроскоп с этим справится лучше.

РНР не зря лучший веб язык для написания ВЕБа разного уровня.
Работает быстро. Работает прозрачно. Обучение дешевое и быстрое. Универсальный.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

105. Сообщение от Аноним (64), 24-Ноя-23, 14:14   +1 +/
иди со своими перегрузками и множественным наследованием сам знаешь куда
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98

106. Сообщение от тоже Анонимemail (ok), 24-Ноя-23, 14:19   +/
> насколько хорошо SQL знает разработчик ORM\framework

Эти ребята обычно все-таки разбираются, и проблемы с конечным разработчиком.
Например, запрос можно сформировать с пагинацией, а можно без. На тестовых объемах разница незаметна, а вот через несколько лет работы полумиллионная таблица, которую чисто для вывода первых 20 записей запрашивают целиком... ну, не будем о Битриксе ;)


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #190

107. Сообщение от тоже Анонимemail (ok), 24-Ноя-23, 14:25   +3 +/
> А не хватает

Пришел в Пых из Крестов, где этого есть. Но и там не пользовался, и здесь не вижу необходимости.
Множественное наследование - признак неудачной архитектуры ООП. Интерфейсы в РНР есть.
Перегрузки и прочий синтаксический сахар не решает никаких реальных проблем, только затрудняет чтение кода.
Вот более жесткой типизации, конечно, не хватает. Но тут бытие определяет - пых постоянно работает с внешними данными, которые, как правило - строки. Все равно приводить и валидировать самому.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98 Ответы: #115, #123, #157

109. Сообщение от Sw00p aka Jerom (?), 24-Ноя-23, 14:36   +1 +/
> В чем смысл пихания -0, если можно пихнуть просто 0? Я имею
> в виду - практический смысл, а не трансцендентные фантазии иррационалистов от
> разработки.

я его явно не пихаю, он у меня может быть результатом вычисления индекса, к примеру (x / y) где x = 0, а y = -5, а в пхп как выше указали, -0 === 0

https://ru.wikipedia.org/wiki/%E2%88%920_(�...)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #113, #158

111. Сообщение от Аноним (111), 24-Ноя-23, 14:37   –1 +/
Все это доживает последние дни. Ведь слышим веб, подразумеваем JS, причем, как бэкэнд, так и фронтэнд.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #112, #122, #166

112. Сообщение от тоже Анонимemail (ok), 24-Ноя-23, 14:51   –3 +/
> слышим веб, подразумеваем JS

Вы - да. Просто не торопитесь обобщать свой хайп до мейнстрима.
Сейчас лично для меня самое неудобное в создании сайтов - это то, что все инструменты для сборки фронта работают на JS, причем постоянно подпрыгивают за новинками и поэтому работают через жoпу.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #114, #188

113. Сообщение от Lost Inside (ok), 24-Ноя-23, 15:04   +2 +/
> он у меня может быть результатом вычисления

Современные CPU не сбрасывают автоматически бит SF, если в результате целочисленной операции все разряды результата сброшены?
Господи, помилуй нас, грешных...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #120, #180

114. Сообщение от Аноним (116), 24-Ноя-23, 15:13   –2 +/
> Сейчас лично для меня самое неудобное в создании сайтов

Это твои проблемы. П.с. слово "сайты" лишь говорит, что к коммерческой разработке ты имеешь отношение примерно никакое.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

115. Сообщение от Аноним (116), 24-Ноя-23, 15:15   +1 +/
> Пришел в Пых из Крестов

А чего сразу не в Бейсик?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #121

116. Сообщение от Аноним (116), 24-Ноя-23, 15:16   +2 +/
Зачем вообще в вебе классы, когда задача в 90 % случаев просто сделать запрос к базе и вернуть результат.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #155, #182

117. Сообщение от подрывник (?), 24-Ноя-23, 15:17   +/
Наследование реализации — корень всех зол.
Да и не надо его, когда есть интерфейсы классов и подмешивание через "include".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98 Ответы: #142, #187

118. Сообщение от Sw00p aka Jerom (?), 24-Ноя-23, 15:19   +/
> Интересно, кто-то вообще этим как-то пользовался?
> В смысле задефайнить номер первого элемента, но не остальные.
> Это ж прямой путь налететь на грабли.

индекс первого элемента - 0 (в обычном понимании плоского "сишного" массива), -0 по сути должен был быть индексом последнего элемента, а в пхп нет понятия плоского "сишного" массива, там ключ-значение. Индексы "нумерического массива" даже в пхп это ключ-значение.  

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #141

120. Сообщение от Sw00p aka Jerom (?), 24-Ноя-23, 15:32   +/
> Современные CPU не сбрасывают автоматически бит SF, если в результате целочисленной операции
> все разряды результата сброшены?
> Господи, помилуй нас, грешных...

https://en.wikipedia.org/wiki/Negative_flag

операции умножения и деления не трогают этот флаг, там по две инструкции на каждую операцию.

https://pdos.csail.mit.edu/6.828/2012/readings/i386.pdf

страница 419-420

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113

121. Сообщение от тоже Анонимemail (ok), 24-Ноя-23, 15:36   +/
Опять он здесь. Пропал тред.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115

122. Сообщение от Аноним (122), 24-Ноя-23, 16:31   +/
Да-да-да. Пыхыпэ переехал Перл, АСП, ЖСП, КолдФьюжен, Руби. Скоро и Нода туда же отползет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #162

123. Сообщение от YetAnotherOnanym (ok), 24-Ноя-23, 16:54   +1 +/
> и там не пользовался, и здесь не вижу необходимости

Речь не мальчика, но мужа. Респект.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107

128. Сообщение от YetAnotherOnanym (ok), 24-Ноя-23, 17:27   +1 +/
Да и фиг с ними. Главное, что кодер на модном язычке получит свой гонорар и свалит в следующий стартап.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100 Ответы: #136

129. Сообщение от Вы забыли заполнить поле Name (?), 24-Ноя-23, 17:55   +5 +/
У вас ошибка, должно быть подтвердившими
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

130. Сообщение от vitektm (?), 24-Ноя-23, 18:22   +/
Вопрос в  другом,  напишет какой-то Васян на безопасном языке, а его поезд собъёт. Владельцу бизнеса искать еще одного Васяна???

Так в России поездов больше, чем не криворуких модно-кодеров.
Бизнесу на твою моду как то наплевать. Бизнесу  прибыль нужна!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

131. Сообщение от vitektm (?), 24-Ноя-23, 18:23   +1 +/
Озвучьте функцию все равно аноним
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103 Ответы: #133

132. Сообщение от Аноним (132), 24-Ноя-23, 18:41   +2 +/
На PHP не программировал лет 10. Там наверно уже изменений как у инопланетных технологий. Верно?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #135, #137

133. Сообщение от тоже Анонимemail (ok), 24-Ноя-23, 19:01   –1 +/
А смысл? Это не какая-то серебряная пуля, которая сделает любому быстрее и лучше.
Это оптимальная реализация конкретного алгоритма, который мне подходил по логике.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131

134. Сообщение от Тот_ещё_аноним (ok), 24-Ноя-23, 19:19   +3 +/
"динамическая типизация" жеж
Он "-0" возьмет как аргумент "знаковое целое" по синтаксису и приведёт к "индекс массива", "-" в процессе отпадёт

А жаль)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

135. Сообщение от Gemorroj (ok), 24-Ноя-23, 19:49   –1 +/
так-то да. пытается на java похожим быть.
единственная реальная проблема в php - отсутствие искоробочной асинхронщины/параллельщины. ну и типизация массивов пригодилась бы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #189

136. Сообщение от User (??), 24-Ноя-23, 21:10   +1 +/
> Да и фиг с ними. Главное, что кодер на модном язычке получит
> свой гонорар и свалит в следующий стартап.

Клиент получает требуемую функциональность, разработчик - гонорар, win-win практически. А то, что через три года у клиента _могут_ возникнуть проблемы с производительностью... ну в общем "клиент типовой, резиновый" не готов ждать на полгода дольше и платить в три раза больше, чтобы _возможно_ не иметь проблем в будущем. Как-то так оно в реальном мире устроено.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128 Ответы: #152, #154

137. Сообщение от Аноним (137), 24-Ноя-23, 21:36   +1 +/
Скорее подход поменялся. Если раньше, во времена 4 пыхи, она была шаблонизатором, то теперь это монструозное нечто, где фреймворк на фреймворке фреймворком погоняет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #163

139. Сообщение от Аноним (137), 24-Ноя-23, 21:41   +/
Последний раз писал на PHP4, застав ещё PHP3. Но потом вернулся обратно на Perl, благо, работы хватит до пенсии, тем более, осталось не много :)
Ответить | Правка | Наверх | Cообщить модератору

141. Сообщение от Tron is Whistling (?), 24-Ноя-23, 21:54   +1 +/
В PHP все массивы - ассоциативные, то есть хеши, да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118

142. Сообщение от Tron is Whistling (?), 24-Ноя-23, 21:55   +1 +/
Подмешивание через include - это пять.
...
Я даже не знаю.
Похоже не только пых свернул куда-то не туда. Шею.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #165

146. Сообщение от Ivan_83 (ok), 24-Ноя-23, 22:44   +/
Пыхтон - обречённый язык из за dependency hell.
Он ещё кое как работает обмазанный venv и докерами, но всё больше скатывается к состоянию: "работает только на машине разработчика".
Учитывая то что там часть пакетов - биндинги которым нужны либы из системы, то оно не поддерживаемое для больших проектов.

JS - там проще, всё написано на самом JS, это сразу на порядок меньше головняков у тех кто это использует и обслуживает.

GO - всё нужное опять же носит с собой.

PHP - тоже без внешних зависимостей, есть некоторое фиксированное количество компонентов которые собираются в системе, остальное реализуют самим языком.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

147. Сообщение от x3who (?), 25-Ноя-23, 00:34   +/
> поставлю вопрос по другому, какой безопасный язык программирования использовать для веба?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

148. Сообщение от x3who (?), 25-Ноя-23, 00:45   +/
Язык-то красивый сам по себе, только тормоз. Питон тоже тормоз. JS тоже тормоз. Go - ну если не загружать его по новой на каждый запрос, будет быстрее. Но он тоже "безопасный", то бишь обработка строк, из которых чуть более чем полностью состоит веб, будет в разы дороже "опасных" языков. Тормоза - это не только user experience,  это ещё затраты на более мощное железо, на электричество для этого железа в датацентрах, на электричество для кондиционеров для отвода тепла выработанного железом в датацентрах в атмосферу нашей планетки. Т.н. "безопасные" языки программирования опасны для человечества.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #150, #186

149. Сообщение от x3who (?), 25-Ноя-23, 00:48   +1 +/
Только непонятно при чем тут ЯП воще :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

150. Сообщение от тоже Анонимemail (ok), 25-Ноя-23, 00:51   +/
На современном веб-сайте обычно работают три языка-посредника.
JS на фронте - между пользователем и веб-сервером.
РНР на бэке - между веб-сервером и сервером БД.
и SQL в БД - между тем, что понадобилось сайту, и реальностью его хранения.
Вот последний бывает критичен по производительности, а чаще - по умению на нем писать.
Два других же, как правило, не играют в скорости работы сайта решительно никакой роли, если писал на них не совсем уж жoпopук.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #153

151. Сообщение от фыаыаафыа (?), 25-Ноя-23, 00:58   –2 +/
Лучший язык снова обновился, а это значит я не умру с голоду, и буду дальше получать 5к евро, чисто благодаря тому что пхп существует.
Ответить | Правка | Наверх | Cообщить модератору

152. Сообщение от x3who (?), 25-Ноя-23, 01:02   +/
Ну вообще в реальном мире бизнес борется за живучесть и задаётся вопросами техподдержки. Кто не задаётся такими вопросами со временем всё равно отомрёт, даже если приложение спроектировано грамотно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #173

153. Сообщение от x3who (?), 25-Ноя-23, 01:10   +/
> JS на фронте - между пользователем и веб-сервером.

От всей души желаю _некоторым_ разработчикам _некоторых_ сайтов пользоваться RaspberryPi для их просмотра. Иногда страница пару минут грузится. Это говорит от том, сколько бесполезной нагрузки (в т.ч. для экологии) они несут.

> На современном веб-сайте обычно..
> РНР на бэке - между веб-сервером и сервером БД.

Думаю, что похапе - это не обычно. Если считать не по количеству сайтов, а по количеству запросов.

> и SQL в БД - между тем, что понадобилось сайту, и реальностью его хранения.

Вот да, и никакого кеширования между похапэ и БД.

> Вот последний бывает критичен по производительности, а чаще - по умению на нем писать.

Естественно заход в базу дорого обходится. Но _обычно_ данные кешируются. Не у васянов, конечно. Следующий уровень сложности - обеспечение транзакционной целостности не только в БД, но и в кеше. Чот не видел в опенсорце :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150 Ответы: #169

154. Сообщение от YetAnotherOnanym (ok), 25-Ноя-23, 01:15   +/
Клиент планирует посещаемость своих сервисов и сейчас, и через год, и через три года, и если он не прописал в договоре требования к производительности и масштабируемости, и не определил методику тестирования, а просто ограничился проверкой сервиса со своего клиентского устройства, принял и оплатил работу, а при мало-мальской нагрузке сервис лёг - ну, не повезло, связался с мошенником, а мозгов разоблачить его на хватило.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #172

155. Сообщение от x3who (?), 25-Ноя-23, 01:17   +/
> Зачем вообще в вебе классы, когда задача в 90 % случаев просто
> сделать запрос к базе и вернуть результат.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #168

156. Сообщение от x3who (?), 25-Ноя-23, 01:20   +/
> Не, я понимаю, что это очередная попытка решить проблему отсутствия множественного наследования
> - теперь можно на ходу лепить ***ту из классов, но лучше
> бы первое сделали.

Множественное наследование - это извращение. Сам унаследуй и от папы и от мамы - тогда поймешь по реакции окружающих :) Интерфейсы рулят, и, судя по статье, они в пыхе есть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #161

157. Сообщение от x3who (?), 25-Ноя-23, 01:32   +/
> Вот более жесткой типизации, конечно, не хватает. Но тут бытие определяет -
> пых постоянно работает с внешними данными, которые, как правило - строки.
> Все равно приводить и валидировать самому.

Вот в классе и валидировать  - подходят ему эти данные или нет

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107 Ответы: #185

158. Сообщение от Аноним (158), 25-Ноя-23, 02:57   +/
$ php -r 'echo 0 / -100, "\n";'
0

$ php -r 'echo 0 === -0 ? "true" : "false", "\n";'
true

У меня какой-то другой пхп стоит?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109 Ответы: #167

161. Сообщение от Tron is Whistling (?), 25-Ноя-23, 09:27   +/
Сразу видно дальше хеллоуврота или сборки из всяких pypinpm'ов не писавших...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #156

162. Сообщение от Tron is Whistling (?), 25-Ноя-23, 09:32   +/
Отползёт, но не до конца - с нодой удалось попасть в хитрую нишу, когда фронтендщики начали костылить прочее из того, что умеют. Другое дело, что всё это исполняется на по сути моновендорном, да ещё и браузерном, движке кривого-косого по сути своей JS, и поэтому представляет из себя феерический костыль как по рахитектуре так и по перспективам.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #164

163. Сообщение от Tron is Whistling (?), 25-Ноя-23, 09:53   –1 +/
Пых это как раз то место, где вообще фреймворки не нужны по сути.
Но мир смузи без монструозных конструкций не умеет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137

164. Сообщение от нах. (?), 25-Ноя-23, 10:14   +1 +/
> Отползёт, но не до конца - с нодой удалось попасть в хитрую нишу, когда фронтендщики начали
> костылить прочее из того, что умеют.

как будто им на пехепе кто-то мешал?

там скорее ниша именно в бесконечной помойке лефтпадов - да, первым начал именно пехепе, но до такой простоты хуже воровства все же не дотянул.

> и поэтому представляет из себя феерический костыль как по рахитектуре так и по перспективам.

напомню, чем в (поделке на игого) grafana заменили (внезапно, ставший неподдерживаемым лефтпад) создавалку, фак... снапшотов графичков?

А тут - всего лишь js от него. Все, расслабься - для современной индус-трии именно такие решения и являются наиболее оптимальными.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162

165. Сообщение от нах. (?), 25-Ноя-23, 10:16   +/
какие разработчики, такие и технологии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142

166. Сообщение от ptr (??), 25-Ноя-23, 11:22   +/
Ну COBOL уже лет 40 хоронят, а 6.4 вышел в мае прошлого года. Legacy он такой, не убиваемый.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

167. Сообщение от Sw00p aka Jerom (?), 25-Ноя-23, 12:14   +/
-0 нет в пхп
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158

168. Сообщение от Sw00p aka Jerom (?), 25-Ноя-23, 12:18   +/
ага, тенденция микросервисов и классов :))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #155

169. Сообщение от тоже Анонимemail (ok), 25-Ноя-23, 13:16   +/
Нынешние малинки несут на себе четыре ядра и восемь гигов памяти. Уделывая значительное число офисных машинок ;)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153 Ответы: #170

170. Сообщение от x3who (?), 25-Ноя-23, 13:53   +/
Именно такой я и пользуюсь. Некоторые сайты тормозят нещадно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169 Ответы: #171

171. Сообщение от тоже Анонимemail (ok), 25-Ноя-23, 14:31   +/
Ну, там скорее не кривые скрипты, а визуальные вытребеньки типа параллаксов и видеоподложек.
Есть в этом мире вещи настолько кривые, что выпрямить их можно только единственным способом...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170

172. Сообщение от User (??), 25-Ноя-23, 19:25   +/
> Клиент планирует посещаемость своих сервисов и сейчас, и через год, и через
> три года, и если он не прописал в договоре требования к
> производительности и масштабируемости, и не определил методику тестирования, а просто
> ограничился проверкой сервиса со своего клиентского устройства, принял и оплатил работу,
> а при мало-мальской нагрузке сервис лёг - ну, не повезло, связался
> с мошенником, а мозгов разоблачить его на хватило.

Айтишники-такие-айтишники. За первые два года закрывается больше половины бизнесов в России - но инструмент для создания сайт-визитки надо выбирать исходя из требований к производительности и масштабируемости. Да. Такъ победiмъ!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154 Ответы: #178

173. Сообщение от User (??), 25-Ноя-23, 19:28   +/
> Ну вообще в реальном мире бизнес борется за живучесть и задаётся вопросами
> техподдержки. Кто не задаётся такими вопросами со временем всё равно отомрёт,
> даже если приложение спроектировано грамотно.

Ну в общем да. Стоимость поддержки решения в критериях выбора - есть. Тыр-пыр-формантца (Который, заметим, с этой "стоимостью" некоторым образом в контрах) - нет. Нет, если говрить о чисто IT'шных бизнесах - то тут возможны варианты, и то не факт - мордокнига смотрит на вас с определенным недоумением.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152

175. Сообщение от Александр (??), 26-Ноя-23, 01:26   +/
В сравнении с чем? С каким-нибудь python и думаю PHP быстрее
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

176. Сообщение от Александр (??), 26-Ноя-23, 01:31   +/
И что мне должно сказать количество вакансий? То, что сейчас у каждой компании по 3-х страничному сайту? Это и без количества вакансий понятно. Компаний много, всем нужен интернет магаз на коленке собранный или лендинг какой-нибудь. Тут и заходят все эти python, node.js и PHP. Считай их ниша. Для чего-то по серьёзнее (что, понятно, нужно реже) берут C#, java. В совсем нагруженных случаях вообще C++. От сюда и получаем такую статистику по вакансиям, а вовсе не от того, что легаси
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

177. Сообщение от Александр (??), 26-Ноя-23, 01:33   +/
А в python или js всё ровно с этим? Особенно в js
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

178. Сообщение от YetAnotherOnanym (ok), 26-Ноя-23, 10:57   +/
Однодневки-прачечные, как правило, обходятся без сайтов, даже одностраничных визиток. Для прочих видов бизнеса желательно умение смотреть чуть дальше собственного носа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172 Ответы: #181

179. Сообщение от Tron is Whistling (?), 26-Ноя-23, 12:36   +1 +/
Не проще сразу другой язык выбрать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

180. Сообщение от Tron is Whistling (?), 26-Ноя-23, 12:40   +/
У IPU SF - это просто копия старшего бита результата, поэтому про -0 можно забыть.
В FPU ситуация немножко иная.
Посколько в данном случае индексы у PHP приводятся к строке через целые числа - про -0 можете забыть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113

181. Сообщение от User (??), 26-Ноя-23, 12:49   +/
Ну, надеюсь что "про it" вы знаете хоть чуть-чуть больше, чем "про бизнес", да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178 Ответы: #203

182. Сообщение от Аноним (-), 26-Ноя-23, 12:50   +1 +/
это вид сарказма такой? а типовые взаимодействия с бд, что и является основой, каждый раз вручную что-ли кодить? в них же все обработки/чеки и по типизации, кста. автолоадером легко подхватывается и прекрасно работает. помимо них, ещё куча, которая с массивами работает, вычисления проводит и передаёт их предыдущим. нууу... 2/3 процедурных простыней в моём проекте, примерно, скрыто так. чяднт?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116

183. Сообщение от Аноним (-), 26-Ноя-23, 12:52   +/
ассоциация не решает проблемы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

184. Сообщение от Tron is Whistling (?), 26-Ноя-23, 12:52   +/
В пыхе нынешнем конечно есть свои idiosyncrazy с производительностью, если надо в качестве ЯОН.

Например вот этот вот сахар вокруг статических типов - прилично увеличивает стоимость вызова. Лишняя проверка при каждом вызове.

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

switch с case $this::const или class::const менее производителен, чем switch с case "string". Если аргумент switch - строка и более-менее постоянен (внутренний хеш формируется для каждой строки 1 раз), например редко меняемая property - вместо констант класса в критичных участках кода в switch лучше использовать строки напрямую.

И т.п.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103

185. Сообщение от Аноним (-), 26-Ноя-23, 13:08   +/
+

правда, чеки/конвертеры стоит иногда в отдельные классы выделять, чтобы массив, одними, правильно собрать с инпута и отдать другим на передачу в бд. в хеллоувордах всё это не проблема, конечно же))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157

186. Сообщение от Tron is Whistling (?), 26-Ноя-23, 13:11   +/
Тормоз в PHP начинается тогда, когда идёт совершеннейшее непонимание принципов его работы.
Овердекомпозиция с методом на каждые 10 строк - одно из таковых. Вызов метода в PHP - удовольствие ОЧЕНЬ дорогое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #191

187. Сообщение от Аноним (-), 26-Ноя-23, 13:13   +/
да композицией, агрегацией это всё решается внутри, не надо ничего подмешивать. классы с неймспейсами легко же тянутся
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117 Ответы: #194, #197

188. Сообщение от Аноним (-), 26-Ноя-23, 13:16   +/
соглашусь, но, другого же способа рилтайм обновления веба и нет никакого иного, ведь так? меня вот, если честно, тож наламывает что надо жс учить, чтоб свой бэк на пыхе актуализировать, а что делать?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #193

189. Сообщение от Аноним (-), 26-Ноя-23, 13:26   +/
> типизация массивов пригодилась бы

в классах это всё делается - инпут обрабатывать и бд правильную архитектуру - это все равно ручками всё

> отсутствие искоробочной асинхронщины/параллельщины

да, так бы и не было повального жс везде

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135

190. Сообщение от Аноним (-), 26-Ноя-23, 13:32   +/
вы про что? limit 20 нет в запросе? логика там какая - чтобы без доп запроса показать всё по требованию? where пользоваться под нужный диапазон тоже не научились?)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106 Ответы: #192

191. Сообщение от x3who (?), 26-Ноя-23, 14:35   +/
> Тормоз в PHP начинается тогда, когда идёт совершеннейшее непонимание принципов его работы.
> Овердекомпозиция с методом на каждые 10 строк - одно из таковых. Вызов
> метода в PHP - удовольствие ОЧЕНЬ дорогое.

Разрабочиков Nextcloud сложно заподозрить в совершенном непонимании пыха, однако как же он тормозит!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #186 Ответы: #201

192. Сообщение от тоже Анонимemail (ok), 26-Ноя-23, 14:35   +/
> вы про что?


#bitrix/modules/sale/admin/transact_admin.php
-$dbTransactList = CSaleUserTransact::GetList(array($by => $order), $arFilter, false, false, array("*"));
+$dbTransactList = CSaleUserTransact::GetList(array($by => $order), $arFilter, false, array("nPageSize" => CAdminUiResult::GetNavSize($sTableID)), array("*"));

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190

193. Сообщение от тоже Анонимemail (ok), 26-Ноя-23, 14:40   +/
> тож наламывает что надо жс учить

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #188

194. Сообщение от Tron is Whistling (?), 26-Ноя-23, 14:50   –1 +/
Архитектурно есть у тебя сокеты например.

У разных сокетов например (ну, сокетная асинхронная либа у меня) - разные варианты реализации. Есть потоковые, где можно фигачить любыми блоками и доступно чтение любого размера. Есть датаграммы, где надо читать датаграмму целиком. У типичного датаграммного UDP ещё и адрес надо читать. У TCP есть OOB. Есть псевдосокеты сообщений, которые аналогичны датаграммам, но может быть адрес и ID сообщения. И т.п. У разных сокетов есть разные эвенты, которые они пуляют слушателям при событиях.

Сейчас приходится всё это счастье подмешивать через превращение опций в interfaces + traits и цепочке наследования через прототипы, но это такие жёсткие костыли, что блин хочется всё это взять и вырезать. Множественное наследование решило бы проблему полностью,  но нет, приходится костылить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #187 Ответы: #195, #198, #236

195. Сообщение от Tron is Whistling (?), 26-Ноя-23, 14:53   +/
Как пример жёсткого костылинга

class PollingSocketPrototype implements \ATL\ITask { use \ATL\TTask; } # bring in Task class first as first level parent

class PollingSocketPrototype2 extends \ATL\Socket\PollingSocketPrototype implements \ATL\ISocket { use \ATL\TSocket; } # bring in base Socket class as second level parent

abstract class PollingSocket extends \ATL\Socket\PollingSocketPrototype2 implements \ATL\Socket\IPollingSocket { use \ATL\Socket\TPollingSocket; }


abstract class StreamBasePrototype extends \ATL\Socket\PollingSocket implements \ATL\Socket\Capabilities\IBulk { use \ATL\Socket\Capabilities\TBulk; }

abstract class StreamBase extends \ATL\Socket\StreamBasePrototype
{
...
}

abstract class StreamPrototype extends \ATL\Socket\StreamBase implements \ATL\Socket\Capabilities\IReadBytes, \ATL\Socket\Capabilities\IDelimitedReads
{
    use \ATL\Socket\Capabilities\TReadBytes; # bring in readBytes capability
    use \ATL\Socket\Capabilities\TDelimitedReads; # bring in delimited reads capability
}

class Stream extends \ATL\Socket\StreamPrototype
{
...
}

Всё вот это вот решилось бы множественным наследованием легко и просто.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194

196. Сообщение от Нанонимус53 (?), 26-Ноя-23, 14:55   +/
Вообще-то нет. CRUD какой-нибудь сильно на производительность не влияет, а сложные запросы всё равно приходится писать на SQL, просто оборачивая результаты их работы в объекты ORM. Так что действительно тут больше зависит от знания SQL и оптимизации базы данных.

Часть логики, если она сильно влияет на производительность, пишется модулями на C, и тогда в целом тоже всё равно - это модуль для PHP или для Питона. Мы так писали например функции для работы с географическими данными, типа рассчёта расстояния между точками на карте с учётом кривизны планеты, быструю выборку из нескольких близких точек и т.п.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #213

197. Сообщение от Tron is Whistling (?), 26-Ноя-23, 14:58   –1 +/
Ну и да, множественное наследование - это как раз часть композиции-агрегации, которой нет, и это печально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #187 Ответы: #199

198. Сообщение от Tron is Whistling (?), 26-Ноя-23, 15:00   +/
Я понимаю, что ты в линейной вебне, которая в основном банальная модель и шаблонизатор - вряд ли это встретишь, но PHP уже давно вышел за рамки вебни, и поэтому вместо вот этого всего странного #[Override] сахарка хотелось бы чего-то серьёзного :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194

199. Сообщение от Tron is Whistling (?), 26-Ноя-23, 15:01   +/
Причём реализовать-то уже просто - эмуляция выше легко бы могла быть сделана через use Class хотя бы, не Trait, а класс, который затягивает все интерфейсы и прочее содержимое эквивалентно Trait. Но нет, приходится костылять.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #197 Ответы: #200

200. Сообщение от Tron is Whistling (?), 26-Ноя-23, 15:07   +/
class Stream
{
    inherit \ATL\Task; # ATL socket is a task
    inherit \ATL\Socket\PollingSocket; # we are a polling socket
    inherit \ATL\Socket\StreamBase; # use PHP Stream socket base
    inherit \ATL\Socket\Capabilities\ReadBytes; # support readBytes
    inherit \ATL\Socket\Capabilities\DelimitedReads; # support delimited reads
}

Специально написал inherit вместо use - как бы это могло быть. Красивенько, да, по сравнению с костылями выше?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199 Ответы: #202

201. Сообщение от Tron is Whistling (?), 26-Ноя-23, 15:14   +/
Вы внутрь Nextcloud заглядывали?
Тут не то, что заподозрить, тут как раз таки всё "на лице".
Так можно писать исключительно на компилируемом языке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #191 Ответы: #214

202. Сообщение от тоже Анонимemail (ok), 26-Ноя-23, 15:22   +1 +/
А решить это заменой наследования композицией - точно не вариант?
Начиная с socket is not a task but task has a socket.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #200 Ответы: #204

203. Сообщение от YetAnotherOnanym (ok), 26-Ноя-23, 16:09   +/
Вы своё знание и того, и другого продемонстрировали. Так что да, надежда - это всё, что Вам остаётся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181

204. Сообщение от Tron is Whistling (?), 26-Ноя-23, 16:18   –1 +/
Никак там не решишь, у разных типов сокетов разные включения, они могут частично перекрываться.
Часть включений перекрывает некоторые единичные методы родителей, но прекрасно использует все остальные.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #202 Ответы: #205, #206

205. Сообщение от Tron is Whistling (?), 26-Ноя-23, 16:23   +/
Just for fun покажу минимальный тест сокета.

class Test extends \ATL\Task
{
    public function main()
    {
        Log::msg("Main task started");
        yield true;

        try {
            Log::msg("Creating socket");
            $this->taskAddChildTask($socket = new \ATL\Socket\TCP('192.168.77.10', 80, 15));
            yield true;

            Log::msg("Waiting for socket to connect");
            if (($result = yield ($wait = new \ATL\Socket\WaitForConnect($socket))) !== true) {
                if (is_array($result)) throw new \Exception("Socket error {$result[0]} while connecting: {$result[1]}");
                throw new \Exception("Socket timed out while connecting");
            }
            Log::msg("Socket connected");
            Log::msg("Local name: ".$socket->socketLocalName);
            Log::msg("Remote name: ".$socket->socketRemoteName);

            Log::msg("Writing HTTP request to the socket");
            $socket->writeBulk([
                "GET /test.php HTTP/1.1\r\n",
                "Host: alex-at.net\r\n",
                "Connection: close\r\n",
                "\r\n",
            ]);

            Log::msg("Waiting for write data to be flushed down");
            if (($result = yield ($wait = new \ATL\Socket\WaitForWriteFlush($socket, 5))) !== true) {
                if (is_array($result)) throw new \Exception("Socket error {$result[0]} while writing: {$result[1]}");
                throw new \Exception("Socket timed out while waiting for write");
            }

            Log::msg("Reading from socket");
            $wait = new \ATL\Socket\Read($socket, 5);
            $fout = fopen(__DIR__.'/socket_test.out', 'wb');
            do {
                if (($result = yield $wait) !== true) {
                    if (is_array($result)) throw new \Exception("Socket error {$result[0]} while reading: {$result[1]}");
                    throw new \Exception("Socket timed out while reading data");
                }
                if ($wait->readData !== null)
                    fwrite($fout, implode('', $wait->readData));
            } while ($wait->readData !== null);
            fclose($fout);

            Log::msg("Waiting for socket to disconnect");
            if (($result = yield ($wait = new \ATL\Socket\Disconnect($socket, 5, true))) !== true) {
                if (is_array($result)) throw new \Exception("Socket error {$result[0]} while disconnecting: {$result[1]}");
                throw new \Exception("Socket timed out while waiting for disconnect");
            }
        } catch (\Exception $e) {
            Log::msg("ERROR: ".$e->getMessage());
        }

        if (!$socket->isDisconnected()) {
            Log::msg("Aborting socket");
            $socket->abort();
            yield true;
        }

        Log::msg("Main task ended");
    }
}

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #204 Ответы: #208

206. Сообщение от Tron is Whistling (?), 26-Ноя-23, 16:39   +/
Сокет вообще как таск живёт своей жизнью - он не обязательно прибит к конкретному родителю, всё зависит от задачи. В самом простом случае родитель - это таск протокола, но в сложных случаях там могут быть дочки, которые выполняют одну задачу в рамках конкретного протокола. Например разобрал команду SMTP в протокольном модуле - отдал сокет приёмнику данных, отработает - вернёт сокет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #204 Ответы: #207

207. Сообщение от Tron is Whistling (?), 26-Ноя-23, 16:42   +/
Ну или например увидел в начале PROXY-протокол - отдал разбирать PROXY, разобрал, отдал SMTP.
И т.д. и т.п.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #206

208. Сообщение от тоже Анонимemail (ok), 26-Ноя-23, 18:28   +/
Не знаком с используемой библиотекой, но в приведенном коде таски с сокетами смешиваются только в одной строчке. В которой точно так же можно использовать дочерний класс таска с членом-сокетом.
И не гневать святую Барбару..
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #205 Ответы: #209, #210

209. Сообщение от Tron is Whistling (?), 26-Ноя-23, 20:57   +/
В конкретной реализации - не можно.
Данный сокет, повторюсь, живёт своей жизнью, и к конкретному таску, кроме своего - не прибит.
Ещё есть сокеты-ендпоинты, которые вообще не таски.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #208

210. Сообщение от Tron is Whistling (?), 26-Ноя-23, 21:11   +/
И да, член у сокета есть, но ему кроме него надо ещё в зависимости от типа затянуть поллинг или нет, стримы или прочие обёртки, дополнительные фичи. Нет, можно всё это замечательно дублировать CTRL-C CTRL-V из класса в класс, ну или вот так извращаться, как выше. Про не-тасковые ендпоинты уже выше писал, они API Socket вполне себе реализуют, но не Task.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #208 Ответы: #211

211. Сообщение от тоже Анонимemail (ok), 27-Ноя-23, 00:32   +/
Я говорил про тот код, который увидел. В нем сокет используется как таск только в одном месте, причем в этом месте нужен таск, а не сокет.

> CTRL-C CTRL-V

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

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #210

212. Сообщение от MT (ok), 27-Ноя-23, 01:42   +/
Если только не видел PhpED.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #217

213. Сообщение от User (??), 27-Ноя-23, 07:29   +/
Хм. У нас на последнее postgis воткнут - в общем-то хватает, впрочем задач крупнее городской теплосети пожалуй что и нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #196

214. Сообщение от x3who (?), 27-Ноя-23, 10:38   +/
> Вы внутрь Nextcloud заглядывали?
> Тут не то, что заподозрить, тут как раз таки всё "на лице".
> Так можно писать исключительно на компилируемом языке.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201 Ответы: #215, #216

215. Сообщение от Tron is Whistling (?), 27-Ноя-23, 10:40   +/
И я о том же. Выбирают PHP, а пишут как на жабах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #214 Ответы: #228

216. Сообщение от Tron is Whistling (?), 27-Ноя-23, 10:41   +/
И не "такое", а "так", не путайте.
Попытка перенести подходы с компилируемых языков на динамический обречены быть унылым тормозом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #214 Ответы: #227

217. Сообщение от тоже Анонимemail (ok), 27-Ноя-23, 11:39   +/
Win-only IDE в 2023? Не видел и не увижу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #212 Ответы: #218

218. Сообщение от MT (ok), 27-Ноя-23, 12:53   +/
Речь не об ОС, а о быстродействии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #217 Ответы: #219

219. Сообщение от тоже Анонимemail (ok), 27-Ноя-23, 13:26   +/
> Речь не об ОС, а о быстродействии.

Если что-то летает, но только под Мак - мне от этого ни горячо, ни холодно.

И если вы подозреваете, что я за тридцать лет программирования ничего, кроме Шторма, не видел и поэтому хвалю JetBrains - боюсь, вы заблуждаетесь.
Я хорошо помню, как MSVS С++ летала в версии 2008 года и как она же стала диким тормозом в 2010, например. Хотя язык отнюдь не менялся... просто эти рyкoжoпы загнали анализ кода в свою монструозную БД. Никакие Кресты и Шарпы от этого, внезапно, не спасли.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218 Ответы: #221

220. Сообщение от Аноним (220), 27-Ноя-23, 14:08   +/
Только Julia в отличии от Mojo существует в реальности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

221. Сообщение от MT (ok), 27-Ноя-23, 15:31   +/
Java-продукция JetBrains работала заметно медленнее версии PhpED, выпущенной в то же время. Это и понятно — managed-язык закономерно медленнее компилируемого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #219 Ответы: #222

222. Сообщение от тоже Анонимemail (ok), 27-Ноя-23, 15:41   +/
> Это и понятно — managed-язык закономерно медленнее компилируемого.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #221 Ответы: #223

223. Сообщение от MT (ok), 27-Ноя-23, 15:43   +/
PhpED был быстрее не в теории, а на практике. В одно и то же время, в одной и той же ОС.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #222 Ответы: #224

224. Сообщение от тоже Анонимemail (ok), 27-Ноя-23, 15:57   +/
А Notepad++ был еще быстрее. Переходите уже на него и не делайте мне голову.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #223 Ответы: #225

225. Сообщение от MT (ok), 27-Ноя-23, 16:08   +/
У ПО одного класса в одно и то же время обычно паритет по функциональности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #224 Ответы: #226

226. Сообщение от тоже Анонимemail (ok), 27-Ноя-23, 16:35   +1 +/
> У ПО одного класса в одно и то же время обычно паритет по функциональности.

Я, наверное, мало знаю IT. Не могу припомнить ни одного примера, подтверждающего это заявление.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #225

227. Сообщение от x3who (?), 27-Ноя-23, 16:43   +/
> И не "такое", а "так", не путайте.
> Попытка перенести подходы с компилируемых языков на динамический обречены быть унылым тормозом.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #216 Ответы: #231

228. Сообщение от x3who (?), 27-Ноя-23, 16:45   +/
> И я о том же. Выбирают PHP, а пишут как на жабах.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215 Ответы: #230

229. Сообщение от Аноним (229), 27-Ноя-23, 17:05   +/
Граждание, почему PHP не используется в банковской отрасли? Или используется?
И второй вопрос, если PHP так стремится быть похожим на Java, сможет ли он её где-нибудь потеснить?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #233, #238, #239

230. Сообщение от Tron is Whistling (?), 27-Ноя-23, 23:15   +/
Так, да не совсем. В жабе типы и структуры анализируются предварительно, и собранный байт-код работает с фиксированными знаниями о том, что прилетит в тот же вызов, с фиксированными структурами, определяющими, какие у класса есть свойства и каких типов, и т.п. Большая часть сборки осуществляется один раз на этапе трансляции в байт-код. У PHP же вся сборка - динамическая, каждый загружаемый файл, каждый создаваемый класс - всё это парсится и транслируется в рантайме. Да, кешируется в opcache, но всё равно часть трансляции есть даже при взятии из opcache.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #228 Ответы: #232

231. Сообщение от Tron is Whistling (?), 27-Ноя-23, 23:16   +/
Если вкратце - то да, при овердекомпозиции пых - плохой выбор.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #227

232. Сообщение от x3who (?), 28-Ноя-23, 00:23   +/
> Так, да не совсем. В жабе типы и структуры анализируются предварительно, и
> собранный байт-код работает с фиксированными знаниями о том, что прилетит в
> тот же вызов, с фиксированными структурами, определяющими, какие у класса есть
> свойства и каких типов, и т.п. Большая часть сборки осуществляется один
> раз на этапе трансляции в байт-код. У PHP же вся сборка
> - динамическая, каждый загружаемый файл, каждый создаваемый класс - всё это
> парсится и транслируется в рантайме. Да, кешируется в opcache, но всё
> равно часть трансляции есть даже при взятии из opcache.

Мне даже такие детали не важны. Важен сам факт, что пых тормознее даже джавы. Дело не только в латентностях. Тупо в ненужных вычислениях, на которые тратится электричество и кремний.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #230 Ответы: #235

233. Сообщение от Аноним (64), 28-Ноя-23, 09:20   +/
А зачем тащить это хлам в финансовую сферу? В энтерпрайзе рулит c#.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #229 Ответы: #234

234. Сообщение от Аноним (229), 29-Ноя-23, 03:01   +/
Почему сразу хлам-то?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #233

235. Сообщение от Аноним (235), 01-Дек-23, 00:48   +/
Строчить и строчить однотипные комменты в вебе.
Хватить тратить такты и кремний! Кончай издеваться над природой!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #232

236. Сообщение от Аноним (235), 01-Дек-23, 00:58   +/
Открой для себя композицию, делегирование и стратегии. Помогает от этой вот лажи, что ты пишешь, и множественного наследования избавиться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194 Ответы: #237

237. Сообщение от Tron is Whistling (?), 01-Дек-23, 14:22   +/
Попей смузи, и расслабься.
Когда нечем композировать - композировать нечем. Такие дела.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #236

238. Сообщение от Tron is Whistling (?), 01-Дек-23, 14:30   +/
Потому что сертификацию будет пройти очень сложно.
Но для вебни - используется, почему нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #229

239. Сообщение от Tron is Whistling (?), 01-Дек-23, 14:32   +/
Те же payment gateways и вёб-платёжки на пыхе встречаются.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #229


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру