(PHP/Perl/ASP) Выбор платформы для написания веб-сервисов

Романча Сергей
Дата: 25.08.2006 16:53:18
Выбор платформы для написания веб-сервисов (главные критерии: надежность, масштабируемость, скорость) – помогите определиться с выбором платформы

Из кандидатов:
1. Perl
2. PHP
3. ASP (ASP .NET)
4. Ruby, Python (другие?)...

Для написания небольших задач - наверное что лучше знаешь и что больше нравится - то и выбирай.
По крайней мере для небольшой задачи я бы так и сделал :)
А что лучше выбрать при больших нагрузках (исходим из того, что сервер свой и поставить туда можно что угодно)?

Если составить базовый список критериев, то получится:
1. Надежность (99,999%) и безопасность.
2. Масштабируемость.
3. Скорость.
4. Работа с большими нагрузками – большие объемы трафика, большое количество одновременно работающих пользователей.

По результатам поиска в интернете получается:
1. Самый надежный и безопасный - Perl. Следом - ASP, потом PHP (с безопасностью для него ситуация вроде довольно быстро меняется в лучшую сторону – благодаря PHP Security Consortium).
2. По масштабируемости - неясно. PHP активно используют крупные компании – к примеру Yahoo и JupiterMedia (http://www.citnews.ru/news/341/), про ASP встречал упоминания eBay.com. Идеальный вариант - чтобы в случае большой нагрузки можно было просто добавить новый сервер с минимальным переконфигурированием. Что в этом случае лучше?
3. По скорости - получается что Perl и PHP приблизительно одинаковы при использовании mod_perl и mod_php. А как в случае использования ASP .NET? Если разделить задачи на расчетные (скажем формирование контента) и выборки/занесения данных из базы?
4. Что здесь предпочтительней? Платформа на основе PHP/Perl или на основе ASP?


Конечно есть и другие не менее важные критерии:
1. Скорость написания кода.
2. Удобство отладки.
3. Сопровождение кода (тем-же или другим человеком).
4. Расширение функциональности действующей системы.
5. Наличие готовых стандартных библиотек "на все случаи жизни" (обработка XML, юникод и т.д.).

... вообщем полный цикл поддержки системы.

Как здесь обстоит дело? Если исходить из того, что это будет не пара скриптов, а система, которую будет разрабатывать команда (около 5-10 человек) в течении минимум полугода и потом она будет активно развиваться - что в этом случае предпочтительней?

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

Поделитесь пожалуйста вашим личным опытом - он самый ценный! :)
Если был опыт в разработке крупных систем (пусть они совсем не похожи на мета-поиск) - какие возникали проблемы, насколько они хорошо решались на разных платформах? В пользу чего в итоге был сделан выбор? По каким соображениям и критериям?

Спасибо за помощь!

P.S. Буду также благодарен за ссылки на статьи, обсуждения в форумах, проясняющие вопрос - возможно я что-то упустил при поиске информации.

Мой e-mail для приватных сообщений - rss354_собака_rambler_точка_ru
maXmo
Дата: 25.08.2006 18:45:17
Романча Сергей
Если составить базовый список критериев, то получится:
1. Надежность (99,999%) и безопасность.
2. Масштабируемость.
3. Скорость.
4. Работа с большими нагрузками – большие объемы трафика, большое количество одновременно работающих пользователей.
1. А операционная система?
3. варианты с компиляцией в байт-код не рассматриваешь? Это есть у пхп, руби, джавы (почему её не рассматриваешь?), .нет компилится в нечто напоминающее нативный код.
Романча Сергей
Дата: 25.08.2006 21:33:59
maXmo
Романча Сергей
Если составить базовый список критериев, то получится:
1. Надежность (99,999%) и безопасность.
2. Масштабируемость.
3. Скорость.
4. Работа с большими нагрузками – большие объемы трафика, большое количество одновременно работающих пользователей.
1. А операционная система?
3. варианты с компиляцией в байт-код не рассматриваешь? Это есть у пхп, руби, джавы (почему её не рассматриваешь?), .нет компилится в нечто напоминающее нативный код.


