Ну, я не могу назвать я сам эксперт, чтобы ответить на этот вопрос, но вот что я думаю по моему опыту работы:
Это правда, что с современными компьютерами интерпретируемые языки достаточно быстры, чтобы их можно было использовать для разработки приложений (python и т. д.).). Механизмы Javascript значительно улучшились за последнее десятилетие, до такой степени, что говорить о 200k + (несжатом) javascript больше не смешная вещь (например: приложения GWT могут расти даже в порядке мегабайт). Я помню, как устанавливали очень продвинутые серверы около 6 лет назад, у них было два двухъядерных процессора с возможностями виртуализации, емкость 16 ГБ оперативной памяти и 8 слотов SATA, где мы поставили 2 RAID отдельно и еще 6 на RAID. Ну, в настоящее время даже ноутбуки имеют некоторые из этих технологий, и цены на эти машины почти в четыре-пять раз дешевле того, чем они были тогда.
Однако, полагая, что из-за этого будет все меньше и меньше сценариев на стороне сервера, не понимая, откуда идет разработка приложений и куда они идут. Фактически, модельные приложения следуют все больше и больше - это 2-tier (or n-tier) model, и это решение (среди многих других причин) проблемы с зависимостью и упаковкой, которые имеют приложения для настольных компьютеров (только для клиентов). Я не говорю о среднем пользователе здесь, а о том, как предприятия развертывают и поддерживают свою среду на своих сотнях (даже многих тысячах) рабочих станциях.
В среднем на клиенте всегда будет столько же кода, сколько на сервере.Разница в том, что на самом деле делает код. Код на стороне сервера обычно находится в режиме stateless (или полу-безстоящем). Где клиентский код более динамичен. На общем уровне сервер обрабатывает данные, где клиент визуализирует пользовательский интерфейс и обрабатывает различные пользовательские входы. (На виртуальных клиентах сервер обрабатывает практически все, но мы об этом не говорим.)
В настоящее время самые тяжелые вычисления выполняются серверами с более низкими языковыми уровнями. Но по мере того, как двигатели и браузеры Javascript становятся все более эффективными, некоторые вычисления будут медленно перемещаться на сторону клиента и уменьшать уровень стресса серверов (делая их более эффективными). Все дело в балансировке рабочей нагрузки, потому что всегда будет полезно, чтобы сервер выполнял некоторые вычисления; для обмена результатами поиска, с очень сложными графическими моделями или с любыми кэшированными данными и т. д.
Если ноутбуки теперь имеют серверы около 6 лет назад, сегодняшние серверные машины намного превосходят то, что является обычным компьютером пользователя. Дело в том, что клиентская машина никогда не сможет (не в нашей жизни, так или иначе) быть в состоянии конкурировать с тем, что может сделать сервер кластеров, и это очень мощно с точки зрения приложения.
То, что я лично считаю, что слои между интерпретируемыми языками ЦП будет более узким, возможно, даже до такой степени, что языки, подобные javascript, будут выполняться напрямую без двигателя ... Ну, может быть, нет, но, по крайней мере, считываемый код также может быть прочитан самим компьютером. Если это произойдет, работа «компиляция» станет архаичной.
Кроме того, все не всегда будет в сети, но установка приложения будет связана с кэшированием веб-приложения в кеше приложения на клиенте и возможностью его использования даже в автономном режиме, а затем синхронизацией данных после подключения (или по запросу пользователя) позже. Обновления и обновления будут просто обновлять кеш приложений.
Например, загрузите свой любимый офисный пакет, отредактируйте его в автономном режиме, а затем, когда соединение выполняется через точку доступа, синхронизируйте/сохраните документ онлайн (и выполните обновления приложений в фоновом режиме). Установка не требуется. Вся онлайн-часть будет выполняться PHP, Python, J2EE и т. Д. И поддерживается некоторой базой данных SQL.
Мои два цента.
Двойной вопрос удален. Пожалуйста, проголосуйте, чтобы разметить это как дубликат. – 2013-12-26 11:36:23