Вибір інструментарію для написання middlware-сервера. М-м-м-м?
Обговорюється створення деякого проєкту, в числі складових частин якого передбачається такий собі middlware-сервер (application server? чи як би то краще означити...) в якості проміжного шару між SQL-сервером і HTTP-сервером. На цьому рівні буде оброблятись «бізнес-логіка».
Проєкт має бути високонагружений, але коли виникне ця висока нагрузка — хтозна... ймовірно, далеко не одразу. Натомість швидкість запуску ядра системи та можливість уточнення і відладки клієнтських інтерфейсів — видається ключовим параметром на першому етапі розробки.
Відтак, зробив коротесенький огляд можливостей для потенційного замовника. Може, ще кому було би цікаво. Тема, звісно, вкрай дискусійна. Я — представляю точку зору perl-розробника.
Можливі варіянти бачу наступні.
Perl + C/C++
Цей варіянт мені найближчий, звісно ж. Швидкодію завжли можна буде забезпечити переписуванням критичних фраґментів коду на C, инші відомі недоліки перла — проблеми з графічним інтерфейсом і зі створенням автономного бінарного коду — несуттєві для нашої задачі. Чув я і про «протікання thread’ів» у перлі — ну, тут можна обійтись і fork’ами (а коли притисне — перескакувати на C, знову ж таки). Попри те, що останнім часом perl дещо втрачає популярність — маю колеґ саме в perl-середовищі — так що буде з ким знайомим-перевіреним почати роботу. Ще один плюс перла — багатющий наявний набір бібліотек.
Всі инші компоненти системи, звісно ж, також пишуться на цій зв’язці інструментів.
PHP (+ C/C++ ?)
Я не шанувальник цієї системи — мені PHP видається чимось типу VisualBasic’a для серверів — все в ньому є, але якось трохи попсово... І популярність PHP — радше підтверджує цю точку зору. Так що я би не хотів робити сервер (навіть Web-сервер) на основі PHP — є, вважаю, кращі варіянти.
Java, Python, C#, Ruby...
Хороші і поважні системи з одним, як для мене, суттєвим недоліком — порівняно велика складність їх освоєння, по відчуттю, не окупляється якимись принциповими перевагами над відомими мені Perl/C/PHP/JS.
node.JS + C/C++
node.JS — це автономний runtime-движок для мови з JS-синтаксисом, розрахований, на відміну від бібліотек типу AJAX чи jQuery, для роботи будь-де — зокрема, на серверах. Для довідки — бо це зовсім нова система:
nodejs.ru
nodejs.org
habrahabr.ru/blogs/nodejs/118310
Node.JS, як знаю, стрімко набирає популярність. Очевидні плюси — легкість освоєння, оскільки сама по собі мова цієї системи — це загальновідомий JS, і, відповідно, можливість пошуку нових розробників на підтримку такої системи — серед будь-яких веб-програмістів, скажімо так, Ну й, звісно, уніфікація коду клієнтської та серверної частин.
Недолік node.JS — новизна, ризик несподіваних проблем і того, що нові версії node.JS-движка можуть вимагати змін в існуючому прикладному коді.
***
Отже, резюме видається очевидним :-) Почати розробку з Perl’а, а далі визначитись з варіянтами розширення, в якості яких варто розглядати C/С++ і/або node.JS.
А що б инше Ви хотіли почути від perl-розробника? :-)
P.S. Чи я все переплутав?
37 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів