2010-09-07 2 views
0

Можно создать дубликат:
Which is the future of web development: HTML5 or Silverlight(or other RIA framework)?будущее стороне веб-сервера и на стороне клиента языков

Что вы думаете о distiction серверного веб-языка, как PHP, Ruby, Python, .. и клиентский язык (ы) в веб-браузере, например javascript? Я имею в виду, что с развитием веб-приложения я думаю, что много кода будет перемещено со стороны сервера на клиентскую сторону. Другие языки будут поддерживаться на стороне клиента (веб-браузер)?

+0

Двойной вопрос удален. Пожалуйста, проголосуйте, чтобы разметить это как дубликат. – 2013-12-26 11:36:23

ответ

1

Хотя может показаться, что «эволюция» веб-приложения перемещает больше кода на клиентскую сторону, он делает это только для того, чтобы клиентская сторона стала более интересной и полезной. Он фактически не перемещает код со стороны сервера и не заменяет код на стороне сервера одним битом. JavaScript, Silverlight и Flash - все о GUI/View logic и предлагают другой конвейер для сервера (ajax).

Ajax предлагает новые возможности, но это не более чем вариация простой «может я», «может ли я» запросить схему, которую мы уже имели. Ни в коем случае не может быть перемещена пользовательская проверка/аутентификация на стороне клиента, ни в коем случае не может быть, чтобы код на стороне клиента мог беспрепятственно обращаться к базам данных и так далее. Это все логики на стороне сервера, которые не нужны здравому человеку на стороне клиента. Любой программист, который это делает, должен быть немедленно уволен и оставлен вдали от пользовательских данных, не принадлежащих ему/ей, возможно, даже арестован за общественную угрозу.

Другие языки, поддерживаемые на стороне клиента, никогда не будут происходить с помощью других средств, кроме плагина. Представьте, что хаос может привести к C++ или Java в браузере или, по крайней мере, попытаться понять, сколько лет потребуется для исправления безопасности. Возможно, PHP может возникнуть, если вы выбросите все I/O и другие потенциальные утечки безопасности, но он потерпит неудачу и потерпит неудачу из-за наследия (начните с IE6 и обдумайте оттуда).

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

1

Ну, я не могу назвать я сам эксперт, чтобы ответить на этот вопрос, но вот что я думаю по моему опыту работы:

Это правда, что с современными компьютерами интерпретируемые языки достаточно быстры, чтобы их можно было использовать для разработки приложений (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.

Мои два цента.

Смежные вопросы