• Авторизация


Web-разработка. Про платформы. 20-10-2010 17:48 к комментариям - к полной версии - понравилось!


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

1. PHP
2. ASP
3. Java

Определения крайне условны, поэтому чуть подробнее.

1. PHP
Точнее это связка технологий:
Apache в качестве web сервера
MySQL в качестве сервера БД
PHP - язык для обработки серверных сценариев

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

Минусы:
- уровень развития платформы с точки зрения современных программных методологий очень сырой. Объектная парадигма почти не развита. Лично для меня, работавшего с такими библиотеками классов как MFC и VCL, некоторые вещи кажутся просто каменным веком. Подобная ситуация с MySQL - ORACLE и MS SQL Server это все же уровнем выше, а то и двумя тремя.
- очень много всяческих библиотек и пакетов разработчиков. Из за неразвитости основы каждый хочет написать свое улучшение. В результате - зоопарк. Трудно выбрать то, что нужно.
- производительность. Пока не могу дать свою оценку, но вроде как считается, что данная платформа проигрывает в производительности остальным. Не знаю. Не проверял.
- удобство разработки. точнее неудобство. хотя возможно, я просто не натыкался на хорошие средства


Рекомендации:
Данную платформу можно рекомендовать для небольших проектов, сайтов компаний со строго определенным функционалом, личных блогов и пр. Т.е. для проектов, которые не требуют особой производительтности и могут быть реализованы одной коммандой разработчиков в ограниченное время и не подразумевают дальнейшей доработки. Хотя, в принципе, платформа самодостаточна, и сделать на ней можно что угодно.

2. ASP
Ну если быть точнее, то решения от Microsoft.
Сейчас это уже не просто ASP, а ASP.NET, использующий всю мощь .NET платформы для веб разработки.

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

Итак, кроме всем известной ОС Windows Microsoft выпускает средство для разработки программ для этой ОС, под названием Visual Studio.
Средство это включает в себя несколько "языковых" пакетов, объединенных в единую среду.
Я когда-то давно, лет 10-12 назад, использовал Visual C++ для разработки программ исследования речи.
Мне в то время Visual Studio не нравилась, т.к. продукты Borland (Delphi, C++ Builder) были объективно проще и лучше.
Что произошло дальше.
Пришла пора интернета и разработки для web.
Появились языки клиентских и серверных сценариев. Microsoft не осталась в стороне и придумала ASP - active server pages.
Больше всего, по принципу работы, не синтаксически, ASP похож на PHP и на JSP (Java Server Pages).
Примерно в то же время компания Sun выпускает технологию Java, с компилированным платформонезависимым исполняемым кодом, и откровенно говоря, уделывает Microsoft по всем направлениям.
Но Билл Гейтс не был бы самим собой если бы упустил тогда иннициативу с концами и, как альтернативу Джаве Майкрософт выпускает платформу .Net. Постепенно все средства разработки и сама идеология разработки "под платформу майкрософт" сместилась в сторону .net. И не просто сместилась, а успешно развивается.
Соответственно появился ASP.NET Который перенес на веб всю мощь классов .net
Модель обработки кода стала событийной, что ближе всего к тому, как было когда-то в Delphi (лично для меня это очень важно, все сразу встало на свои места)
Ну и Visual Studio постоянно развивается, появляется новый функционал.


Плюсы:
- поддержка Microsoft (ну это как вступить в ЕР) и единообразие всех технологий разработки
- грамотно организованная система классов .net
- замечательное средство разработки MS Visual Studio, которое постоянно развивается. Как следствие - удобный и быстрый процесс разработки
- интеграция с другими продуктами Microsoft на самом глубоком уровне (MS SQL Server, MS Office и др)
- большое количество хорошо структурированной документации и система курсов для разработчиков. Как следствие - их всегда можно найти.

Минусы:
- продукты для разработки стоят денег
- жесткая привязка к Windows платформе на серверах

Рекомендации:
Можно рекомендовать для любого проекта, при наличии необходимого бюджета. При грамотной организации процесса разработки можно безболезненно (относительно) развивать проект в рамках данной платформы с учетом текучки кадров и прочих форс мажорных обстоятельств. Имя Microsoft и изначальная корпоративная направленность помогают грамотно выстроить процесс общения заказчика и исполнителя.

