
Sergio
16.03.2017
12:13:41
но всеравно, после симфони все эти опенкарты и вордпрессы и прочее, такое уг(

Mihail
16.03.2017
12:13:53
ну это естественно
мне даже в ларе копаться лень после симфони
(

Google

Sergey
16.03.2017
12:14:10
после спринга на симфони вообще как-то грустно смотреть ?

Sergio
16.03.2017
12:14:56
но это ж ява?
спринг -то

Sergey
16.03.2017
12:15:08
да
в моем случае котлин)

Sergio
16.03.2017
12:15:52
ну хз... мне шарп больше импонирует, если честно)

Sergey
16.03.2017
12:17:10
рантайм привязанный к винде, вендор лок, печальный опенсорс, деплой только в их ажуру, тулинг тоже их в виде всеких VS Studio. такое себе)
ну и в самом языке принятый стиль мне совсем не нравится
эти нижние подчеркивания для приватных полей, паскаль нотация для именования методов
User.GetName()

Sergio
16.03.2017
12:18:44
да, завязка винонли это,конечно,несомненно минус

Sergey
16.03.2017
12:18:56
ну и если тебе нужны хадупы и спарки, а они нужны будут, то с дотнетом будет тесно)
а mono это вообще гавно, у нас его еще и в продакшен затащили)

Sergio
16.03.2017
12:19:12
гг)

Google

Rodion
16.03.2017
12:53:32

Sergey
16.03.2017
12:54:37
ну я несколько языков в работе использую
полностью не переходил никуда)

Rodion
16.03.2017
12:55:40
стартовал с джавы т.е.?

Sergey
16.03.2017
12:56:06
и джаву использую в том числе. только джаву на много раньше чем котлин начал использовать
джаву уже хз, лет 5 юзаю
не так активно как пхп
только в последнее время начал много на котлине и джаве писать

Sergio
16.03.2017
13:01:45
так jphp еще до кучи юзай))

Sergey
16.03.2017
13:04:05
языковые возможности котлина покрывают все мои нужды, так что нет смысла)

Sergio
16.03.2017
13:04:39
ясно)

Igor
16.03.2017
13:06:31
если не секрет
какие нужды?)
Просто стараюсь для себя как phpшника найти бизнес-задачи

Dmitriy
16.03.2017
13:08:02
сделай сервис коротких ссылок
чтобы шустро работал

Sergio
16.03.2017
13:20:07
а все медленные чтоли?


Sergey
16.03.2017
13:28:38
какие нужды?)
конкретно то чего не хватает в пхп:
- параллельные вычисления. чтобы утилизировать вычислительные ресурсы на всех ядрах
- скорость. пхп в этом плане похвастаться не может особо. как будет JIT в 8м пхп, тогда еще можно будет смотреть. а так порой гидратор доктрины занимает больше времени чем сам запрос на мускуль
- умная статическая типизация. тебе всегда компилятор скажет что ты идиот, а не в рантайме тебе прилетит эксепшен или фатал
- мультитрединг и мультитаскинг. я хочу сделать сервис, у которого будет пул из 4 тредов делать какую-то работу, а с этим пулом общаться через rest api. сможет такое пхп? нет. только костыли в виде redis/rabbitmq в качестве shared memory, с обвеской супервизора и личного пхп-фпм сервера
- нужны инструменты для профилирования памяти и цпу работающих процессов. скажем если на проде висит процесс пхп который сожрал 600мб памяти, ты ну вообще никак не сможешь сказать чем оно занято. с jvm через jmx ты сможешь законнектится сделать хипдампы, снепшоты, и иметь полный доступ к тому что там внутри происходит
- генерики и коллекции. на пхп это просто боль. максимум что ты можешь это в пхпдоке указать тип массива
ну а остальное это так, плюшки платформы и языков)


Dmitriy
16.03.2017
13:31:16

Sergey
16.03.2017
13:31:51

Google


