1. Локальные приложения и утилиты командной строки
Сборщики и трансляторы
Пакетная обработка и сценарии отложенной обработки
Скрипты, CLI (интерфейсы командной строки)
Генерация документации, отложенное формирование отчетов
Сценарии тестирования для других систем
2. Серверы
Серверы веб-приложений и SPA
Серверы и API для мобильных приложений
Любые другие веб-API (RPC, JSON, REST)
Серверы сообщений и трансляция событий (чаты, игры, интерактив)
Заплаты на уже готовые системы, написанные на других языках, для реализации вебсокетов, SSE, лонг-пулинга и т.д., т.е. для затыкания дыр, для решения проблем в узких местах уже работающих систем.
CMS, публикация контента (просто ниша уже занята и в этой задаче нода не дает чего-то принципиально нового или сверх соблазнительного).
Массовая электронная коммерция и торговля (не применяется для массовых движков магазинов, но используется отдельными крупными компаниями для торговых и платежных задач в качестве дополнительного средства к уже имеющемуся ПО, по сути закрывает узкие места).
И плохо подходит:
Вычисления и моделирование, со скоростью математических операций нода и JS, как не типизированный язык, не дают хороших показателей
Мне не нравится обилие if. Как можно сократить конструкцию, используя switch case?
Следуя стандарту С/С++ -- никак. К тому же dist у вас -- float, а в кейсах оператора switch можно указать только целочисленные метки.
Но можно кучу if заменить на следующее: