Позвольте присоединиться ко всеобщему шуму про 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 у меня никаких нет. Ни в сложности, ни в деньгах.
Но понаблюдать за тем, во что вся эта идея превратится, конечно, интересно.
Комментарии: 28
Юревич Юрий
10.04.08 06:08
Спасибо за пост.
Читал и внутренне соглашался. Действительно, привел в порядок и озвучил бОльшую часть ощущений от appengine.
Респект.
Данил
10.04.08 09:51
А как вы думаете, возможно ли их SDK развернуть на обычном Python-хостинге, который поддерживает long-running processes? Интересно, SDK лишь эмулирует их проприетарную платформу или полностью воспроизводит на Python?
igorekk
10.04.08 10:05
Эдакий narod.ru по-google'ски получается :) Только с учётом 2008-го года.
Иван Сагалаев
10.04.08 10:20
SDK, конечно, развернуть где-то можно. Но только смысла нет. Во-первых, у вас не будет доступа к масштабируемому хранилищу Гугла (SDK хранит базу данных во временном файле), а во-вторых, если вы сами можете развернуть на хостинге питонью среду, то зачем вам вообще GAE? :-)
Макс Лапшин
10.04.08 10:22
Ну гуглопочтой можно (и нужно =)) пользоваться и на своем домене: mail.maxidoors.ru.
А вот насчет привязанности к вендору — тут ты прав. Очень это все не нравится, лучше уж EC2 воспользоваться (который, правда, нехило так стоит).
Александр Соловьёв
10.04.08 11:23
Меня лично задолбало бороться со спамом. А тут это делают за меня. :-)
Иван Сагалаев
10.04.08 11:28
Тогда, когда я его заводил, спама столько не было, поверь :-). А сейчас есть Спамооборона.
Максим Деркачев
10.04.08 12:17
Ну, я не настолько пессимистичен.
Что до сишных библиотек, то вполне понятно, почему это так. И не уверен, что тут объективно можно что-то с этим поделать. Для Java, например, такой проблемы не будет, потому что там практически все модули реализованы на ней самой. Та же дорога и для Python, и это правильно. Для особо жручих задач, типа PIL, думаю, придумают какую-нибудь связку. Например, вызов Java через обертку. Или внешний сервис по HTTP. Но согласись, если стоит задача беспрепятственного масштабирования, поддерживать зоопарк нативных библиотек - не очень благодарное дело.
Что до кастрированного Django, то, думаю, тут все должно закончиться реализацией QuerySet и менеджеров для GAE, и можно будет пользоваться обычными моделями и всем остальным. Т.е. текущая ситуация - временна.
Что до vendor lock-in. Не убедил. По сути, там не вижу ничего такого серьезного, что могло бы залочить приложение внутри GAE. DataStore API? Ну это практически калька с Django model/db API. Легко адаптируемая. Ну, использование Django в таком случае тоже можно расценить как лок-ин - там тоже много зависимостей. GQL? Это, фактически, стандартный SQL без JOIN. Конечно, в любом API/framework есть элемент лок-ина, но все ими тем не менее пользуются.
Максим Деркачев
10.04.08 12:23
А, ну да, вот где лок-ин. Google Accounts. То тех пор пока там не заработал OpenID.
Александр Соловьёв
10.04.08 12:36
=) Я уже 4 года вожусь с разными почтовыми серваками, и когда меня это окончательно задолбало - я перевёл свою почту на gmail.
Они мне два месяца назад прислали письмо по типу "через неделю ваша спамооборона будет работать только для яндексового ящика, до свиданья". :-(
http://yakovis.livejournal.com/
10.04.08 12:37
У меня тоже был свой домен и много места, но такого удобного интерфейса не было и в помине. :) Я ушел на gmail тогда с бата (именно так), их модель работы с почтой оказалась лично мне очень удобна.
cadmi
10.04.08 12:41
Ну, к сожалению, в реальной жизни и так невозможно использовать админку, авторизацию и почти весь contrib...
Михаил
10.04.08 14:18
А я все равно считаю что этот шаг Google большой прорыв для python'а. И повод повеселиться для нас. Так что предалагю поучаствовать в конкурсе и заодно проверить возможности проекта http://xenru.livejournal.com/116529.html
alec
11.04.08 22:02
Девиз гугла надо было сделать таким: "Храните все свои данные на наших серверах". Меня это очень настораживает. Не знаю почему, но предчуствую что-то нехорошее...
Igor Gorschal
12.04.08 20:15
Если чесно не помню провальных проектов у гугла, а если они и были то они остались под толщей удачных и особо ни кто о них не помнит...
urlname
14.04.08 03:39
Скорей всего гугл пойдет по следующему сценария:
Сервис будет бесплатным, но за это на сайте будет крутится контекстная реклама от гугл. Но в отличии от бесплатных хостингов, где с владельцем проекта не делятся прибылью от рекламы. Гугл будет делится, будет давать авторам сервисов заработать на своем проекте. Очень хорошая идея, заиметь на полудобровольной основе кучу питон программистов со всего мира. И тем самым только укрепить свою монополию в сети. Гугл уже давно не маленькая компания созданная студентами, которыми движет энтузиазм. Гугл это здоровенная корпорация, любое действие которой направлено на захват новых рынков и цель ее получать все больше и больше прибылей.
Так что желаю удачи в осваивании очередной, новой платформы от гугл. А я уж как-нибудь сам разверну все что мне надо на VPS. Стоит он по нынешним временам копейки.
ЗЫ Конечно для всех не желающих крутить гугл рекламу будет платный аккаунт. Но кто будет платить, если можно не платить. Да еще и зарабатывать.o
Boris
14.04.08 11:34
Gmail можно использовать на своем собственном домене http://www.google.com/a/
дядя Вова
14.04.08 18:20
К теме работы на публику.
Мне вчера пришло предложение сделать проект на GAP :) И на фрилансерских сайтах стали появляться подобные предлоджения. Всё таки бренд на букву "Г" очень сильно и быстро прошибает мозги обывателей.
Сегодня детально читал доки по GAP, первое впечатление - маловато их. Быстро читается.
И еще один малозаметный факт - оно же еще в превью-версии, типа - бета или альфа. хм.
Денис Зайцев
15.04.08 10:53
Да... Большой и страшный гугл.
Вот и А.Лебедев, на вопрос "кто, по-вашему, актуальный must die?" ответил: "Google через 5 лет." :)
Однако, думаю если идея не принесет ощутимой прибыли, этот GAP молча прикроют (как и кучу других проектов до него), так что я бы на него особо не рассчитывал.
Alexey Artamonov
15.04.08 15:52
Меня еще смущает пункт 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.
Maverick Crank GRey
16.04.08 10:37
Кстати, некие товарищи тут уже прикрутили к Google Accounts возможности OpenID провайдера =)
P.S. Хотя, пока он малость кривават =Ъ
Alexey Shamrin
16.04.08 10:53
To: Иван Сагалаев, Максим Деркачев
У меня комментарий по поводу vendor lock-in и использования базы пользователей Google. Где здесь lock-in? Никто не заставляет пользоваться их базой пользователей. Применяйте свою собственную систему, если хотите. Цитирую ответ DeWitt Clinton:
P.S. Иван, понравилась форма для предварительного просмотра комментария. Удобно. Одно замечание - форма медленно работает. В то время как на сайте Showdown всё довольно шустро.
Иван Сагалаев
16.04.08 10:54
Слово OpenID само по себе не является синонимом "единой авторизации". То, что кто-то экспортировал гугловые аккаунты через OpenID-сервер не делает их менее гугловыми. Интересно было бы в обратную сторону: если бы в гугловые сервисы можно было заходить по сторонним OpenID. Но для этого одного GAEшного приложения мало, для этого централизованные изменения в авторизационном механизме компании нужны. Это я как доктор говорю :-)
P.S. Я, впрочем, должен пояснить, что lock-in я вижу не столько в аккаунтах, сколько просто в специфичной среде разработки. Степень запирания эквивалентна степени дополнительных усилий, которые нужны для перетаскивания произвольного приложения между GAE и внешним миром.
Иван Сагалаев
16.04.08 10:57
Алексей, я как раз, coincidentally, ответил только что на этот вопрос :-).
А предпросмотр, наверное, не тормозит. Там стоит задержка в секунду на обновление после последнего нажатия на клавишу, как раз чтобы он не тормозил во время набора.
Alexey Shamrin
16.04.08 11:01
Иван, да именно эту секунду я и имею в виду. Может, стоит без неё? На сервисе jottit неплохо работает без задержки.
Иван Сагалаев
16.04.08 11:06
Открутил задержку, попробуем без нее. (Нужен явный Refresh страницы)
Alexey Shamrin
16.04.08 11:19
Хм... Вроде бы всё замечательно работает. Пробую жирный и курсив.
imgrey
10.05.08 18:38
нафиг GAE нужно, если есть http://bells-n-whistles.net/
и это реклама