Автор Тема: Google App Engine  (Прочитано 10959 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Google App Engine
« : Март 20, 2012, 06:09:35 pm »
Продолжаем про веб: кто-нибудь пробовал Google App Engine? Как оно вообще?
Вроде как там выбор ЯП для реализации относительно вменяемый: Java, Go, Python (особенно если последний вычеркнуть).
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Google App Engine
« Ответ #1 : Март 20, 2012, 08:28:11 pm »
Продолжаем про веб: кто-нибудь пробовал Google App Engine? Как оно вообще?
Вроде как там выбор ЯП для реализации относительно вменяемый: Java, Go, Python (особенно если последний вычеркнуть).

ААА!!! Наезд на питон детектед!

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Google App Engine
« Ответ #2 : Март 20, 2012, 08:33:04 pm »
Продолжаем про веб: кто-нибудь пробовал Google App Engine? Как оно вообще?
Вроде как там выбор ЯП для реализации относительно вменяемый: Java, Go, Python (особенно если последний вычеркнуть).
ААА!!! Наезд на питон детектед!
Ога :-) Чего только стоит наличие там ДВУХ питонов - 2.5 и 2.7 (с полными отдельными разделами по документации, API и так далее). Это уже как бэ многое про язык говорит. Для примера java там одна.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Google App Engine
« Ответ #3 : Март 20, 2012, 08:38:50 pm »
Ога :-) Чего только стоит наличие там ДВУХ питонов - 2.5 и 2.7 (с полными отдельными разделами по документации, API и так далее). Это уже как бэ многое про язык говорит. Для примера java там одна.

Это говорит о том, что язык эволюционирует. В отличие от жабы, у которой уже полная стагнация :)

P.S. Да, меня лично тоже задели эти несовместимости в питоновских версиях. И тем не менее, те изменения, которые пришлось фикснуть - были в лучшую сторону.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Google App Engine
« Ответ #4 : Март 20, 2012, 08:47:36 pm »
Ога :-) Чего только стоит наличие там ДВУХ питонов - 2.5 и 2.7 (с полными отдельными разделами по документации, API и так далее). Это уже как бэ многое про язык говорит. Для примера java там одна.

Это говорит о том, что язык эволюционирует. В отличие от жабы, у которой уже полная стагнация :)

P.S. Да, меня лично тоже задели эти несовместимости в питоновских версиях. И тем не менее, те изменения, которые пришлось фикснуть - были в лучшую сторону.
Нет, это говорит о том, что авторы питона не могут его менять так, чтобы не ломалась обратная совместимость. Сравни с жабой - когда вышла 1.5, это была таки революция: анотации, дженерики, форычи всякие там. Сильно переработана библиотека стандартных контейнеров. И при том, что обратная совместимость сломана не была.

Сейчас вот выползла java 7 - лямбдафункции и еще кучка ништяков. Обратная совместимость сохранена. То есть это реально работает. Ынтырпрайз системы потихоньку мигрируют на java 7. Проблемы бывают только когда народ в коде использовал недокументированные особенности конкретной (например ibm'овской или сановской) реализации jvm.

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

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Google App Engine
« Ответ #5 : Март 20, 2012, 08:55:57 pm »
Нет, это говорит о том, что авторы питона не могут его менять так, чтобы не ломалась обратная совместимость. Сравни с жабой - когда вышла 1.5, это была таки революция: анотации, дженерики, форычи всякие там. Сильно переработана библиотека стандартных контейнеров. И при том, что обратная совместимость сломана не была.

Ага, ага. Только вот смотреть на эти "революционные вещи" без слез нельзя. Причем да, в C++ - слез еще больше ;) Так что  дело не в том, что "авторы не могут", а скорее "авторы не хотят" ;) Авторы питона принесли обратную совместимость в жертву качеству новых фич. Их право. И они такие не одни. Вон Вирт, например... ;)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Google App Engine
« Ответ #6 : Март 20, 2012, 08:59:06 pm »
Нет, это говорит о том, что авторы питона не могут его менять так, чтобы не ломалась обратная совместимость. Сравни с жабой - когда вышла 1.5, это была таки революция: анотации, дженерики, форычи всякие там. Сильно переработана библиотека стандартных контейнеров. И при том, что обратная совместимость сломана не была.

