Позвольте присоединиться ко всеобщему шуму про Google App Engine со слегка упорядоченным дампом своих мыслей последней пары дней.
Хорошо!
Питон, Питон, Питон. Само по себе то, что Google сделал массовый специализированный хостинг приложений именно с этим языком — это увесистый такой аргумент для бюрократов, которые не очень любят разбираться в деталях и брать на себя ответственность. Надеюсь теперь начинающим питонистам будет гораздо проще объяснять боссам, почему они пишут на этом "неизвестном" языке.
Хостинг WSGI-приложений — это очень нужная вещь в принципе. Не обязательно в том виде, в котором это сделано на GAE. Главное, что они, кажется, угадали с тем, что многим питонистам на хостинге не нужна тупая файловая система, где придется вручную писать запускающие скрипты. А нужна просто некая дырка, куда можно скормить свой хендлер. А с путями и прочей инфраструктурой пусть разбирается хостинг сам. Теперь уже как-то даже и странно, что так не делают все...
Такой реверанс в сторону Джанго — с явной поддержкой, копированием архитектурных решений в БД-библиотеке, использованием шаблонного движка — очень приятен. Хотя не думаю, что это сильно скажется на самом фреймворке. Мне это видится скорее признанием очевидного (sorry, guys!)
Хороший шанс поработать вживую с BigTable. Я, как давний непоклонник реляционных БД, очень рад, если многие разработчики перестанут автоматически думать про хранение данных в терминах реляционной алгебры и начнут смотреть в другие стороны.
Не особенно хорошо.
Питонья среда урезана практически до неюзабельности. Повспоминав короткое время, я понял, что практически ни один из моих проектов не смог бы работать на GAE. Где-то PIL был нужен — так оказывается нельзя библиотеки с сишным кодом использовать. В музыкальном сервисе кастомный HTTP-сервер на сокетах тоже реализовать было бы нельзя, потому что нельзя пользоваться собственно сокетами. Форум Cicero — в пролете из-за поиска Sphinx'ом, который хранит индексы в виде файлов... В общем, пока эта среда выглядит пригодной для простеньких чисто HTML'ных и javascript'овых mash-up'ов.
Впрочем, мне думается, что вот здесь-то большинство зияющих проблем починят. Просто будут со временем добавлять собственные "стерилизованные" для работы в ограниченной среде аналоги стандартных модулей. Сейчас о степени убогости судить, конечно, рано. Потому как это вообще-то бета :-).
Невозможно отлаживаться на сервере. Чем нетривиальней приложение, тем больше вероятность, что разница между средой на машине разработчика и на сервере начнет как-то сказываться. И тогда захочется влезть на сервер shell'ом, чтобы контроллировать процесс. Пока GAE предлагает только пакетную обработку: закачал, запустил, почитал лог.
"Вы можете использовать Джанго" — это, мягко говоря, преувличение. Даже если отвлечься от того, что вы не можете использовать половину самого Питона, то и с Джанго тоже полно проблем:
Отсутствие ORM'а замечают все. И тут же очевидную невозможность использовать админку, авторизацию и много другого contrib'а. А заодно и большу́ю часть сторонних приложений, которые под Джанго пишутся в расчете на то, что там будет родной ORM.
Эта ситуация, кстати, хорошо иллюстрирует, почему джанговская интегрированность, на которую любят безоглядно ругаться, на самом деле хорошая штука. Не будь ее — у нас бы был вот такой висящий в воздухе фреймворк, как GAE'шный Джанго, под который ничего нельзя надежно написать.
Из-за отсутствия ORM разработчикам GAE пришлось написать свой портированный вариант newforms. В итоге получается форк, который не будет развиваться за Джанго, и соответственно, еще больше удалять "Django-GAE" от "just Django".
Пугающе...
Здравствуй, здравствуй, старый "добрый" vendor lock-in. Пока что по всему выходит, что Гугл хочет, чтобы разработчики разрабатывали приложения не для себя, а для него:
- проприетарная среда не допускает легко переноса приложений на другие платформы, равно как и портирование существующих приложений к себе
- вы "легко и непринужденно" можете использовать базу пользователей Гугла, а не свою
- легкий порог входа привлекает начинающих программистов, что создает у них неосознанный громадный кредит доверия к "доброй маме" Гуглу, что бы тот в последствие ни делал
Меня это все пугало и раньше, когда вендор назывался на "M", а платформа на "W", пугает и сейчас. Закрытая платформа — плохо.
Еще точно и кратко про это у Тима Брея: Sharecropper Alert
"А я не поехал..."
Ну а мне приятно осознавать, что мне туда, в общем-то, и не зачем. Заведя когда-то собственный домен, я не понимал, зачем мне почта GMail, если у меня есть свой красивый адрес, IMAP и больше места, чем я смогу занять. Так же меня не впечатлил и Google Code, потому что subversion-сервер у меня тоже свой. Так же я пока буду свысока смотреть на GAE, потому что проблем с разворачиванием питоньего кода на softwaremaniacs.org у меня никаких нет. Ни в сложности, ни в деньгах.
Но понаблюдать за тем, во что вся эта идея превратится, конечно, интересно.
Комментарии: 34
Спасибо за пост.
Читал и внутренне соглашался. Действительно, привел в порядок и озвучил бОльшую часть ощущений от appengine.
Респект.
А как вы думаете, возможно ли их SDK развернуть на обычном Python-хостинге, который поддерживает long-running processes? Интересно, SDK лишь эмулирует их проприетарную платформу или полностью воспроизводит на Python?
Эдакий narod.ru по-google'ски получается :) Только с учётом 2008-го года.
SDK, конечно, развернуть где-то можно. Но только смысла нет. Во-первых, у вас не будет доступа к масштабируемому хранилищу Гугла (SDK хранит базу данных во временном файле), а во-вторых, если вы сами можете развернуть на хостинге питонью среду, то зачем вам вообще GAE? :-)
Ну гуглопочтой можно (и нужно =)) пользоваться и на своем домене: mail.maxidoors.ru.
А вот насчет привязанности к вендору — тут ты прав. Очень это все не нравится, лучше уж EC2 воспользоваться (который, правда, нехило так стоит).
Меня лично задолбало бороться со спамом. А тут это делают за меня. :-)
Тогда, когда я его заводил, спама столько не было, поверь :-). А сейчас есть Спамооборона.
Ну, я не настолько пессимистичен.
Что до сишных библиотек, то вполне понятно, почему это так. И не уверен, что тут объективно можно что-то с этим поделать. Для Java, например, такой проблемы не будет, потому что там практически все модули реализованы на ней самой. Та же дорога и для Python, и это правильно. Для особо жручих задач, типа PIL, думаю, придумают какую-нибудь связку. Например, вызов Java через обертку. Или внешний сервис по HTTP. Но согласись, если стоит задача беспрепятственного масштабирования, поддерживать зоопарк нативных библиотек - не очень благодарное дело.
Что до кастрированного Django, то, думаю, тут все должно закончиться реализацией QuerySet и менеджеров для GAE, и можно будет пользоваться обычными моделями и всем остальным. Т.е. текущая ситуация - временна.
Что до vendor lock-in. Не убедил. По сути, там не вижу ничего такого серьезного, что могло бы залочить приложение внутри GAE. DataStore API? Ну это практически калька с Django model/db API. Легко адаптируемая. Ну, использование Django в таком случае тоже можно расценить как лок-ин - там тоже много зависимостей. GQL? Это, фактически, стандартный SQL без JOIN. Конечно, в любом API/framework есть элемент лок-ина, но все ими тем не менее пользуются.
А, ну да, вот где лок-ин. Google Accounts. То тех пор пока там не заработал OpenID.
=) Я уже 4 года вожусь с разными почтовыми серваками, и когда меня это окончательно задолбало - я перевёл свою почту на gmail.
Они мне два месяца назад прислали письмо по типу "через неделю ваша спамооборона будет работать только для яндексового ящика, до свиданья". :-(
У меня тоже был свой домен и много места, но такого удобного интерфейса не было и в помине. :) Я ушел на gmail тогда с бата (именно так), их модель работы с почтой оказалась лично мне очень удобна.
Ну, к сожалению, в реальной жизни и так невозможно использовать админку, авторизацию и почти весь contrib...
А я все равно считаю что этот шаг Google большой прорыв для python'а. И повод повеселиться для нас. Так что предалагю поучаствовать в конкурсе и заодно проверить возможности проекта http://xenru.livejournal.com/116529.html
Девиз гугла надо было сделать таким: "Храните все свои данные на наших серверах". Меня это очень настораживает. Не знаю почему, но предчуствую что-то нехорошее...
Если чесно не помню провальных проектов у гугла, а если они и были то они остались под толщей удачных и особо ни кто о них не помнит...
Скорей всего гугл пойдет по следующему сценария:
Сервис будет бесплатным, но за это на сайте будет крутится контекстная реклама от гугл. Но в отличии от бесплатных хостингов, где с владельцем проекта не делятся прибылью от рекламы. Гугл будет делится, будет давать авторам сервисов заработать на своем проекте. Очень хорошая идея, заиметь на полудобровольной основе кучу питон программистов со всего мира. И тем самым только укрепить свою монополию в сети. Гугл уже давно не маленькая компания созданная студентами, которыми движет энтузиазм. Гугл это здоровенная корпорация, любое действие которой направлено на захват новых рынков и цель ее получать все больше и больше прибылей.
Так что желаю удачи в осваивании очередной, новой платформы от гугл. А я уж как-нибудь сам разверну все что мне надо на VPS. Стоит он по нынешним временам копейки.
ЗЫ Конечно для всех не желающих крутить гугл рекламу будет платный аккаунт. Но кто будет платить, если можно не платить. Да еще и зарабатывать.o
Gmail можно использовать на своем собственном домене http://www.google.com/a/
К теме работы на публику.
Мне вчера пришло предложение сделать проект на GAP :) И на фрилансерских сайтах стали появляться подобные предлоджения. Всё таки бренд на букву "Г" очень сильно и быстро прошибает мозги обывателей.
Сегодня детально читал доки по GAP, первое впечатление - маловато их. Быстро читается.
И еще один малозаметный факт - оно же еще в превью-версии, типа - бета или альфа. хм.
Да... Большой и страшный гугл.
Вот и А.Лебедев, на вопрос "кто, по-вашему, актуальный must die?" ответил: "Google через 5 лет." :)
Однако, думаю если идея не принесет ощутимой прибыли, этот GAP молча прикроют (как и кучу других проектов до него), так что я бы на него особо не рассчитывал.
Меня еще смущает пункт 5.2 в соглашении по использованию сервиса.
Вот текст:
Google reserves the right (but shall have no obligation) to pre-screen, review, flag, filter, modify, refuse or remove any or all Content from the Service.
Кстати, некие товарищи тут уже прикрутили к Google Accounts возможности OpenID провайдера =)
P.S. Хотя, пока он малость кривават =Ъ
To: Иван Сагалаев, Максим Деркачев
У меня комментарий по поводу vendor lock-in и использования базы пользователей Google. Где здесь lock-in? Никто не заставляет пользоваться их базой пользователей. Применяйте свою собственную систему, если хотите. Цитирую ответ DeWitt Clinton:
P.S. Иван, понравилась форма для предварительного просмотра комментария. Удобно. Одно замечание - форма медленно работает. В то время как на сайте Showdown всё довольно шустро.
Слово OpenID само по себе не является синонимом "единой авторизации". То, что кто-то экспортировал гугловые аккаунты через OpenID-сервер не делает их менее гугловыми. Интересно было бы в обратную сторону: если бы в гугловые сервисы можно было заходить по сторонним OpenID. Но для этого одного GAEшного приложения мало, для этого централизованные изменения в авторизационном механизме компании нужны. Это я как доктор говорю :-)
P.S. Я, впрочем, должен пояснить, что lock-in я вижу не столько в аккаунтах, сколько просто в специфичной среде разработки. Степень запирания эквивалентна степени дополнительных усилий, которые нужны для перетаскивания произвольного приложения между GAE и внешним миром.
Алексей, я как раз, coincidentally, ответил только что на этот вопрос :-).
А предпросмотр, наверное, не тормозит. Там стоит задержка в секунду на обновление после последнего нажатия на клавишу, как раз чтобы он не тормозил во время набора.
Иван, да именно эту секунду я и имею в виду. Может, стоит без неё? На сервисе jottit неплохо работает без задержки.
Открутил задержку, попробуем без нее. (Нужен явный Refresh страницы)
Хм... Вроде бы всё замечательно работает. Пробую жирный и курсив.
нафиг GAE нужно, если есть http://bells-n-whistles.net/
и это реклама
Igor Gorschal, провальных проектов у Гугла до жопы. Google Base, например. Google Earth. Blogger. Есть вообще невнятные проекты, про которые никто не слышал - посмотри на Википедии, удивишься.
Иван, неужели нельзя юзать ГАП как хостинг для данных?
2imgrey
нафик это всё нужно, если есть можно взять дешёвый дедик, и ставить там что душе пожелается. А то, что за 5 уе - так на firstvds за те же 5 уе VDS.
Почта хорошо фильтруется связкой Postgrey + SpamAsassin. Последний должен быть в не очень жёстком режиме, допускающем прохождение 2-3 спамов в день (реально их не будет, но добрые письма не порежет).
Я - за свободу. Для меня свобода выражается в том, что я root (естественно, не всегда) на серверах. Хочу, пользуюсь фичами гугла, не хочу - не пользуюсь, данные гуглу отдавать нафик-нафик. Кстати, недавно где-то было, что они запускают медицинский сервис, т.е. для хранения и share историями болезни. Так что Оруэлл был конечно прав, и гугл скоро будет знать всё про всех, да собственно он и сейчас практически всё знает - кука гугла практически со всех сайтов читается, а искать через что-то другое кроме гугла смысла нет.