Статьи

Дебаты — .NET V. PHP: 10 самых распространенных мифов о .NET

Добро пожаловать в другую дискуссию SitePoint. Сегодня кинжалы затянуты над этой давней битвой технологических титанов — Open Source и Microsoft.

В частности, мы спрашиваем «означает ли .NET конец PHP?» Судите сами …

Вот урок для любого в рекламе — запутать своих клиентов. Это билет мечты, как Microsoft продемонстрировала в своем маркетинге .NET. Вы можете почти услышать, как Google напрягается под весом «Что такое .NET?» запросы. Это почти так же хитро, как определение PHP:

Q: Что означает PHP?
A: Гипертекстовый препроцессор
Q: ?!?

Любой, кто просматривает форумы SitePoint, знает, что сейчас самые горячие споры — это PHP против Microsoft .NET. Дискуссии варьируются от аргументированного обмена до диких споров; что-нибудь из «.NET — кого это волнует?» «.NET — самая большая вещь, так как нарезанный хлеб». Из многих сообщений ясно, что существует большая неопределенность относительно того, что такое .NET на самом деле , и как это влияет на веб-разработку.

Эта статья предназначена для «самозащиты» для любых разработчиков PHP, преследуемых чрезмерно фанатичными .NET фанатами. Это точка зрения только одного PHP-кодера, но она должна помочь устранить некоторые наиболее распространенные недоразумения, основанные на том, что было сказано на форумах SitePoint в последние недели.

Топ 10 заблуждений

1. PHP похож на открытый исходный код .NET.

Вы не можете сравнить PHP с .NET. .NET — это прикладная среда (среда для создания и выполнения приложений), а не язык программирования; это как сравнивать грузовик с дорогой. PHP может , однако, сравнивать с языками, работающими под .NET, такими как ASP + или C # (здесь они называются «Language.NET»).

2. .NET станет будущим Интернета!

.NET — будущая платформа для всех технологий Microsoft — она ​​не нацелена исключительно на Интернет. Фактически, он, вероятно, впервые появится в корпоративных интрасетях с версиями Office.NET и .NET существующего серверного программного обеспечения Windows NT.

3. .NET — лучшая технология для создания веб-сайта.

И PHP, и «Language.NET» являются жизнеспособными решениями для веб-построения. Будь то доставка динамической веб-страницы, сгенерированной из базы данных, отправка электронной почты или взаимодействие с платежным шлюзом, оба они вполне способны. Оценивая их как технологии для создания вашего сайта, единственная существенная разница — это цена. Попробуйте спросить себя: «Сколько стоит разместить эту ASP.NET-страницу, которую я только что написал?»

4. PHP не компилируется, кроме случаев, когда он интерпретируется во время выполнения, тогда как .NET обладает всеми преимуществами компиляции.

Вот новости для толпы .NET — вы наконец-то догнали! Microsoft использует слово «скомпилировано» в отношении .NET не то, что кодировщик C ++ назвал бы «скомпилированным». Zend , корпоративное лицо проекта PHP, уже некоторое время занимается этим с помощью PHP Accelerator (для бесплатного эквивалента попробуйте php-accelerator.co.uk ). К сожалению для Zend, они решили описать то, что делает Accelerator, как «расширенное кэширование» (подробнее о том, что Zend подразумевает под «кэшированием» ). Для получения более подробной технической информации попробуйте эту тему на форумах SitePoint.

5. ASP.NET имеет ответственную поддержку. У PHP нет ни одного.

Помимо услуг поддержки, предлагаемых Zend (фактически создателями PHP), NuSphere , ThinkPHP и другие корпорации также предоставляют поддержку PHP. Вам это не нужно, благодаря постоянно расширяющемуся сообществу PHP, но если ваш начальник хочет, чтобы кто-то заслуживал доверия, то выбора более чем достаточно!

6. .NET поддерживает несколько языков. PHP нет.

Попробуйте Java для PHP или грядущее расширение Python . Очевидно, что это не совсем то же самое, что C # или J #, но суть в том, что PHP очень гибок и предлагает полезные решения для Интернета. Не ожидайте, что вы будете писать успешный веб-сайт на Cobol.NET — вполне вероятно, что каждый язык .NET в конечном итоге «настроится» на определенный тип разработки приложений.

7. Язык .NET имеет превосходную объектную ориентацию.

Для тех, кто знает PHP и его ограничения, вы можете быть удивлены этим .NET FAQ — звучит знакомо? На самом деле, с PHP 4.3 в крыльях, может случиться так, что PHP может претендовать на превосходную поддержку OO, если учесть этот FAQ.

Что существенно отличается, так это то, что «Language.NET» с самого начала заставит вас использовать объектно-ориентированный подход, а PHP — нет. В Интернете обычно не требуется ОО — для вашего обычного динамического веб-сайта несколько «взломанных» сценариев вполне подойдут, если они отвечают требованиям сайта. Создайте живой сайт сейчас, а не красивый абстрактный кусок кода, который готов через год после того, как он понадобится. Перефразируя недавнее интервью SitePoint с Расмусом Лердорфом , основанный на PHP подход к решению проблем — вот что сделало его успешным. И когда вам нужен ОО, он там ждет вас.