Ага, ага. Только вот смотреть на эти "революционные вещи" без слез нельзя. Причем да, в C++ - слез еще больше ;) Так что  дело не в том, что "авторы не могут", а скорее "авторы не хотят" ;) Авторы питона принесли обратную совместимость в жертву качеству новых фич. Их право. И они такие не одни. Вон Вирт, например... ;)
Да ладно ка. C++11 мне очень даже нравится. Равно как и нововведения в жабе.
И да, языки в которых обратную совместимость регулярно приносят в жертву, обычно в продакшине не задерживаются. См паскаль vs оберон. Да и на тот же хаскель можно посмотреть. Вообще много их...
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Google App Engine
« Ответ #7 : Март 22, 2012, 04:31:14 am »
Да ладно ка. C++11 мне очень даже нравится.

Модулей нет? Дальше можно не смотреть ;) По-настоящему важную проблему, которая бьет каждый день не решили.
Ну что там осталось еще из такого "революционного"? Да та же "move semantics" - да, полезно. Но как я и говорил - без слез смотреть нельзя ;)

Равно как и нововведения в жабе.
И да, языки в которых обратную совместимость регулярно приносят в жертву, обычно в продакшине не задерживаются.

Ну правильно, кому нужен С++ с модулями в продакшине... без обратной совместимости. Вот и продолжаем грызть кактус.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Google App Engine
« Ответ #8 : Март 22, 2012, 10:06:41 am »
Да ладно ка. C++11 мне очень даже нравится.

Модулей нет? Дальше можно не смотреть ;) По-настоящему важную проблему, которая бьет каждый день не решили.
...
Ну правильно, кому нужен С++ с модулями в продакшине... без обратной совместимости. Вот и продолжаем грызть кактус.

У меня похоже приступ парадокса блаба… Не вижу я этих проблем в С++ (или слишком свыкся?) с модульностью. Можешь привести примеры проблем с которыми регулярно сталкиваешься из за отсутствия модульности в плюсцах?
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Google App Engine
« Ответ #9 : Март 22, 2012, 11:59:39 am »
Помню пару лет назад у наших плюсцеводцев случилась проблема с модульностью. Компилятору С++ не хватило оперативной памяти (32bit) чтобы скомпилировать программу. Вот только тогда им всё таки пришлось порезать программу на модули и компилировать их по отдельности.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Google App Engine
« Ответ #10 : Март 22, 2012, 12:07:32 pm »
Помню пару лет назад у наших плюсцеводцев случилась проблема с модульностью. Компилятору С++ не хватило оперативной памяти (32bit) чтобы скомпилировать программу. Вот только тогда им всё таки пришлось порезать программу на модули и компилировать их по отдельности.
Ну, это не вопрос модульности, а вопрос скорее агрессивного использования шаблонов.

Кстати, частенько затыкается не компилятор по памяти, а компоновщик.

Да, если им пришлось порезать на модули, значит модули в С++ таки возможны :-)

PS. Кроме того, можно ж было и на 64битной машине собрать 32битное приложение.
PPS. Опять же это всего лишь вопросы оптимизации компиляции, а не принципиальные проблемы при разработке, то есть ошибок от этого в программе не прибавляется.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Google App Engine
« Ответ #11 : Март 22, 2012, 06:56:31 pm »
У меня похоже приступ парадокса блаба… Не вижу я этих проблем в С++ (или слишком свыкся?) с модульностью. Можешь привести примеры проблем с которыми регулярно сталкиваешься из за отсутствия модульности в плюсцах?

Хе-хе. Про идеологические проблемы тебе расскажут на оборонкоре ;) Чисто практические - тормозная компиляция, убогие средства навигации, всякие дебильные ODR, порядок инклудов имеет значение, "паразитные" инклуды (какой-нибудь хидер включает другой хидер и в этом хидеря херня, которая мешает тебе жить вот в этом файле) и т.д. За сколько-то лет к этому можно привыкнуть, но блин, 2012 год на дворе... Уже давно проработано как должно быть по-нормальному и все равно... обратная совместимость.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Google App Engine
« Ответ #12 : Март 22, 2012, 07:42:15 pm »
Хе-хе. Про идеологические проблемы тебе расскажут на оборонкоре ;) Чисто практические - тормозная компиляция,
Аду и хаскель от тормозной компиляции модульность не спасает. Я даже не говорю про эйфель :-)

убогие средства навигации,
Тут скорее жуткий синтаксис виноват нежели "модульность". Алсо clang постепенно эту проблему решает (то есть парадигма "компилятор как сервис").

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

За сколько-то лет к этому можно привыкнуть, но блин, 2012 год на дворе... Уже давно проработано как должно быть по-нормальному и все равно... обратная совместимость.
А где для тебя идеал в пане модульности? В Обероне мне не нравится. В Аде... Наверно лучше всего.  Go - фигня. Java/C# - вообще человеческой модульности нема, все отдано на откуп динамическому компоновщику.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Google App Engine
« Ответ #13 : Март 22, 2012, 08:09:03 pm »
Хе-хе. Про идеологические проблемы тебе расскажут на оборонкоре ;) Чисто практические - тормозная компиляция,
Аду и хаскель от тормозной компиляции модульность не спасает. Я даже не говорю про эйфель :-)

Как минимум, это спасет от ненужной перекомпиляции.

убогие средства навигации,
Тут скорее жуткий синтаксис виноват нежели "модульность".

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

Алсо clang постепенно эту проблему решает (то есть парадигма "компилятор как сервис").

Это решение из серии "вырезание гландов через задницу". Можно восхищаться, если не задаваться вопросом "а нафига так?".

Внезапно в нахваливаемом таком модульном D я обнаружил зависимость от порядка импортов модулей :-)

Тем хуже для D ;) Тяжелое инклудное детство...

А где для тебя идеал в пане модульности? В Обероне мне не нравится. В Аде... Наверно лучше всего.  Go - фигня. Java/C# - вообще человеческой модульности нема, все отдано на откуп динамическому компоновщику.

Блин, да хоть как-нибудь. В питоне, например, вполне нормально. В шарпе с его юзингами - хреново, но IDE берет удар на себя. В обероне - вроде нормально, но пока не попишешь - нельзя сказать.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Google App Engine
« Ответ #14 : Март 22, 2012, 08:27:56 pm »
Аду и хаскель от тормозной компиляции модульность не спасает. Я даже не говорю про эйфель :-)

Как минимум, это спасет от ненужной перекомпиляции.
Предкомпиляция хедеров не спасает? :-)

убогие средства навигации,
Тут скорее жуткий синтаксис виноват нежели "модульность".

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

Алсо clang постепенно эту проблему решает (то есть парадигма "компилятор как сервис").

Это решение из серии "вырезание гландов через задницу". Можно восхищаться, если не задаваться вопросом "а нафига так?".
Нет, это принципиально правильная вещь. Ровно так же это делается в Аде, хаскелле и так далее. Нахрена в IDE городить отдельный велосипедный почтикомпилятор, если можно через API общаться с настоящим компилятором который всяко лучше во всем этом разбирается?

А где для тебя идеал в пане модульности? В Обероне мне не нравится. В Аде... Наверно лучше всего.  Go - фигня. Java/C# - вообще человеческой модульности нема, все отдано на откуп динамическому компоновщику.

Блин, да хоть как-нибудь. В питоне, например, вполне нормально. В шарпе с его юзингами - хреново, но IDE берет удар на себя. В обероне - вроде нормально, но пока не попишешь - нельзя сказать.
В C# и Java inport/using не нужны вообще. Тебе без всяких импортов доступно ВСЕ до чего линкер может дотянуться. То есть точный аналог Сишечки без инклудов вообще. Ну, поскольку в сигнатуру функций входит не только имя, но и аргументы и возвращаемое значение, получается побезопасней. Так что, сишечка (старая, без инклюдов - до сих пор на код писанный в такой манере натыкаюсь) модульней плюсав?
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"