С каким языком программирования Google вероятнее всего будет работать движок приложений Google и почему? - PullRequest
3 голосов
/ 23 января 2009

В их дорожной карте говорится, что их следующий выпуск будет в марте 2009 года, и что они добавят новый «язык времени выполнения». Я надеюсь, что это будет либо Java, либо PHP, но на самом деле не уверен, и хотел бы знать, какой язык наиболее вероятен, чтобы я мог соответственно планировать проект, который планирую разместить на google app engine.

Есть идеи?

Ответы [ 10 ]

11 голосов
/ 23 января 2009

Я бы сказал, что Java, хотя бы по той причине, что Android (или, по крайней мере, SDK) написан на Java, и у них возникла проблема написания собственного интерпретатора / VM.

Если бы не Java, тогда Ruby был бы моим предположением. Не знаю почему, но это похоже на хорошую подгонку.

5 голосов
/ 03 февраля 2009

Я бы сказал, что вам нужно взглянуть на несколько факторов:

Язык должен:

  • быть в песочнице
  • быть управляемым
  • быть расширяемым
  • отличаться от питона
  • обращаются к людям, которые хотят писать масштабируемые приложения
  • можно легко запускать на компьютерах разработчиков
  • работает в Linux

Sandboxable

Язык должен быть безопасным для работы на серверах Google. Части библиотек языка / VM / modules | должны быть отключены и / или заменены.

Управляемая

Обратите внимание, как Google использует языки, которые не контролируются компаниями? Python BDFL GvR работает для Google. Не знаю о Javascript. Я полагаю, что Java достаточно открыт для своего вкуса. Таким образом, эволюция языка должна позволять вводить Google по крайней мере.

Расширяемая

Google должен иметь возможность добавлять материал к языку, а это почти подразумевает язык с открытым исходным кодом. Я не думаю, что они заинтересованы в создании внутреннего разветвления существующего языка.

Отличается от Python

Python зрелый, легкий в освоении и мощный. Новый язык должен иметь значительные отличия от python, иначе, почему бы просто не использовать Python. Может быть, очень функциональный язык?

Обращение к масштабируемости

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

Разработчик компьютеров

Язык должен быть прост в установке, обслуживании и разработке для Windows, Mac и Linux. Он должен быть полностью управляемым с помощью текстовых редакторов или уже иметь надежные инструменты для редактирования и управления на этих платформах.

Linux

Серверы Google будут запускать программы, поэтому они должны безопасно передаваться на серверы Google и запускаться на них, а также должны быть доступны для управления балансировщиком нагрузки Google App Engine, поэтому они должны быть unixy.

Мозговой

Я не думаю, что это будет Java (слишком тяжелый, трудно изменить VM), php (слишком негерметичный), ruby ​​(трудно изменить VM), C ++ (не может быть помещен в «песочницу» (насколько я знаю)) , Я тоже не думаю, что это будет JavaScript, потому что его сложно модульно оформить, а язык нелегко выучить. Это исключает и Лисп - трудную для изучения часть.

Так что еще.

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

Так что я склоняюсь к C # с моно. Я думаю, что это имеет смысл. Я знаю, это звучит пугающе, но в последнее время разработчики языка довольно сильно хотят изменить C #, чтобы включить динамическую типизацию, подобную Python, и тому подобное.

Заключение

Так вот что я думаю. И если они смогут справиться с этим, они смогут перепрыгнуть через конкуренцию. Mono находится под лицензией MIT X11 (по состоянию на апрель 2008 года), и я думаю, что Мигель де Иказа может быть нанят Google в будущем вместе с ключевыми членами команды.

Итак, мой прогноз - C #.

5 голосов
/ 23 января 2009

Языки, используемые для производственного кода в Google, ограничены C ++, Java, Python и JavaScript.

Служба приложений уже запускает Python, что дальше?

Скорее всего, JavaScript. Я помню Стив Йегге , работавший над Rails-эквивалентом для JavaScript. См. Блог Стиви Rants: Rhino on Rails .

Java менее вероятна, но возможна. Контейнеры Java-сервлетов имеют тенденцию быть тяжелыми.

C ++ возможен ( Собственный клиент и Chrome - два примера изолированного кода C ++), но на данный момент маловероятен.

1 голос
/ 03 февраля 2009

Да, JavaScript.

Почему?

Во-первых, это подходит. Хотя существуют очевидные архитектурные различия (особенно система ООП) между Python и JavaScript, они ближе, чем дальше друг от друга, поэтому преобразование GAE Python API в JS API не должно быть существенным скачком в разработке или реализации. В конце концов, JS API, скорее всего, будет похож на Python API.

Во-вторых, безопасность. Идиома времени выполнения JS идентична идиоме Python в том, что фактически вы будете запускать процессы JS независимо друг от друга для каждого запроса. То есть классическая модель вилки Apache.

Как хостинговая служба, эта модель чрезвычайно надежна и намного, намного проще в управлении, чем что-то вроде Java. То, что вы теряете в эффективности через многопоточную реализацию, вы получаете, просто будучи Google с gazillion компьютеров. В масштабах Googles административные издержки превосходят производительность каждый день недели. Чем проще и надежнее, тем лучше, и именно такова модель процесса.

В-третьих, технология скорости. JS движется ОЧЕНЬ быстро прямо сейчас. Посмотрите на большее количество коммерческих предприятий, пишущих JS интерпретатор / компилятор / среды выполнения, а также на развитие самого языка. Сценарий JS бросился на фронт с удвоенной силой.

Наконец, популярность.

Несмотря на то, что JS не пользуется популярностью на стороне сервера, он по-прежнему является наиболее распространенным языком в мире и, следовательно, самым доступным языком в мире. Каждый хакерский веб-дизайнер на планете становится программистом JS, нравится им это или нет.

Теперь я не знаю, сколько веб-дизайнеров вы встретили, но большинство из тех, кого я встречал, НЕ программисты. Таким образом, принятие JS для них будет для них непростым делом и болезненным опытом, но это в значительной степени требование для современного Интернета. Принятие этого умения отодвинуться и сделать небольшую обработку на заднем конце, в ЖЕ ЯЗЫКЕ, будет благом для этих людей. Не стоит сбрасывать со счетов возможность знакомства в обычно страшной среде (и, несмотря на достижения, компьютеры по-прежнему «страшны» для подавляющего большинства населения).

JS, это уже не игрушка, это спящий гигант. На самом деле.

1 голос
/ 03 февраля 2009

Я предполагаю, что C # - это просто прикрепить его к Microsoft.

1 голос
/ 30 января 2009

Я бы также сказал, что Java поддерживает Ruby с JRuby, совместим с Python с Jython, Groovy и т. Д.

0 голосов
/ 03 февраля 2009

Я собираюсь также добавить свои 2 цента на Java. У них есть большое количество инструментов, уже написанных на Java (кто-нибудь GWT? И т. Д. И т. П.)

Хотя, Javascript был бы наиболее интригующим.

0 голосов
/ 03 февраля 2009

Уже работает с Python. Ходили слухи о PHP, который является логичным выбором, учитывая его популярность.

0 голосов
/ 23 января 2009

Однажды я слышал, что Google больше всего любит Python!

0 голосов
/ 23 января 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...