3. Java
Рожденная корпорацией Sun изначально свободной, данная платформа развилась в огромное количество разнообразных вариантов.
Для веб разработки чаще всего используются Сервлеты и JSP в качестве северных сценариев, JavaScript стал стандартом де-факто для клиентских сценариев.
Но что получается сейчас? Sun теперь часть Oracle.
Продукты использующие Java технологии разнообразны не менее, чем PHP платформа, даже более.
Цены на эти продукты разнятся в десятки и сотни раз. Есть безплатные, есть очень дорогие.
И самое для меня во всей этой истории неприятное - очень мало актуальной документации. На русском языке ее почти нет вообще.
Исходя из этого плюсы и минусы:

Плюсы:
- грамотно построенная система ООП, без анахронизмов, изначально заточенная под сеть
- кроссплатформенность
- большое количество средств разработки
- поддержка ИТ монстров (Sun, Oracle, IBM)

Минусы:
- мало документации
- дорогие разработчики
- нет централизованной поддержки

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



Ну собственно описал, что хотел.
Ни в коем случае не ориентирую этот материал на специалистов.
Цель - помочь врубится в тему не очень опытному менеджеру проектов, вроде меня, который столкнулся с тематикой веб-разработки.
От специалистов, если таковые наткнутся на этот материал, жду комментариев, дополнений и исправлений косяков, которые несомненно в этом тексте имеются.
вверх^ к полной версии понравилось! в evernote
Комментарии (4):
Troublesome 20-10-2010-18:37 удалить
все это нельзя рассматривать без одной оговорки - количество грамотных специалистов (при их текучке то), способных реализовать идею на той или иной платформе, разное кол-во...
поэтому, если речь идет не об аутсорсинговой разработки у крупной компании, постоянно имеющий определенный штат специалистов, то выбор тут однозначно в пользу первого варианта...
особенно если проект требует дальнейшего развития и поддержки...

опять же про ресурсоемкость... надо трезво оценивать будущее проекта, а не исходить из того, что тот или иной запрос обрабатывается на пару миллисекунд быстрее...
если популярность будет очевидно сногсшибательной (а-ля одноклассники) - это одно, если на сайт будет приходить по 1000 человек в день - совершенно другое...
поэтому проще и дешевле это реализовать, скажем, на РНР, чем на Джаве...

ну и про Аякс неплохо было бы пару слов вставить ;-)
Eugene_Pichugin 20-10-2010-18:59 удалить

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


Не соглашусь в корне. Естественно, количество PHP разработчиков, оно больше, чем ASP.NET, и тем более Java. Но на PHP количество вариантов разработки оно больше. И если одно на другое поделить, то получится, что не всегда нужного спеца найти можно.
Пример:
Выбрали в качестве платформы для серьезного проекта какой-нибудь NetCat, который вроде бы в своей основе PHP несет. Приходит другой PHP программист, а он на Битриксе системы строил. Пока врубится, пока научится - время теряется.
С Джавой ситуация похожа в плане разнообразия.

А вот с Майкрософтом - средства разработки более менее едины.
Ну и плюс формализация процесса разработки у майкрософт и у джавы гораздо выше чем у PHP. Поэтому если прицеливаться надолго, то PHP лучше не брать. Или иметь программного архитектора, который будет кодеров строить по своему и держаться за него.
Eugene_Pichugin 20-10-2010-19:02 удалить
Исходное сообщение Troublesome

опять же про ресурсоемкость... надо трезво оценивать будущее проекта, а не исходить из того, что тот или иной запрос обрабатывается на пару миллисекунд быстрее...
если популярность будет очевидно сногсшибательной (а-ля одноклассники) - это одно, если на сайт будет приходить по 1000 человек в день - совершенно другое...
поэтому проще и дешевле это реализовать, скажем, на РНР, чем на Джаве...


Заранее оценить конечно же сложно. И тысяч до 100 в день я бы по поводу производительности вообще не заморачивался.
А на PHP действительно проще и дешевле. Но как только возникают вопросы качества, то технология проигрывает. Пример - те же Одноклассники, которые жутко тормозят. Либо, более успешный пример - Фейсбук, где несправляющийся PHP пришлось перекрыть промежуточным скомпилированным слоем.
Eugene_Pichugin 20-10-2010-19:04 удалить
Исходное сообщение Troublesome

ну и про Аякс неплохо было бы пару слов вставить ;-)



Обязательно расскажу, ибо вещь простая, а шуму вокруг нее много.


Комментарии (4): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Web-разработка. Про платформы. | Eugene_Pichugin - Настоящий джентльмен и программист... | Лента друзей Eugene_Pichugin / Полная версия Добавить в друзья Страницы: раньше»