Насчет OS - если PHP/Perl - то тогда Linux, ASP - Windows. Вопрос что из этого наиболее подходящее.

Относительно Java - вопрос открыт. Если Java будет оптимальным выбором в данном случае - почему бы нет. У меня нет опыта, поэтому трудно сделать обоснованный выбор. Если у вас есть опыт - поделитесь пожалуйста. Спасибо!
Anjey aka PM
Дата: 26.08.2006 09:34:14
Романча Сергей

Если составить базовый список критериев, то получится:
1. Надежность (99,999%) и безопасность.
2. Масштабируемость.
3. Скорость.
4. Работа с большими нагрузками – большие объемы трафика, большое количество одновременно работающих пользователей.[/quote]
Итак:
1. Java
2. Java
3. Java (EJB, JBoss)
4. Java (EJB, JBoss)

[quot Романча Сергей]
Конечно есть и другие не менее важные критерии:
1. Скорость написания кода.
2. Удобство отладки.
3. Сопровождение кода (тем-же или другим человеком).
4. Расширение функциональности действующей системы.
5. Наличие готовых стандартных библиотек "на все случаи жизни" (обработка XML, юникод и т.д.).


1. Java
2. Java (JUnit Test Cases)
3. Java
4. Java
5. Java

Если приложение действительно серьезное.

ЗЫ: хочу заметить что mod_python и mod_perl также обеспечивают все вышеперечисленные пункты, но если говорить о масштабируемости, то в Java это делается значительно проще. PHP для серьезных нагрузок не катит однозначно, даже со всеми этими его оптимайзерами -- слишком слабенькие возможности по контролю жизненного цикла веб-сервера и запроса.
Романча Сергей
Дата: 26.08.2006 14:51:05
Возникла мысль сделать некий сборник мнений разных авторов - и выложить его в свободный доступ.
Думаю не я первый и не я последний интересуюсь этой темой - а так уже будет готов небольшой сборник мнений на эту тему.
Я думаю это будет очень полезная вещь - поскольку здесь будет показан опыт нескольких авторов, который высказывает именно свои соображения исходя из своего опыта, а не понаслышке.
Ну а мне в свою очередь хочется сделать полезное сетевому сообществу.

Что для этого нужно - просто высказать свое мнение. Приблизительная табличка (это мое мнение) - во вложении.
Лучше все содержание стереть, и заполнить своим - в произвольной форме. Это не обязательно будет табличка. Вообще пишете то, что считаете нужным (с чем вы сталкивались).

Я очень надеюсь что инициатива найдет поддержку с вашей стороны - с моей стороны - я буду "склеивать" ваши мнения, потом всю информацию оформлю и выложу в открытый доступ.
Кто уже публиковал свои мнения - я включу ваши мнения в документ. Если есть уточнения или возражения - высказывайте, я их обязательно учту.

Ключевые моменты:
1. Тема "Выбор платформы для веб на основе С++, Java, PHP, Perl, ASP" (возможны другие языки).
2. Каждый пишет только то, что считает нужным (т.е. нет задачи описать все). Это может быть просто пару абзацев о вашем инструменте и о опыте использования.
3. Это ваше субъективное мнение. Задача читателя - сформировать свое объективное мнение.
4. Напишите также кратко кто вы и чем занимаетесь и откуда. Cвоеобразная реклама авторам в благодарность за потраченное время :)

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

Можно отвечать в форуме, или если удобней - то на мою почту (rss354_собака_rambler_точка_ru) - я обязательно пришлю подверждение о получении письма.
Романча Сергей
Дата: 03.09.2006 17:00:51
Получилось не так обширно как хотелось, но тем не менее есть информация к размышлению.
Комментарии и исправления приветствуются!

Спасибо всем участникам!

Романча Сергей.
Мой e-mail для приватных сообщений - rss354_собака_rambler_точка_ru
Sarin
Дата: 03.09.2006 23:59:22
Советую Java.

Большой выбор платформ, большой выбор контейнеров, стабильность и высокая скорость.

Java рулит!