Что первое приходит на ум среднестатистическому ИТ-специалисту, когда его спрашивают про web-разработку и связанные с ней технологии? Рискну предположить, что с очень большой вероятностью первой мыслью будет Apache + MySQL + PHP. Разумеется, это — допущение. Но со статистикой спорить довольно сложно: достаточно начать искать web-разработчика и посчитать соотношение PHP-программистов ко всем остальным. Или, к примеру, задаться вопросом, где разместить свой будущий проект, и посмотреть какие решения предлагают своим клиентам хостинговые площадки. Стек LAMP — это мейнстрим в технологиях разработки для web.
Я не профессиональный web-разработчик, в том смысле, что это не является моей основной работой. Но когда мои клиенты хотят сайт, или он уже есть, но что с ним делать — не понятно, они идут ко мне. Для них я — консультант, координатор разработки и администратор в одном лице. Мои клиенты — частные лица и малый бизнес, и их требования в общем случае можно свести к трём пунктам: красиво, быстро и недорого. Я опущу вопрос красоты, т. к. для каждого он очень индивидуален, трудно подобрать метод оценки «красивости», и вообще это тема для отдельного бесконечного обсуждения. А вот со скоростью и ценой всё значительно проще — исходя из этих требований сайты как правило строятся на готовых CMS, потому что это быстро, модули расширения как правило полностью покрывают запросы заказчика, а готовый продукт работает у большинства хостеров.
Мне приходилось работать с разными CMS: и с открытыми решениями, и с коммерческими коробочными продуктами, и с самописными системами web-студий. Их все объединяет универсальность, модульная архитектура для добавления функционала, акцент на скорость разработки. И у всех у них одни и те же недостатки, вытекающие из перечисленных достоинств: монструозность, проблемы совместимости модулей расширения друг с другом, скорость работы.
Поэтому когда концепция «А не завести ли мне личный блог?» трансформировалась в реальные действия, не смотря на мою любовь к Drupal, я решил его не использовать, а писать код с чистого листа, чтобы он был лёгок, быстр и красив. Немаловажную роль в этом сыграл Udacity, познакомивший меня с Python и Google App Engine.
Python меня покорил. Он прост и логичен. Его легко читать, на нём легко писать новичку. Замечу, что я рассматриваю его именно с позиции новичка, впервые с ним столкнувшегося, и сравниваю свои впечатления с уже знакомым мне PHP. Для меня Python оказался понятнее и ближе синтаксически и стилистически, нежели PHP. Писать на нём — удовольствие.
App Engine удобен. Удобен для разработчика. Задумайтесь, кем приходится быть web-программисту для запуска проекта, если он не работает в команде, где есть отдел технической поддержки? В одиночку он — и администратор web-сервера, и администратор баз данных, и системный администратор. Разработчики со стажем могут возразить, мол, это не проблема, — окружение мы в любом случае под себя настраиваем и разбираться в этом нужно уметь. Вот только когда разработка закончена, приходит время развёртывания, и тут опять надо настраивать всё то же самое, но уже с упором на стабильность и безопасность. А пройдёт ещё немного времени, и успешный проект заставит задуматься о масштабируемости. App Engine избавляет от всего этого. Для разработки нужен только интерпретатор Python и App Engine SDK. Все настройки приложения в одном файле. Развёртывание нажатием одной кнопки. После запуска нас ждёт автоматическое масштабирование ресурсов и голова, свободная от мыслей о настройке безопасности на уровне сервера и поддержке физической инфраструктуры.
Во второй части: вперёд к практике — web.py, Datastore и Memcache.
Автор: wombatonfire