8. .NET предлагает превосходные шаблоны и веб-разработки.

Microsoft придумала несколько хороших функций в .NET, которые, безусловно, заманчивы, такие как сетка данных и механизм шаблонов. Но вы можете легко воспроизвести их с небольшим количеством PHP (попробуйте, например, DaDaBIK ).

Основное понятие шаблонов — отделить логику от контента, чтобы те, у кого есть художественные навыки, могли сделать сайт, который выглядит хорошо, в то время как разработчики применяют код «за кулисами». Как веб-дизайнеры относятся к работе с системой шаблонов .NET, еще неизвестно. С PHP, вместо того, чтобы использовать один подход, у вас есть выбор из множества проектов с открытым исходным кодом (Smarty, Pat Template и т. Д.).

9. Но корпорации не любят PHP.

Помимо CBS , PHP используется на корпоративных сайтах японского NTT DoCoMo , швейцарского Bluewin , и многое другое вы найдете здесь . Вы часто не понимаете, когда просматриваете сайт на основе PHP, потому что вы не обязаны использовать расширение .php по умолчанию (PHP часто отображается как .shtml или phtml).

Кроме того, посмотрите на результаты этого поиска работы — неплохо.

И, как показывает ezPublish , корпорации используют не только PHP, но и такие компании, как Siemens, готовы вступить в партнерство, чтобы продавать приложения PHP своим клиентам.

10. PHP обречен!

Это сомнительно. Фактически в июне 2002 года PHP обогнал ASP, став первым открытым проектом с открытым исходным кодом, который стал более популярным, чем сделанное на заказ решение Microsoft. В связи с выходом IIS против Apache в результате выпуска Apache 2.0 и плохой репутацией IIS в области безопасности разрыв будет только увеличиваться.

Платформа .NET имеет только одно реальное преимущество над PHP, которое еще долго не будет проявляться: с .NET вы можете написать приложение, которое будет работать непосредственно на клиентах Windows и доставляться с веб-сайта. У Microsoft есть долгий путь к безопасности, прежде чем она сможет использовать ее в Интернете — и даже когда наступит это время, браузеры и доставка контента могут быть достаточно продвинутыми, чтобы сделать их неактуальными.

PHP успешен сам по себе и фактически никоим образом не «угрожает» .NET. Что касается того, почему, ваше предположение так же хорошо, как мое, но верхняя часть списка может быть:

  • его практичный подход к решению проблем (PHP, без сомнения, представил программистам, которые никогда не думали, что способны на это раньше),
  • его активное и вдохновленное сообщество,
  • его всеобъемлющая и эффективная документация (попробуйте эту ссылку, например: http://www.php.net/mysql ), и
  • свобода, которую вы имеете как разработчик, как с точки зрения цены, так и с точки зрения выбора архитектуры кода, делать с PHP как вам угодно.

Microsoft хорошо бы выучить некоторые уроки здесь. PHP.NET был бы началом, но в данный момент Microsoft, похоже, игнорирует язык сценариев №1 в Интернете.

Бизнес как обычно

Так что есть немного боеприпасов для измученных разработчиков PHP. Подводя итог, можно сказать, что, хотя в .NET есть некоторые интересные функции, нет особой причины переходить на его разработку. Прямо сейчас, с точки зрения веб-разработки, Language.NET на самом деле составляет только ASP версии 4.0 (с возможностью написания в C ++ стиле C #).

Если вы рассматриваете Language.NET, стоит задать себе три вопроса;

  1. «Есть ли здесь что-нибудь, что я еще не делаю или не могу сделать?»
  2. «Хочу ли я быть вовлеченным в четкую кривую обучения, определенный стиль кодирования и конкретные стратегии веб-разработки?»
  3. «Мне хочется платить больше за хостинг?»

Отвечая на эти вопросы, у вас будет достаточно четкое представление о том, относится ли .NET к вам. И будьте уверены, вы не пропустите, если решите, что это не ваш котелок с рыбой.

Сказав все это, .NET Framework — интересная технология. Он включает в себя несколько замечательных концепций, таких как поддержка нескольких языков, и имеет потенциал для бесшовной интеграции различных семейств продуктов Microsoft. Также хорошо, что .NET продвигает стандарты XML, такие как XML-RPC и SOAP, которые имеют огромный потенциал для Интернета, и до недавнего времени в значительной степени игнорировались, хотя XML-RPC существует с 1999 года. Но впереди еще долгий путь. Раньше .NET — действительно распространенная технология, и реальное столкновение для сердец и умов разработчиков — это не «PHP против .NET», а J2EE против .NET, которую лучше оставить в другой статье.

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

Услышь обе стороны от спора! Узнайте, почему оппозиция считает, что .NET лучше , и примите решение!