Aleh
16.03.2017
13:36:55
конкретно то чего не хватает в пхп:
- параллельные вычисления. чтобы утилизировать вычислительные ресурсы на всех ядрах
- скорость. пхп в этом плане похвастаться не может особо. как будет JIT в 8м пхп, тогда еще можно будет смотреть. а так порой гидратор доктрины занимает больше времени чем сам запрос на мускуль
- умная статическая типизация. тебе всегда компилятор скажет что ты идиот, а не в рантайме тебе прилетит эксепшен или фатал
- мультитрединг и мультитаскинг. я хочу сделать сервис, у которого будет пул из 4 тредов делать какую-то работу, а с этим пулом общаться через rest api. сможет такое пхп? нет. только костыли в виде redis/rabbitmq в качестве shared memory, с обвеской супервизора и личного пхп-фпм сервера
- нужны инструменты для профилирования памяти и цпу работающих процессов. скажем если на проде висит процесс пхп который сожрал 600мб памяти, ты ну вообще никак не сможешь сказать чем оно занято. с jvm через jmx ты сможешь законнектится сделать хипдампы, снепшоты, и иметь полный доступ к тому что там внутри происходит
- генерики и коллекции. на пхп это просто боль. максимум что ты можешь это в пхпдоке указать тип массива
ну а остальное это так, плюшки платформы и языков)
> - параллельные вычисления. чтобы утилизировать вычислительные ресурсы на всех ядрах
гоняешь число воркеров равное числу ядер, а вот асинхронности(которая мультиплексирует) не хватает


Sergey
16.03.2017
13:37:21

Aleh
16.03.2017
13:37:41
треды не нужны для такого

Sergey
16.03.2017
13:37:46
больше сотни демонов по серверам размазано

Aleh
16.03.2017
13:38:00
да и вообще треды сомнительная идея в вебе

Sergey
16.03.2017
13:38:35

Aleh
16.03.2017
13:38:38
> генерики и коллекции. на пхп это просто боль. максимум что ты можешь это в пхпдоке указать тип массива
это правда, еще бы type aliases и structural typing и этап компиляции
запусти несколько процессов

Sergey
16.03.2017
13:39:36
а общаться между процессами и контролировать их? зачем мне весь оверхед в виде редиса и очередей на кролике?
а блокировки и синхронизации?

Sergio
16.03.2017
13:41:12
Ну вот и подходим медленно к тупику

Sergey
16.03.2017
13:41:14
между потоками тебе не сериализовать ничего не нужно, не гонять трафик, не держать отдельные копии ресурсов на каждый процесс

Sergio
16.03.2017
13:42:07
Ну асп.нэт тож не покатит ибо Микрософт, да?

Rodion
16.03.2017
13:42:58
> @Enleur
только костыли в виде redis/rabbitmq
жиза((

Sergey
16.03.2017
13:43:20
зато масштабируется из коробки))

Igor
16.03.2017
13:43:41

Aleh
16.03.2017
13:43:52

Sergey
16.03.2017
13:44:18

Aleh
16.03.2017
13:44:27
не знаю, а зачем тебе?

Google

Sergey
16.03.2017
13:45:49
с тем же успехом можно и pthreads втащить в билд пхп

Aleh
16.03.2017
13:46:03
в смысле, я наоборот говорю так не делать)
с процессами в любой момент можно разносить все на разные машины, нет проблем с владением данными, не все задачи так можно решить, но в вебе кмк почти все)

Sergey
16.03.2017
13:51:13
это ты можешь и с многопоточными приложениями делать, одно другому не мешает
тому пример akka cluster

Sergio
16.03.2017
14:13:25
и нахера?)
а можно пояснить, почему это не правильный путь?
что в сокетах-то не так?

Aleh
16.03.2017
14:14:45
шарить память и вот это вот все

Admin
ERROR: S client not available

Sergey
16.03.2017
14:14:58
с сокетам все ок, просто опускаться до уровня сокетов чтобы сделать то что можно решить инструментом предназначенным именно для этой задачи

Aleh
16.03.2017
14:15:07
какой задачи?)

Sergey
16.03.2017
14:15:20

Aleh
16.03.2017
14:15:20
а то мы что-то слишком абстрактное обсуждаем

Sergio
16.03.2017
14:15:33
))

Sergey
16.03.2017
14:16:59

Aleh
16.03.2017
14:17:04
например?
для меня многопоточность это такая же необходимость, как, например, быстрая математика. Если вдруг нужно будет, напишу на чем-то подходящем, может даже на каких-то gl. Пока еще ниразу не было такой задачи в продакшене, но наверное бывают)


Sergey
16.03.2017
14:34:22
у тебя датасет на 1 миллион записей, тебе нужно его просчитать. будешь делить и через сокеты гонять?
ну ок, ближе к реальности:
у тебя веб запрос, помимо основной логики он еще выполняет действия, которые не нужны юзеру моментально(типа почистить связанный кеш, отправить ивенты аналитики, отправить эмейлы). как сейчас это делается? отправляется сообщение в кролик и некий background job runner который висит демоном их разгребает. можно еще через fpm finish requests. а по факту могло уйти просто в отдельный поток и там себе обработаться, не поднимая кроликов и отдельные процессы
во время веб запроса тебе нужно опросить скажем 4 разных источника, которые возвращают здоровенный xml и тебе нужно их все обработать и вернуть юзеру. ты ж не будешь отправлять их через rpc пачке демонов, правда?
пайплайны и поэтапный процессинг, который к примеру на 1м этапе можно запустить 10 процессов и они быстро отработают, а на другом этапе только 1(типа консьюмера для сохранения)
когда нужен грид из серверов это отдельная тема, в основном для задач хватает одного сервера, и дальше одного процесса вылазить не будет

Google

Aleh
16.03.2017
14:38:06
так это
асинхронность
отдал респонс и сделал еще чего-нибудь

Sergey
16.03.2017
14:38:57
fpm finish request тот же самый эффект. отдал и дальше делаешь че тебе надо
асинхронность
вспомни что происходит на нодежс когда ты занимаешь 1 ядро чем-то на 100мс

Aleh
16.03.2017
14:40:23
не занимай лол)

Sergey
16.03.2017
14:40:24
а если на 1секунду?
ну збс)
>во время веб запроса тебе нужно опросить скажем 4 разных источника, которые возвращают здоровенный xml и тебе нужно их все обработать и вернуть юзеру
вот к примеру кейс от которого нода будет в восторге)

Aleh
16.03.2017
14:41:01
spawn и пускай кто-то там думает, что тебе надо

Roman
16.03.2017
15:02:24
Ребята, такой вопрос.
В одном куске проекта источник данных - рест апи. Была раньше база, но сейчас ребята переписали на микросервис.
Но мне надо этим всем управлять через админку. Раньше была Соната
Как лучше теперь все построить?

Heorhi
16.03.2017
15:09:43
Народ, подскажите, наличие на серваке HHVM я ведь могу проверить через service hhvm status ?

Roman
16.03.2017
15:10:55
hhvm —version можно

Sergey
16.03.2017
15:12:35

Roman
16.03.2017
15:13:53
там есть нюансы
например нужно разбирать разные хмл, загружать картинки и тому подобное
сервис не понимает аплоад, ему надо пихать айдишники картинок на сдн

Sergey
16.03.2017
15:14:35
ну тогда тебе нужно на сонате свои гриды делать

Heorhi
16.03.2017
15:14:45
hhvm —version можно
Спасибо. Получается у мну ничего нет. ubuntu@v4-demo-www-01:~$ hhvm —version
hhvm: command not found
Отлчино

Roman
16.03.2017
15:15:09

Sergey
16.03.2017
15:16:01
да, только самому писать много придется)
посмотри как сделан монга бандл, с рест будет подобное