Доброго дня! Мне требуется написать серверное приложение на linux для организации вычислений и работы с баз данными. В идеале это должен быть какой нибудь демон который выполняет заданный функционал, реализует интерфейс для пользователя и.т.д. Нагрузка со стороны пользователей небольшая, больше на вычисления в тихом режиме.
Вопрос вот в чем, хороша ли нода под серверный продакшен? Просто я ее пробовал как в электрон-десктоп приложениях, и там еще более менее можно что-то на ней делать. Другое дело сервак и вычисления, управление клинтами-агентами. Опыта не хватает, кроме js ничего не знаю. Уверен что Си идеально подойдет как для линукс так и для демонов-продакшенов, но мне долго придеться его изучать на уровень того что я могу на ноде(она проще раз в 100).
Rerurk, Go требует серьезного уровня подготовки. Кроме того его целевое назначение - высокоинтенсивные сетевые приложения. Тут приложение с условно нулевой нагрузкой и пользовательским интерфейсом. Я, конечно, люблю Go, но не его задача абсолютно
Rerurk, то для чего язык был создан требует глубокого понимания сетевых протоколов, работы процессора, компилятора и сопроцессов. То что Го используют для не подходящих под него задач криворукие говнокодеры я в расчет просто не беру. Эти задачи можно и на калькуляторе делать
Иван Шумов, не требует он никакого понимания и создан ровно для того, для чего и используется. Глубокого понимания работы процессора и сетевых протоколов требует задача, а не язык. Если для задачи глубокая оптимизация не является необходимой, значит делать её не нужно, ровно как и необязательно знать, как это делать.
Иван Шумов, есть большая разница между плохим разработчиком и хорошим в своей сфере. Человек может отлично уметь программировать бизнес процессы, писать по SOLID и DDD, но поверхностно знать работу процессора и наоборот. К сожалению, я тоже насмотрелся. Невозможно знать всё и сразу. И тем более, невозможно на рынке найти таких людей за адекватные деньги.
Реально сделать на чём угодно. Но нода не очень-то любит "вычисления", если они CPU. Особенно неудобно она масштабируется на ядра процессора. Если у тебя 95% — IO задачи, то нода вполне ок. Но с её деплоем на клиенты тоже будут проблемы (т.к. нужна нода, sic!). Самым простым решением видится golang, т.к. он отлично скейлится на ядра, быстрее ноды и поставляется единым бинарником без зависимостей, изучается за неделю, если переходить с других языков.
ettaluni, у ноды электрон — это не веб интерфейс, а нативное приложение с браузером внутри. На го можно реализовать веб-сервер, на который можно зайти из обычного браузера.
Inviz Custos, Ну, так запаковать можно что угодно, например питон. Только у подобных утилит всегда есть несколько "но" из-за которых их использование под вопросом
Нет языка лучше чем тот, который ты знаешь. Это золотое правило. Будет ли код лучшим - вопрос спорный, на таком уровне понимания все-равно качественной реализации не получить. Хотя она может работать. Вопрос скорее в том - хочется ли потратить (и сколько) времени на изучение второго языка?
Да, проблема в том что я не могу выбрать. Писать дальше на на ноде уже уровня серверные приложения хайпануть горя с ней или же пойти в С хайпонуть горя сейчас)))
По идее программу уже можно писать сейчас, я сомневаюсь что смогу Си и плюсам быстро обучиться
Иван Шумов, Насколько знаю много пакетов под linux в том числе и какие либо серверные пишут именно на С\С++. Даже десктоп приложения с python на си переписывают, ну когда развитие идет.
Мне на клиентские вообще пофигу на чем писать, я бы даже вопрос не задавал писал на ноде и все.
ettaluni, да нифига. Большая часть софта сегодня требует кросплатформенности. В этом мире старичок Java повелевает. Ну еще Kotlin начинает заходить. C\C++ используют там где нужно выжать максимум из железа: игры, графические и видео редакторы, iot