LINUX.ORG.RU

Выбора тред: Node.js vs Go

 ,


1

5

Дорогой ЛОР, помоги выбрать.

Есть сайд-проект X который я писал пару месяцев, функционально он уже готов и делает, то что он должен делать, если вкраце то это веб-приложение обвязка для уведомлений о любых музыкальных группах, что бы быть вкурсе всех релизов всех групп, что когда вышло, что бы не пропускать альбомы/еп/итд, думаю потом сделать тоже самое, для сериалов с доставкой торрента (но тут вопрос, что последние законы с этим не дружат, а с музыкой все ок).

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

Написано все это дело на good old php + laravel, потестировав это дело под нагрузкой я остался не доволен, учитывая что мне потом понадобится мобильное приложение которое будет работать с API, все это дело выйдет в копеечку, да и response time как-то не очень, даже если это дело все оптимизировать я улучшу результат в 2-5 раз, но это все равно мало.

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

Под мои задачи подходят Node.js и Golang, что выбрать? что лучше? по результатам моих тестов предположительно подходят оба.

Не предлагать:
Ruby, Python - производительность будет такой же.
Java, Scala - оставьте это банкам, скорость разработки слишком низкая, IDE на Java тормозят.
C# - тут все понятно, мне он импонирует, вот только он от MS, MSVS тормозит и только под оффтопиком.
Ну и всякую другую полудохлую минорщину.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Выбора тред: говно vs говно

По сабжу: Common Lisp.

anonymous
()

Из указанных двух говн, Go - меньшее говно.

Но производительность PyPy будет всяко выше %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Но производительность PyPy будет всяко выше %)

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

umren ★★★★★
() автор топика

Node.js vs Go

Go не видел, но хуже ноды он вряд ли будет, поэтому Go.

Java, Scala - оставьте это банкам, скорость разработки слишком низкая

Ха-ха-ха

ya-betmen ★★★★★
()
Ответ на: комментарий от anonymous

Clojure

Java

Haskell

я не знаю что такое монады, так что не вариант

umren ★★★★★
() автор топика

Node.js vs Go
IDE на Java тормозят.

вы таки планируете найти годную IDE для сабжа не на Java?

dib2 ★★★★★
()

думаю потом сделать тоже самое, для сериалов с доставкой торрента

вот прямо сегодня такое искал, ибо начал 4 сериала в параллель - западло контролировать руками

dib2 ★★★★★
()
Ответ на: комментарий от dib2

вы таки планируете найти годную IDE для сабжа не на Java?

Sublime text

umren ★★★★★
() автор топика
Ответ на: комментарий от dib2

Я об этом много думал, что бы не делать ручками (надоело), думаю после версии с музыкой добавлю такой функционал если можно избежать проблем с законом.

umren ★★★★★
() автор топика

думаю, с нодой будет проще, но я тоже go хочу попробовать в ближайшем будущем :)

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от anonymous

С чего бы это? живое, очень живое.

umren ★★★★★
() автор топика
Ответ на: комментарий от heisenberg

это почти что node.js на яве

зачем мне 'почти что' да еще и на яве, проще уж ноду использовать в таком ключе

umren ★★★★★
() автор топика

а вообще глупо все это, ты сначала из пхп выжми что можно, потом уже про другие технологии думай. Кусов говна можно и на node.js написать (кстати, там это намного проще)

heisenberg ★★
()

Сначала сделай дизайн и все такое. Перевести его на другую платформу еще успеешь.

deterok ★★★★★
()
Ответ на: комментарий от heisenberg

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

umren ★★★★★
() автор топика
Ответ на: комментарий от deterok

а вообще глупо все это, ты сначала из пхп выжми что можно

переписывать месяц, не больше в режиме part-time, а потом с такой возможностью будет сложно, по моим подсчетом выжимания будет не хватать, не хочу сильно тратиться на железо, те штуки что я выбрал намного экономнее (эффективнее per cost).

