Хотя я происхожу из просто фон PHP на стороне веб-разработки программирования, я также провел много времени с C# и C++ на рабочем столе.
Я действительно не хочу зажигать любые войны пламени, но:
Когда необходимо использовать языки сценариев по скомпилированным языкам для разработки веб-сайтов?
(и наоборот)
Просто для уточнения, ради этого вопроса, я определяю "язык сценариев", чтобы означать интерпретируемый язык как PHP, Python, или Ruby и "скомпилированный язык" означать скомпилированный язык со строгим контролем типов как C#, C++, Java или VB.
От ...
Если вам нужно иметь возможность развернуть решение на любой из десятков различных возможных платформ, вы можете обнаружить, что вам лучше использовать PHP, чем Java (например). Существуют сотни тысяч провайдеров хостинга Java, но, вероятно, миллионы провайдеров хостинга PHP. (И я говорю это как Java-глава, который находит PHP в лучшем случае «таким уж».)
Это также относится и к ОС. Помимо Mono, материал .Net будет ограничивать вас развертыванием на базе Windows (или отставанием от передовых технологий и необходимостью очень, очень тщательного тестирования каждого добавляемого вами стороннего компонента, чтобы убедиться, что в нем нет Mono ...вопросы).
Быстро освоить среду или язык нетривиально. Для большинства из нас освоение основ происходит довольно быстро, но вы, возможно, не принимаете лучших архитектурных / дизайнерских решений, потому что вы (сравнительно) слабы в среде / языке. Подсчитываются наборы навыков.
В связи с этим: Прием на работу квалификационной группы имеет значение. Что проще (и / или дешевле) нанять разработчиков PHP с опытом работы 3-4 года, разработчиков Java с опытом работы 3-4 года, разработчиков C # или ...?
С какими серверными компонентами или пакетами вы хотите интегрироваться в вашей целевой области разработки? PHP имеет обширный набор вещей, доступных для него, как и Java, как и C # или ASP.Net.Но это разные вещи (по большому счету), поэтому вы захотите посмотреть, что вы действительно хотите использовать.
Так что я думаю, что дело не столько в скомпилированном против скриптовом (в современном мире)), а в том, что лучше всего подходит по другим критериям для что вы пытаетесь сделать.
И, конечно, всегда есть «И / И». Например, сейчас я работаю в двух основных, не связанных между собой средах, в обеих использую комбинацию скриптовых и скомпилированных ресурсов. (Один из них - это Java + JavaScript через Rhino на Tomcat, другой - это скомпилированные COM-объекты + JScript [опять же, на стороне сервера] на IIS.)
Я большой поклонник компилируемых языков повсюду, хотя бы ради статической типизации. С другой стороны, языки сценариев очень удобны - не нужно иметь дело с двоичными файлами, только текстовые файлы, что является большим преимуществом для веб-серверов.
В конце концов, это не имеет особого значения - используйте для работы тот язык, который вы знаете и на котором чувствуете себя наиболее комфортно.
Я думаю, что скорость является ключевым фактором в веб-приложении, в частности
То есть меня волнует скорость самого медленного звена - меня самого. Все остальное достаточно быстро для загрузки, подобной Twitter.
Сегодня номером один в моем списке оценки нового проекта были бы Tornado и Python.
Если бы у меня был выбор платформ, конечно.
А, Python - один из самых быстрых скриптовых языков.
Программист может написать хороший/плохой быстрый/медленный масштабируемый/нестабильный код на любом языке. Хотя некоторые языки и технологии усложняют эту задачу. По моему опыту, с помощью скриптовых языков вы можете создать приложение малого и среднего масштаба быстрее, чем с помощью компилируемых языков, таких как Java. Однако по мере роста размеров приложений компилируемые языки становятся более подходящими для решения этой задачи. Я думаю, это происходит благодаря сильной типизации объектов, более глубоким уровням архитектуры для управления задачами и большему количеству QA-фреймворков для проверки того, что все работает так, как должно, по мере внесения изменений.
Я считаю, что это в основном вопрос мнения. Сначала я ненавидел предварительно скомпилированные веб-приложения, которые предоставляет asp.net, но я привык к ним, поэтому больше не ненавижу их. У него есть свои преимущества и недостатки:
Pro
Con
Мне всегда нравилось, насколько просто обновить один файл в проекте PHP без необходимости перестраивать проект или что-то в этом роде, с другой стороны, .net имеет красивую среду IDE, которая позволяет вам отлаживать все, от серверной части (C #, VB.net) до клиентской части (Javascript) в одном пакете. Но опять же; у обоих есть преимущества и недостатки.