Языки сценариев и скомпилированные языки для веб-разработки - PullRequest
12 голосов
/ 03 июня 2010

Несмотря на то, что я пришел из PHP-среды, специализирующейся на веб-разработке, я также провел много времени с C # и C ++ на рабочем столе.

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

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

Просто для пояснения, ради этого вопроса я определяю «язык сценариев» для обозначения интерпретируемого языка, как PHP, Python или Ruby, и «скомпилированный язык» для обозначения строго типизированного, скомпилированного языка, такого как C # , C ++, Java или VB.

Ответы [ 7 ]

18 голосов
/ 03 июня 2010

Зависит от: -)

На ...

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

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

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

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

1019 * Наборы компетенций * Быть в курсе в среде или языке нетривиально. Для большинства из нас освоить основы довольно быстро, но, возможно, вы не будете принимать лучшие архитектурные / дизайнерские решения, потому что вы (сравнительно) слабы в среде / языке. Количество наборов навыков. Относится к этому: количество наймов Skillset. Проще (и / или дешевле) нанимать разработчиков PHP с 3-4-летним опытом, разработчиков Java с 3-4-летним опытом, или разработчиков C #, или ...? Покупка / поиск / интеграция против строительства

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

Заключение

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

Приложение: Оба / И

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

3 голосов
/ 04 июня 2010

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

2 голосов
/ 10 июня 2012

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

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

2 голосов
/ 03 июня 2010

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

Pro

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

Con

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

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

0 голосов
/ 21 июня 2019

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

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

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

0 голосов
/ 03 июня 2010

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

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

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

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

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

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

0 голосов
/ 03 июня 2010

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

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

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