В чем преимущества PHP перед ASP.NET?

Прошу. Не отправляйте в Google т.к. ответа на вопрос свой на нашел.
1. По идее PHP интерпретируемый язык, а значит он должен проигрывать компилируемому. Вопрос. В каких задачах проявляется разница? Если сделать два аналогичных портала на PHP и ASP.NET, то какой из них будет быстрее (и в каких операциях)?
2. Какой из этих языков легче учится? Объясните почему (доков и по тому и по другому дофига)
3. Решение на каком из этих языков проще поддерживать?
4. А что касательно скорости разработки?
5. Какое из решений будет более безопасно? Объясните почему?
6. Если сайт делать с прицелом на облака, то PHP как себя там будет вести? Есть какие-то концептуальные проблемы?

Идеологические моменты не интересуют. Интересует лишь практическая сторона. Прошу опишите простыми словами т.к. я не понимаю на каком из этих языков, а главное _почему_ сайт будет к примеру меньше нагружать сервер?
  • Вопрос задан
  • 18777 просмотров
Пригласить эксперта
Ответы на вопрос 5
svd71
@svd71
1а. ASP это компилированный язык в котором компоненты обернуты некоторым фреймворком(которые тоже скомпилированы) и которые вызывает напрямую функции ОС. Скорость исполнения зависит от скорости обращения машинного кода к такому же коду компонентов, которые через кодовые функции фреймворка обрабатывается понятными процессору кодами функций операционной системы. Причем при компиляции полученный код может оптимизироваться. При этом не стоит забывать, что организации сервера необходимо установить ОС, фрейм ворк (и часто не один), дополнительные библиотеки и сервер. Что уже само по себе не дешевое решение при выигрыше в скорости исполнения кода.

1б. PHP это скриптовый язык. Это означает, что ему необходим некоторый интерпретатор всего того, что там в этих скриптах написано. Скорость исполнения зависит от размера скриптов, скорости "перевода" текста скриптов в некоторые куски программного кода, который уже невозможно никак оптимизировать, и которые потому обращаются к функциям ОС. Правда некоторые хитрые личности умудрились сделать этокие компиляторы в так называемый байт-код. В основном этот код можно слегка оптимизировать. но чаще только на полном исключении оставленных комметариев и символов отсутпов. Хотя нужно признать, с каждым годом этот скритовый язык все быстрее в том числе из-за вожможности ОС быстрее читать данные из файлов. Цепочка выполнения не сложная: сервер, скрипт, интерпретатор, ОС. Даже в неумелых руках можно запустить с легкого пинка. И под любой ОС.

2а. ASP требует некоторого обязательного компилятора, некоторых способов отладки получаемого кода, некоторых знаний особенности ОС и фреймворка. Это, нужно заметить, не простая задача. Тем более нет возможности вести нормальную разработку в каком-либо совсем примитивном текстовом редакторе. Но можно.

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

ПС: Выводы можно дополнить самому. Я описал самые явные различия в технологиях. Много конечно не указал: например работа с объектами имеет некоторые существенные различия. Проприетарность, возможность взлома, возможность отладки, количества IDE под каждую технологию.
Ответ написан
victorvsk
@victorvsk
Думаю, если бы на какой-то из этих вопросов можно было ответить объективно, почему Х хуже\лучше Y, то один из них бы уже был бы забыт.

1) Самый медленный язык в вебе - это SQL. в 99% случаев (при прочих равных) ни один современный язык нельзя изуродовать настолько, что б он проиграл SQL

2) Легче учится - понятие субъективное, по крайней мере сегодня, в отношении популярных языков, и с точностью, опять же, 99%

3) Легче поддерживать то решение, в фундаменте которого - хорошая архитектура, а реализовывала - грамотная команда

4) Врядли, скорость разработки сильнее зависит от языка, чем от всяких факторов типа команды, ЗП, настроения и т.д. Действительно, в ruby больше синтаксического сахара, чем в php. Но все относительно и это понятие тоже довольно субъективное. Например, в руби можно одной строчкой из коробки делать различные сложные манипуляции с массивами, которые в пхп придется освоить самому. Зато когда дойдет до реализации классического ООП, может возникнуть потребность понять, где же абстрактные классы и интерфейсе в таких языках как руби и питон

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

6) Не совсем понимаю, что вы имеете ввиду под облаками? PaaS типа heroku? или SaaS типа Dropbox для статики? или yandex cocaine?

Возможно, в каких-то высказываниях находятся грубые и фундаментальные ошибки. Было бы интересно узнать, в чем я ошибаюсь.
Ответ написан
kirill89
@kirill89
1. PHP в современных проектах заново создает весь контекст на каждый запрос (все объекты, подключения к базе и т.п.). ASP.NET как и JavaEE сохраняет контекст, что сильно экономит время на больших проектах.
2. Легче учится PHP. Материалов по нему гораздо больше, а главное актуальных материалов гораздо больше.
3. Проще поддерживать код на ASP.NET т.к. обычно он более строгий (в зависимости от языка). Но реально проще поддерживать PHP - т.к. найти программиста гораздо проще (их просто действительно больше).
4. На PHP разрабатывать быстрее - но может страдать качество.
5. Очень спорный вопрос. То в котором будет лучший спец по безопасности. Лично я считаю что на ASP.NET т.к. скорее всего это будет ASP.NET MVC - достаточно долго развивается и очень много где используется.
6. Скорее всего проблем не возникнет в обоих случаях.

Прошу заметить что всё сказанное - моё субъективное мнение.
Ответ написан
@AlexP11223
В цене?
Сервер и т.п. дешевле.
Ну и так получилось, что РНР разработчиков больше (например, вроде бы меньше порог вхождения. Но именно только вхождения, а не развития до хорошего уровня, это по-моему везде примерно одинаково), наверно цена за их работу меньше (если проект не сильно сложный).
Ответ написан
HaJIuBauKa
@HaJIuBauKa
Видать плохо искали.
https://www.google.ru/search?q=asp.net+vs+php
Холивар живет довольно давно...

По теме. Мое мнение ASP.NET перспективней на больших высоко-нагруженных проекта. Например какой-нибудь сервис по предоставлению онлайн функций (облако) - онлайн бухгалтерия, ведение проектов - это для примера. То есть такие проекты где сложная архитектура, большое количество модулей и разработчиков.
Но почувствуйте подтекст в моих словах - все это требует немалого опыта, слаженной работы команды и построения четкой архитектуры программного решения. Да MicroSoft позиционирует технологию ASP.NET как несложную в освоении и предназначенную абсолютно для любых решений. В принципе так оно и есть. Но всю мощь она проявляет в БОЛЬШИХ системах.

Теперь о PHP. Имеет место быть его развитие и в больших проектах. Есть большое количество развивающихся MVC фреймворков - это и плюс и минус. С одной стороны это создает здоровую конкуренцию у разработчиков фреймворков, с другой стороны не дает такой мощности направленной на поддержку и развитие одного решения.
MicroSoft поступает умнее :) - подглядывает решения PHP-фреймворков и реализует нечто подобное у себя, опираясь на библиотеку .NET, которая имеет отлаженный и быстрый доступ к функциям ОС и оборудования, в отличии от PHP - который его не имеет и врядли будет иметь в будущем.

За сим под итожу: преимущество у PHP перед ASP.NET есть только в том что он бесплатен и прост в освоении - более нет никаких :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы