сравнение asp net и php

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

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

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

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php

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

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

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

ПС: Выводы можно дополнить самому. Я описал самые явные различия в технологиях. Много конечно не указал: например работа с объектами имеет некоторые существенные различия. Проприетарность, возможность взлома, возможность отладки, количества IDE под каждую технологию.

Источник

Что выбрать: ASP.NET или PHP

ASP.NET и PHP — две самые популярные технологии среди backend-разработчиков. Разбираем, чем они отличаются и какую лучше выбрать новичку.

Несмотря на то что на PHP написано 79% всех сайтов в интернете, есть и другие технологии, которые хорошо подходят для написания серверной части веб-приложений: Python, Java, Ruby, Node.JS.

В этой статье мы разобрали отличия PHP и его основного конкурента — ASP.NET, доля которого среди сайтов составляет 11,2%.

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php

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

Чем отличаются
PHP и ASP.NET

PHP — это скриптовый интерпретируемый язык, созданный специально для разработки серверной части сайтов. На нём написаны такие сайты, как:

Вот основные отличия этих технологий:

PHPASP.NET
Способ выполненияИнтерпретируется. При каждом обращении к скрипту он запускается, а после выполнения — закрывается. Поэтому на небольших проектах можно обойтись без сборки мусора.Компилируется. Сайт представляет собой приложение, которое создаёт новый поток при каждом обращении. Есть встроенная сборка мусора.

Также стоит отметить значительные различия в синтаксисе. Например, вот как в PHP выводится текст:

Источник

Cравнение PHP и ASP.NET MVC: что лучше

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php

Андрей Батурин

Распространенность двух технологий

За последние годы доля ASP.NET снизилась на 1-2 процента, но эта технология все равно остается второй по популярности во всем интернете. PHP — и вовсе лидер рынка.

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php

Для примера можно посмотреть на крупнейшие порталы. Так, на технологии ASP.NET работают сайты Microsoft, MSN, Dell, Exchanger и другие.

А на PHP — Facebook, Вконтакте, YouTube, Wikipedia и т.д.

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

А теперь давайте разберемся, в чем сходство и отличие PHP и ASP.NET и для каких случаев какой вариант лучше подходит.

Различия между PHP и ASP.NET MVC

Для начала небольшое уточнение: в этой статье мы будем рассматривать не “голый” ASP.NET, а ASP.NET MVC — потому что MVC дает этой технологии много важных дополнительных возможностей.

MVC — это шаблон проектирования, который в том или ином виде может быть применен во множестве языков программирования. Он нужен, чтобы разделить логику сайта на три составляющие: модель, представление и контроллер. Благодаря MVC работать над логикой сайта проще: можно менять одну его часть, оставляя остальные неизменными.

Итак, в чем же разница между PHP и ASP.NET MVC.

Как выполняется

Способ — интерпретация. Каждый раз, обращаясь к скрипту, PHP запускается, а потом закрывается, выполнив действие. Благодаря этому в небольших сайтов сборка мусора не понадобится.

ASP.NET

Способ — компиляция. Сайт на ASP.NET — это приложение. Оно запускает новый поток каждый раз, как к нему обращаются. Здесь предусмотрена сборка мусора.

Насколько простой/сложный

Начать писать на PHP — легко. Если у вас уже есть минимальная база на HTML и CSS, можно первый простой сайт написать за день-два.

ASP.NET

Компактность

Код на PHP занимает мало место, с помощью этого языка вы легко создадите простой сайт с небольшим объемом кода.

ASP.NET

В умелых руках код будет еще компактнее, если использовать MVC. Просто открываете разметку, вставляете туда фрагмент на C#, который и выведет нужную информацию.

Масштаб сайтов

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

ASP.NET

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

Типизация

Есть в обоих вариантах.

Распространенность

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

ASP.NET

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

Уровень дохода

PHP-разработчики получают неплохо, если работают в крупных городах или на фрилансе. В провинции их услуги менее востребованы, следовательно — доход ниже.

ASP.NET

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

Улучшение

PHP быстро развивается и с каждой версией становится все удобнее.

ASP.NET

ASP.NET тоже не отстает в развитии, но его развитие более упорядочено и построено на планах Microsoft. Уже произошел переход на open source и кроссплатформенность. Такие улучшения могут добавить очки популярности этой технологии.

Коллекции

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

ASP.NET

Здесь же большое разнообразие коллекций с многими возможностями: есть и словари, карты и очереди и т.д. Работать с такими коллекциями удобно.

Многопоточность

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

ASP.NET

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

Что же выбрать разработчику?

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php

Выбор технологии для backend’а зависит от конкретных задач и опыта разработчика. О задачах мы писали выше, поэтому здесь хочется проговорить различия по опыту.

Для новичка

Для разработчика с небольшим опытом лучше всего подойдет PHP. На этом языке написать простой сайт можно довольно быстро — так вы сразу увидите результат. В освоении этот язык тоже значительно проще.

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

Из минусов этого языка — для него маловато учебных пособий и профессиональной литературы. В основном, знания придется получать из интернета, форумов и общения с опытными коллегами.

Источник

PHP vs ASP.net. Кто кого?

Автор Cherrygarden, дата публикации 10.07.2012 |

Среди программистов разворачиваются многочисленные дебаты по поводу того, какой язык программирования лучше: PHP или ASP. В основном все статьи и обзоры по этому вопросу сводятся к воспеванию одного или другого языка и являются выражением сугубо личного мнения конкретного коддера. К тому же, прогресс не стоит на месте, и разработчики ежедневно работают над усовершенствованием языков программирования.

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и phpА как же новичку, не искушенному, решить для себя, какой язык программирования выбрать для себя. В этой статье попробую дать ответ. Точнее говоря, сравню некоторые показатели языков, выявлю их достоинства и недостатки, что в итоге поможет нам определиться с окончательным решением. Итак, начнем.

1. Масштабируемость и простота обслуживания

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

Что же касается времени для написания программы на языке, то работа с ASP занимает в два раза больше времени, чем в PHP.

2. Производительность и скорость

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

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

Первый сценарий. Общий

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

Сегодня большинство серверов баз данных, таких как MySQL (в настоящее время принадлежит Oracle), PostgreSQL, MSSQL (Microsoft SQL Server) и Oracle, сражаются за превосходство в скорости и производительности. Мы постоянно наблюдаем рост производительности и новых возможностей серверов баз – данных в новых версиях. Поэтому если программист использует язык структурированных запросов SQL, то его сайт будет иметь большую производительность.

MySQL используется Google, Facebook, YouTube, Yahoo, которые получают огромную аудиторию по всему миру. Поэтому я бы не стал ставить под сомнение способность сервера баз данных MySQL.

Проведя несколько своих исследований на нескольких сайтах онлайн-статистики, по состоянию на момент написания статьи, связи и интерфейсов между PHP и MySQL работает быстрее, чем ASP.net и MSSQL, но это едва заметно.

Второй сценарий. Распространенный

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

На основании тех же исследований, я выяснил, что ОС Linux и ext4 (файловая система) работает лучше (IO), чем ОС Windows и NTFS (файловая система).

Третий сценарий. Редкий

ASP.net, как правило, написаны на C #. Вообще говоря, на момент написания статьи, C # быстрее, чем язык программирования PHP. (Это может измениться, так как каждый язык программирования будет обновляться и совершенствоваться, чтобы бороться за более высокую скорость.) Так что, если необходимо запустить 2000000 циклов выполнения расчетов, ASP.net выигрывает у PHP. Тем не менее, это очень необычный сценарий, так как обычный цикл использует 100 расчетов, а не 2000000.

3. Стоимость

PHP, MySQL, PostgreSQL, веб-сервер Apache и операционная система Linux являются бесплатными, как и все их обновления. Кроме того, отсутствуют дополнительные платы на лицензии на другой физический сервер в качестве резервного при необходимости работать с несколькими серверами для балансировки нагрузки и кластеризации серверов.

LAMP (Linux, Apache, MySQL и PHP) является более популярным набором среди хостинговых компаний, и его популярность приводит к снижению ежемесячных расходов на хостинг c LAMP по сравнению с Windows хостингом.

4. Поддержка и ресурсы

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

5. Редакторы и инструменты

PHP и MySQL не зависят от редакторов, так как к ним имеют доступ обширное число разработчиков. Рзработчики PHP в основном используют такие текстовые редакторы как VI, VIM, Notepad ++.

В то время как большинство ASP программистов используют Microsoft Visual Studio для внесения каких-либо изменений.

VI и VIM очень продвинутые и независимые редакторы (программы) и программисты активно изучают и используют их возможности в полной мере. Это позволяет им писать очень сложные программы быстро и эффективно. Когда речь идет о необходимости использования и интеграции других основных языковых платформ, таких как JavaScript, Ajax, JQuery и т.д., лучше использовать PHP программистов, потому что они знакомы с открытой средой источника и ручного кодирования при использовании VI и VIM редакторов.

6. Независимость платформы

ASP.net построен для работы только на платформе Windows.

7. Сайты, работающие на языках программирования PHP и ASP.net

Сайт

Дата

Платформа

Язык Программирование

Google.com

Ноябрь 1998

Linux

C, Java, C ++, PHP и MySQL

Facebook.com

Февраль 2004

Linux

PHP, MySQL и C ++

YouTube.com,

Февраль 2005

Linux

C, Java и MySQL

Yahoo.com

Linux

C ++, C, Java, PHP и MySQL

MSN.com (принадлежит Microsoft)

ОС Windows

ASP.net

Live.com (принадлежит Microsoft)

ОС Windows

ASP.net

Wikipedia.org

Linux

PHP и MySQL

Amazon.com

Linux и Solaris

C ++, Java, J2EE

WordPress.com

Linux

PHP и MySQL

Вывод

Моё мнение, наверное, вам уже, очевидно, и понятно. Оно читается между строк. Конечно, я отдаю предпочтение языку PHP. Мне он кажется намного проще, шустрее и что самое главное он бесплатный. Вот три главные причины, почему я выбираю его. Однако со мной не согласятся любители ASP и будут закидывать меня помидорами. Ну что ж, это их правда. ASP много лет жил живет и будет жить, ведь это кому-то нужно. Значит не так уж он и плох.

На закуску видео, из которого вы узнаете один из способов избежать пробок:

А на чьей вы стороне в этой битве?

Популярные обзоры хостинга

Если Вы ищете хостинг для своего сайта, то перед Вами популярные обзоры американского хостинга.

Поделитесь статьей с друзьями или сохраните в закладки

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и php

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

Disclosure: I receive compensation from web hosting companies. Данная строчка требование Федеральной Торговой Комиссии США.

сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и phpiPage Обзор
сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и phpBluehost Обзор
сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и phpFatCow Обзор
сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и phpHostgator Обзор
сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и phpHostmonster Обзор
сравнение asp net и php. Смотреть фото сравнение asp net и php. Смотреть картинку сравнение asp net и php. Картинка про сравнение asp net и php. Фото сравнение asp net и phpWebhostingpad Обзор

Можете прочитать все Обзоры Хостинга или посмотреть Видео Обзор

Источник

В письме к нам Алексей Филатов отметил, что считает свой обзор субъективным. На взгляд же редакции, при всей неполноте статьи, объективности в ней куда больше, чем в подробных исследованиях, авторы которых стремятся доказать себе и другим, что однажды выбранная ими технология лучше остальных. Итак, что лучше — PHP4 или ASP.NET — с точки зрения независимого веб-программиста? — Владимир Гуриев.

PHP — наоборот, открытая и бесплатная технология. Разумеется, расшифровывать сегодня PHP как Personal Home Page было бы неправильно, но отголоски прошлого дают о себе знать и по сей день. PHP — скриптовый язык, созданный исключительно для динамического вывода HTML. Это не значит, что на нем нельзя создать крупный проект. Это значит, что создать крупный проект на PHP дорого и трудно.

Для программирования на PHP не нужна дорогая среда программирования. Чтобы научиться писать более или менее работоспособные скрипты, достаточно одного-единственного учебника. С ASP.NET такой фокус не пройдет. Без Visual Studio, MSDN и иногда — доступа в Интернет там делать нечего. Большую часть времени начинающий разработчик тратит на штудирование MSDN. А к тому времени, когда он выучит навороченную модель классов и все необходимые ему функции, Microsoft наверняка придумает что-то новое. Помнится, кто-то говорил, что чем больше вариантов предложено, тем больше времени уходит на выбор лучшего. ASP.NET — яркое тому подтверждение.

Зато если выучить… Счетчик посещений? — пожалуйста, десять строчек. Добавить сюда такую же таблицу? — два-три щелчка мышкой, пятнадцать строчек текста. Другой вывод информации? — нет проблем: делаем дочерний класс, перекрываем функцию, отводим на отладку четверть часа, привязываем к выводу второй таблицы — готово! Вообще, работа в ASP.NET с применением Visual Studio сильно напоминает работу в Delphi, с той лишь разницей, что все происходит гораздо быстрее, проще и логичнее. Основные же языки, на которых пишутся ASP.NET-приложения, — Visual Basic.NET и C#, — являются наследниками соответственно Visual Basic и Java/C++. И если переход с Visual Basic на Visual Basic.NET требует некоторого пересмотра философии программирования (так как от старого Бейсика осталась лишь часть синтаксиса и название), то переход с С++, и особенно с Java на C#, органичен настолько, что не должен занимать больше двух-трех недель.

Теоретически под ASP.NET можно писать программы на любом языке, для которого имеется соответствующий компилятор. Однако на практике для создания ASP.NET-приложений используются главным образом Visual Basic.NET и C# (где-то позади плетутся managed C++ и J#). Некоторые программные среды — например, Delphi 8 — обеспечивают номинальную поддержку ASP.NET, но толку от нее, прямо скажем, немного.

«Родная» среда ASP.NET — IIS, работающий под управлением Windows. Да, IIS известен как не самый стабильный веб-сервер, а Windows — как не самая стабильная операционная система. Но вот небольшая история из жизни.

На одной моей работе стоял сервер под управлением Windows 2000 и IIS, на котором сисадмин держал в тот момент больше двух сотен сайтов. Большая их часть состояла из динамически сгенерированных ASP-страниц (ASP.NET тогда только появился, и единственный, кто рисковал с ним работать, — правда, на отдельной машине, — был ваш покорный слуга). Так вот, сервер за два года перезагружался всего пару раз, если не считать обязательных перезагрузок после установки критических обновлений. На другой работе, которой я занимался параллельно, стоял сервер с FreeBSD 4.x, исполнявший роль прокси/файрволла для локальной сети. Он падал раз, а то и два раза в месяц. Я сам некоторое время был сисадмином и не понаслышке знаю, как надо постараться, чтобы достичь таких впечатляющих результатов в стабильности работы и Windows, и FreeBSD. С тех пор я уверен, что 90–95% стабильности работы сервера обеспечивается вовсе не выбором «правильной» системы, а выбором «правильного» сисадмина.

По идеологии Microsoft, программист — маленький винтик хорошо отлаженного механизма. Одиночки-камикадзе вроде меня, свято верящие в светлое будущее этой корпорации, не считались и не считаются. Исключаем нас — и остаются большие, быстро и постоянно расширяющиеся интернет-проекты, где один программист отвечает за один модуль. А каким, собственно говоря, еще проектам требуется кроссплатформность и мультиязычность по умолчанию? Только таким, где могут нанять такого профи, что язык, на котором он пишет, отличается от основного проектного. Только таким, которым впоследствии может потребоваться безболезненное портирование на Pocket PC, MAC, могут потребоваться интернет-сервисы и т. д. Вот в таких проектах ASP.NET разворачивается на славу. Проблемы с производительностью, нехватка ресурсов? Чепуха! Купим еще компьютеров, купим еще программистов, купим звезды с неба, лишь бы темпы разработки не падали.

Технология РНР в корне отличается от ASP.NET. Больше всего она похожа на классические ASP-приложения, только скриптовый язык в ней один. Язык РНР напоминает сборную солянку из C и Perl с небольшим добавлением специй в виде Basic и даже Pascal. Все это натянуто на каркас из примитивной модели классов, которая представляет собой привычные структуры C с кое-как приделанным сбоку наследованием. Правда, недавно появилась пятая версия PHP, предоставляющая неплохие возможности для объектно-ориентированного программирования, однако большого распространения она пока не получила.

PHP4 слишком доверяет программисту. В нем нет типов, объявлять переменные необязательно, существуют опасные конструкции. Синтаксис PHP заточен под быстрое и простое решение типовых проблем. При этом вся ответственность за опасные трюки лежит на программисте. Что, в частности, приводит к такому распространенному явлению, как обнаружение серьезных ошибок в коде через месяц-другой после сдачи проекта.

Область применения PHP — небольшие проекты, которые делает или тесно сработавшаяся группа, или вообще один человек. Благодаря бесплатности PHP (а также бесплатности MySQL и самой платформы), этот язык становится идеальным выбором для небольших авторских сайтов или сайтов для малого и среднего бизнеса. Кроме того, PHP работает быстрее.

Теоретически ASP.NET должна работать быстрее (все-таки здесь мы имеем дело с единожды скомпилированными бинарными кодами, тогда как PHP-скрипты каждый раз обрабатываются заново). Однако PHP летает как на IIS, так и на Apache и при большой (правда, искусственно вызванной) нагрузке всегда выдает результаты лучше, чем ASP.NET. И уж тем более лучше, чем классический ASP. Обескураженный, я пошел на сайт Microsoft, чтобы найти хотя бы одну статью, в которой бы сравнивалось быстродействие PHP и ASP.NET. Безуспешно. Зато на других ресурсах нашлось довольно много статей, авторы которых пришли к тому же выводу, что и я. «Родная» связка PHP + MySQL + Apache работает быстрее ASP.NET + IIS + Microsoft SQL Server 2000.

Значит ли это, что ASP.NET хуже? Отнюдь. На том же сайте Microsoft есть масса данных, из которых следует, что решения на базе Linux/Unix в целом обходятся среднему и большому бизнесу намного дороже, чем аналогичные решения на основе Windows (Было бы странно найти на сайте Microsoft иную информацию. Но доля правды в этом есть — бесплатность технологий вовсе не означает бесплатности их использования). Такие, казалось бы, парадоксы на самом деле вполне логичны. Скорость работы обеспечивается тем, что все РНР-приложения работают в едином адресном пространстве, тогда как ASP.NET за счет навороченной модели классов многократно проверяет и перепроверяет данные, удерживая каждое приложение в отдельном адресном пространстве. Первый подход более быстр, но менее надежен, второй — более надежен, но за это приходится платить. Чудес не бывает. Быстродействие же связки РНР + MySQL обеспечивается тем, что разрабатывающие эти две технологии группы очень тесно сотрудничают. То же самое и со связкой ASP.NET + MS SQL.

Однако скорость работы РНР с другими СУБД (через ODBC) разочаровала. С большинством известных СУБД, включая MS SQL Server, SAP и MaxDB (тот же SAP, начиная с версии 7.5), он у меня работал медленнее ASP.NET. Насколько я понял, из-за того, что ASP.NET старается делать из БД как можно меньше выборок, помещая все актуальные таблицы и даже связи между ними в кэш (технология ADO.NET в случае с MS SQL), в то время как РНР склонен генерировать множество запросов к СУБД.

Парадокс с ценами, когда оплатить несколько лицензий Microsoft дешевле, чем взять бесплатные Unix/Linux, PHP и MySQL, тоже вполне логичен. Следует учитывать, что, во-первых, эти продукты бесплатны, пока вы не собираетесь делать на них коммерческие проекты (Linux и PHP, конечно, бесплатны без всяких условий. Коммерческая лицензия в полном смысле этого слова есть только у MySQL. Некоторые затраты на PHP, пожалуй, грозят только программистам, делающим скрипты на продажу. Дабы не открывать код скриптов, им приходится использовать продукты компании Zend, а они, увы, платные. — Прим. ред), а во-вторых, что разработка и поддержка проектов под эти платформы в целом обходится дороже. Кроме того, Linux в ряде случаев работает медленнее Windows. Возможно, я ошибаюсь, но ни для какой СУБД я и близко не видел такого количества критических исправлений и сообщений, как для MySQL. А все это есть риск (Редакция умывает руки. Все рассуждения о сложности создания кластеров на Unix целиком на совести автора. Лично мне кажется, умеючи — это не так уж долго, что на Windows, что на Unix, но экспертом в данном вопросе я не являюсь и судить не берусь. — Прим. ред.).

Теперь PHP. Если кратко охарактеризовать ощущения от работы с ним — это постоянная отладка, дебаг. И дело даже не в том, что полноценного дебаггера пока нет (по крайней мере, лучший, что я нашел, Zend Studio, не идет ни в какое сравнение с дебаггером Visual Studio), а в том, что само устройство языка способствует серьезным логическим ошибкам.

Вот пример, который недавно прислала мне однокурсница, попросив помочь:

Сценарий работает, но работает неправильно.

Даже примитивная опечатка (выделена красным) приводит к логической ошибке, которой в C# не было бы в принципе. Вообще, в РНР объявление переменных отсутствует как класс, что, с моей точки зрения, большой минус. А любой сведущий в программировании человек понимает, к чему приводит отсутствие типов в крупном проекте.

Конечно, программисты на РНР могут сказать, что я ничего не понимаю: ведь достаточно залезть в php.ini и настроить вывод предупреждений. Но и здесь не все так просто. Моему знакомому PHP-программисту недавно позвонил работодатель, у которого завис сайт. В результате выяснилось, что хостер обновил PHP с версии 4.3.6 до 4.3.8, в которой предупреждения об использовании необъявленных переменных оказались по умолчанию включены. В итоге сайт стал представлять собой сборник всевозможных предупреждений от движка PHP, поскольку приятель, привыкнув к равнодушию PHP, никогда не затруднял себя объявлением переменных.

Этот факт хорошо отражает ситуация на рынке труда: соотношение РНР- и ASP.NET-программеров сейчас составляет 3:2, что говорит как о доступности бесплатных продуктов, так и о большом количестве небольших, но амбициозных проектов, для которых PHP подходит идеально. Иная ситуация, например, в Израиле (там соотношение примерно 1:10), Америке и Европе.

Заработок ASP.NET-программиста тоже выше, и если хороший PHP-программист получает у нас в лучшем случае 800, ну максимум 1000 долларов (информация с www.job.ru), то зарплата ASP.NET-программиста, как правило, начинается с 800 долларов. Оно и понятно — ответственности больше, работы больше, геморроя больше, свободы меньше.

Итак, маленькие и средние проекты — удел маленьких групп программистов и PHP; средние и большие — удел больших групп, использующих продукты Microsoft (Это какая-то ложная дихотомия. Можно подумать, что в мире есть только PHP и ASP.NET. Масса крупных проектов сделана на Perl, который лишен перечисленных недостатков PHP и прекрасно работает. — Прим. ред), а также очень немногочисленных хорошо организованных групп программистов на РНР; гигантские проекты делят между собой продукты HP, IBM, Sun, Oracle, и расценки там в несколько раз выше. Но это уже совершенно другая история.

Что выбрать начинающему программисту? Затрудняюсь ответить однозначно. РНР, конечно, проще… но я все-таки советовал бы изучать ASP.NET, у него абсолютно точно есть будущее в средних и крупных компаниях, чего не скажешь о РНР. Отмечу также, что ситуация на рынке труда всего лишь год-полтора назад была примерно 1:9 в пользу РНР, и радикальное изменение этого соотношения не может не насторожить.

Если же повезет и если ты действительно хороший программист — можно попасть в «совершенно другую историю», где и зарплата совершенно другая. Этому может способствовать участие в различных конкурсах, проводимых компаниями (попасть туда иным путем, без серьезных наработок на стороне, очень трудно).

Предлагаю вам два варианта (на ASP.NET и на PHP) одной и той же простенькой программки. Оба написаны в лоб (специально) и решают одну и ту же задачу: подсчитывают, сколько раз та или иная буква встречается во введенной строке.

Я специально убрал файл с шаблонами и текст, который автоматически генерируется Visual Studio. Здесь только то, что написано «руками»; реальный текст программы раз в пять больше. Я сделал это, чтобы показать, как работа с собственно HTML в ASP.NET намеренно сводится к необходимому минимуму (в данном случае — к обработчикам событий, как в обычном визуальном языке программирования). Таким образом, становится возможной полностью раздельная работа программистов и дизайнеров, когда для радикальной смены дизайна программист, как правило, не нужен. В РНР это тоже можно реализовать путем применения шаблонов, но заметно большей кровью.

А теперь тот же код на РНР:

Очевидно, что в РНР правит балом динамический вывод HTML, тогда как в ASP.NET делано все, чтобы программист по возможности вообще не думал об HTML.

ASP.NET : поначалу темпы разработки должны резко падать, потом стабильно расти и в конце концов остановиться на определенном уровне.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *