Подтвердить что ты не робот

Языки сценариев и скомпилированные языки для веб-разработки

Хотя я исхожу из чисто PHP-фона на стороне разработки веб-разработки, я также провел много времени с С# и С++ на рабочем столе.

Я не хочу, чтобы зажигать любые пламенные войны, но:

Когда вы должны использовать языки сценариев над скомпилированными языками для разработки веб-сайта?
(и наоборот)

Чтобы уточнить, для этого вопроса я определяю "язык сценариев" как означающий интерпретируемый язык, такой как PHP, Python или Ruby, а "скомпилированный язык" означает строго типизированный скомпилированный язык, такой как С#, С++, Java или VB.

4b9b3361

Ответ 1

Это зависит: -)

На...

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

Развертывание

Если вам нужно иметь возможность развертывать решение на любом из десятков различных возможных платформ, вы можете обнаружить, что вам лучше работать с PHP, чем Java (например). Существуют сотни тысяч хостинг-провайдеров Java, но, вероятно, есть миллионы хостинг-провайдеров PHP. (И я говорю это как Java-руководитель, который в лучшем случае находит PHP "так себе".)

Это относится и к ОС. Моно в стороне..Net-материал собирается ограничить вас развертыванием на базе Windows (или отстает от самого передового опыта и должен очень, очень тщательно проверять каждый сторонний компонент, который вы вводите, чтобы убедиться, что у него нет Mono... вопросы).

Наборы компетенций

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

В связи с этим: количество набранных навыков Skillset. Легче ли (и/или дешевле) нанимать PHP-разработчиков с 3-4-летним опытом или Java-разработчиками с 3-4-летним опытом, или С# devs, или...?

Покупка/поиск/интеграция против здания

В вашей целевой области разработки, с которой на серверные компоненты или пакеты вы хотите интегрироваться? PHP имеет массив обширный доступных для него вещей, как и Java, как и С# или ASP.Net. Но они разные (по большому счету), поэтому вы захотите посмотреть, что вы на самом деле хотите использовать.

Заключение

Итак, я думаю, что это не вопрос компиляции и сценариев (в современном мире), а более того, что лучше всего подходит по другим критериям для того, что вы пытаетесь сделать.

Добавление: Both/And

И, конечно, всегда есть "и/и". Например, сейчас я работаю в двух основных, несвязанных средах, используя комбинацию сценариев и скомпилированных ресурсов. (Один из них - Java + JavaScript через Rhino на Tomcat, другой - скомпилированные COM-объекты + JScript [снова, серверная сторона] в IIS.)

Ответ 2

Программист может писать хороший/плохой быстрый/медленный масштабируемый/незащищенный код на любом языке. Хотя, некоторые языки и технологии усложняют работу. По моему опыту, с помощью языков сценариев вы можете создавать приложения малого и среднего масштаба быстрее, чем вы можете с помощью компилируемых языков, таких как Java. Однако, поскольку приложения растут по размеру, скомпилированные языки становятся более подходящими для задачи, я думаю, что это происходит от строго типизирующих объектов, более глубоких слоев архитектуры для управления задачами, и больше каркасов QA для проверки того, что все работает, поскольку они должны быть такими, как происходят изменения.

Ответ 3

Я считаю, что это в основном вопрос. Сначала я ненавидел предварительно скомпилированные веб-приложения asp.net, но я привык к этому, поэтому больше не ненавижу. Он имеет преимущества и преимущества:

Pro

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

Con

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

Мне всегда нравилось, как легко просто обновлять один файл в проекте PHP без необходимости перестраивать проект или что-то в этом роде. С другой стороны,.net имеет приятную среду IDE, которая позволяет вам отлаживать все, от конца (С#, VB.net) до конца (Javascript), в одном пакете. Но снова; оба имеют преимущества и недостатки.

Ответ 4

Я бы не нарисовал столь резкое различие между скомпилированными и интерпретируемыми языками - это действительно просто детали реализации и со временем меняются (быстрее, чем сами языки меняются). Случайный момент - благодаря Facebook, PHP теперь является "скомпилированным языком" . Еще один пример - мне нравится веб-разработка с Схема - и моя предпочтительная Схема реализация теперь запускает виртуальную машину и в этом смысле по крайней мере скомпилирована как Java.

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

Ответ 5

Я большой поклонник скомпилированных языков во всем мире, если не более, чем статическая типизация. С другой стороны, языки сценариев очень удобны - нет двоичных файлов для обработки, только текстовые файлы, что является большой победой для веб-серверов.

В конце концов, это не имеет значения - используйте любой язык, который вы знаете, и чувствуете себя наиболее комфортно для работы.

Ответ 6

Я думаю, что скорость является ключевой проблемой в веб-приложении, в частности

  • как быстро писать код
  • насколько быстро он исправляет мой код
  • как быстро реорганизовать мой код.
  • насколько быстро он проверяет мой код

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

Сегодня номер один в моем оценочном списке для нового проекта будет Tornado и Python.

Если бы у меня был выбор платформ, конечно.

А, Python среди самых быстрых в языках сценариев.

Ответ 7

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

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

Думаю, это зависит от ваших предпочтений.