umren ★★★★★
() автор топика
Ответ на: комментарий от deterok

Сначала сделай дизайн и все такое

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

umren ★★★★★
() автор топика

на эрланге пиши. глагне на эрланге само то.

anonymous
()

что бы потом не париться с кластером

Месье, позвольте узнать, вы уже личный дата-центр построили? Сколько посетителей же у вас, что вам уже КЛАСТЕР мерещится? И ещё:

Ruby, Python - производительность будет такой же.

Если руки из жопы растут - то да. А если сделать бекенд с грамотными быстрыми запросами к БД и фронтенд на backbonejs ничего тормозить не будет, зато время разработки сократится в разы. Впрочем, пишите на GoLang или Scala. Модным быть модно.

Alve ★★★★★
()
Ответ на: комментарий от umren

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

deterok ★★★★★
()
Ответ на: комментарий от Alve

А если сделать бекенд с грамотными быстрыми запросами к БД и фронтенд на backbonejs ничего тормозить не будет, зато время разработки сократится в разы

чем это будет отличаться от PHP с AngularJS? ничем, а в случае с модными технологиями я получаю нахаляву х10+ буст и смогу спокойно жить на одном дидеке и обслуживать людей в 30-50ms с мобильного АПИ и сайта одновременно.

umren ★★★★★
() автор топика

Ты бы разобрался, что именно тормозит «под нагрузкой». Поставь nginx впереди (если еще не сделал), все запросы к БД поменяй на заглушки, и проверь еще раз. Если все в порядке (а все будет в порядке, если не под апачем сидишь), то вертай базу назад, и смотри, кто конкретно мешает наслаждаться жизнью. Это явно не PHP. Что-то я не верю, что тебе нужно больше производительности, чем 90% интернета.

anonymous
()
Ответ на: комментарий от anonymous

Ты бы разобрался, что именно тормозит «под нагрузкой»

nginx стоит, запросы к БД кешировать не получится так как постоянно нужны уникальные (свежак) выборки, данные меняются часто, у каждого пользователя свой набор данных. тормозит сам прогон php со всеми зависимостями/либами банально, бд терпит, а если не будет то можно частично слить в мемкеш или редис для разгрузки, видно будет.

но проблема то в том, что пхп банально медленее намного работает чем V8/Go

umren ★★★★★
() автор топика
Ответ на: комментарий от umren

Вот не верю, что тормозит именно он. Надо проверить. И именно поэтому для нагрузочного теста берешь один route к серверу (localhost/get/track/2), и заменяешь все запросы к базе на что-нибудь вроде «return {{ нужный объект} }};», минуя все соединения. Будто БД всегда отдает этот ответ.

Получается, пришел запрос от клиента, он вызвал PHP, и тот сразу же вернул результат, не общаясь с внешними ресурсами.

Если стресс-тест показал, что все медленно ползает и ни разу не работает, тогда да, тормозит PHP с либами, и пора переползать на что-то другое.

Но очень высокие шансы, что здесь все будет в порядке. Тогда останется две вещи: общение с БД по сокету/сети и работа ORM-а. ORM, опять же, на этом шаге можно поменять на нативные вызовы php (по скорости это будет то же самое, что и в других языках). Если тормозит — проблема в БД, оптимизируй. Если не тормозит — то или выкидывать ORM, или только сейчас менять платформу.

Достоинство Go/Node — нет лишних системных процессов, но здесь главный плюс в экономии памяти. Чем дальше странички от «Hello, World!», тем меньше это преимущество.

anonymous
()

Ты хоть понимаешь, что несёшь? Каким макаром скорость разработки на Scala+Play может быть ниже, чем на PHP?

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Ты хоть понимаешь, что несёшь? Каким макаром скорость разработки на Scala+Play может быть ниже, чем на PHP?

Надеюсь ты понимаешь, что между компиляцией и нажатием F5/LiveReload есть огромная разница в получении фидбека при разработке, а когда кода становится больше, то Scala там много секунд крутится, разве нет?

кроме того это опять же Java и тормозные IDE + перспективы для изучения Scala очень туманны для меня

umren ★★★★★
() автор топика
Последнее исправление: umren (всего исправлений: 1)

Бери Clojure. Годнота неимоверная

kovrik ★★★★★
()
Ответ на: комментарий от umren

Не работает с трешкой

Работает ведь. PyPy3 уже вышел.

это непрактичный вариант, предлагать не нужно.

Если никто не будет предлагать, то он навсегда останется «непрактичным вариантом».

Хотя, я думаю, про то, что он производительнее Go, — это был сарказм.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Если никто не будет предлагать, то он навсегда останется «непрактичным вариантом».

Это замкнутый цикл, его время ушло, он умер толком не родившись, думаю проект забросят через n лет, где n не больше 5

umren ★★★★★
() автор топика
Ответ на: комментарий от RedPossum

Но вот почему ты считаешь что go будет быстрее для разработки?

Go изучается за вечер-два, стандартная библиотека дает 80% изкаробки что нужно в вебе, код легко читается.

Scala НЕ читается, изучается за 100500 лет, Play единственный «адекватный» фреймворк (Lift вообще ужас), на Go - много вариантов опять же.

p.s. ну и забыл, что компилятор в 100 раз быстрее у Go. p.p.s для меня еще важно не иметь дело с IDE на Java

umren ★★★★★
() автор топика
Последнее исправление: umren (всего исправлений: 2)
Ответ на: комментарий от umren

поделись ресурсом, где с музыкой такое. Хотелось бы попробовать.

Deleted
()
Ответ на: комментарий от umren

Clojure + Luminus framework.
IDE - Vim / Emacs / IDEA (Cursive plugin) / Light Table / Night Code

kovrik ★★★★★
()

Scala - скорость разработки слишком низкая

ахахахаха!

По теме: это означает, что ты недостаточно хорошо осилил инструмент и сопутствующую инфраструктуру.

ymn ★★★★★
()
Ответ на: комментарий от ymn

это означает, что ты недостаточно хорошо осилил инструмент и сопутствующую инфраструктуру

А я не собираюсь выделять месяцы на ее осиливание, представляешь? зачем мне делать что-то Х*Y времени, если я получу тоже самое за Х времени? где Y = Scala Factor

umren ★★★★★
() автор топика
Последнее исправление: umren (всего исправлений: 1)
Ответ на: комментарий от ymn

Скорость разработки на scala компенсируется тормознутостью IDE и компилятора.

crowbar
()
Ответ на: комментарий от umren

между компиляцией и нажатием F5/LiveReload есть огромная разница в получении фидбека при разработке

В смысле, что если компиляции нет, то и фидбека тоже не будет? Да, понимаю.

Java и тормозные IDE

Emacs тормознутый?

перспективы для изучения Scala очень туманны для меня

Вообще не понял.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Вообще не понял

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

umren ★★★★★
() автор топика
Последнее исправление: umren (всего исправлений: 1)

Python - производительность будет такой же.

Ню-ню, tell me more. ;) Я пистон хоть и не люблю, но должен отдать ему должное. Нагрузку держит.

По теме — наверно всё таки Go.

beastie ★★★★★
()

Python - производительность будет такой же.

Ну и зря. Python + Bottle.py / Flask в данном случае по-моему идеально подходит.

ktan ★★★
()

На Node.js на проекте сложнее чятика или прокси получится сложно поддерживаемое мессиво из калбаков.

PolarFox ★★★★★
()
Ответ на: комментарий от umren

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

Это в жабоскрипте-то мало тяжёлого наследия? Или в го?

Ни одна технология не живёт сама по себе. Вообще.

Miguel ★★★★★
()
Ответ на: комментарий от dib2

начал 4 сериала в параллель - западло контролировать рукам

tvfedor.ru как вариант, пока ТС свое выпустит.

Medar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.