CodeNet / Веб программирование / ASP / ASP.NET / Производительность
PHP против ASP - В примерах, господа!
Данная статья является комментарием к статье «PHP против ASP - делайте ставки, господа!». Из-за его объема и полноты мы решили вынести этот комментарий в отдельную статью.
Ну привет всем.
Написал несколько проектов на PHP. К сожалению ни один не дожил до сегодняшнего дня. Был проект Melodyland, написанный на ASP, www.melodyland.ru , я частично переписал его на ASP.NET (C#) . Сейчас пишу свой сайт на ASP.NET www.melodyland.ru/goodman (потом переедет, сейчас только можно посмотреть фотки, там идет выборка по базе данных). Все работает на связке Win2000+IIS+MS SQLserver2000. Машинка - 500 целерон, 128 памяти чего слышу? ну да ладно, все равно не моя. Оба АСП на ней летали при загрузке 30-50 пользователей на сайте (АСП.НЕТ летал после первичной компиляции).
Ощущения. РНР-скрипт запросто можно написать болкнотом, открывая книжку. ASP.NET без Studio и MSDN (а также в особо тяжелых случаях - Инета) бесполезен (видимо, поэтому и компилятор бесплатен... хех). Большая часть работы в Студио заключается в том, что ты все время учишься использовать жутко навороченную классовую модель и при этом лазишь, лазишь и еще раз лазишь по МСДН. Можно сказать, что треть времени разработчик сидит в МСДНне.
Зато потом... счетчик посещений? - пожалуйста, 5 строчек. Добавить сюда татакую же таблицу? Пожалуста, два щелчка мышкой, 10 строчек. Другой вывод? Пожалуста! Нестим класс, перекрываем процедуру, отлаживаем 5 минут, готово, привязываем к выводу второй таблицы, смотрим. Абстрактно ощущения от работы с .NET - что-то среднее между Delphi и C++
- все время ищещь компоненты, но, при этом головой тоже работать приходится, писать самому. Причем держать схему проекта в голове надо постоянно. Потому что если что забудешь- работа, с того момента, как забыл, становится бессмысленной и приходится возвращаться к "контрольной" точке. Сламое главное в .NET - это стадия плаирования, как общего, так и частного. Без нее все рухнет. Именно поэтому .NET плохо подходит одиноким программистам или маленьким группам (маньяки типа меня, свято верящие в светлое будущее M$, не считаются). Территория .NET - это гигантские, бытро и постоянно расширяющиеся инет-проекты, где один программист в лучшем случае отвечает за один модуль. Ну скажите где еще вы найдете, чтобы в проекте люди писали на разных языках? Только в проектах, которые могут позволить себе нанять профи, пишущего на языке, отличном от проектного основного. Производительность? Не хватает ресурсов? Купим еще компьютеров, лишь бы темпы не падали. Вот в таких проектов РНР-программистам точно труба дело. Почему: потому что им потребуется куча координаторов, которым денег платить нада. Координаторов, большую часть работы которых берет на себя .NET
И, кстати, большинству unix-систем там тоже делать нечего (не надо плеваться! Stand-alone - это прекрасно, но все знают, что сделать кластер на юнихе намного сложнее, и соответственно, денег уйдет больше. Я НЕ говорю о гигантских суперкомпьютерах, я говорю о парке в 20-50 машин), потому что за то время, пока сисадмины на FreeBSD подключат к кластер-серверу дополнительные машины, програмисты на Win уже давно будут писать следующий модуль. Автоматизация взаимодействия между машинами на WinServ2003 - одна из сильнейших сторон этой системы.
Теперь PHP. Если коротко охарактеризовать ощущения от работы с ним - это постоянный дебаг. И дело даже не в том, что нормальная IDE наконец-то выпустили совсем недавно (zend.com),
дело в том, что сам язык так устроен, что в нем очень легко допускать серьезные логические ошибки. Вот пример, который недавно прислала мне однокурсница, попросив помочь:
<p> <? $bukvi = "abcdefguihuiy"; $stroka = "abcdrrrrrrrrrrrrrrr"; echo $stroka[0]; echo "<br>"; echo $bukvi[0]; echo "<br>"; if ( $srtoka[0] == $bukvi[0] ) echo "совпадают"; else echo "не совпадают"; ?> </p>
Сценарий работает, но работает неправильно.
Даже примитивная опечатка приводит к логической ошибке, которой в C# никогда бы не было в принципе. Вообще, в РНР обьявление переменных отсуствует как класс, что с моей точки зрения, большой минус.
Итак, в РНР, написав скрипт вы обязательно будете сидеть над ДЕБАГОМ, причем делать его придется руками через вывод чего надо в промежуточных местах алгоритма.
Порой найти ошибку очень сложно, особенно когда она появляется только при определенных обстоятельствах, ее можно вообще не выявить до сдачи проекта. В этом минус РНР, в этом же его плюс.
За то время, пока вы в С# будете реализовывать нужные классы, сидеть над их документацией и реализацией, приводить типы и писать всякие интерфейсы для коллекций, чтобы потом одним махом за 5 минут написать страницу,в РНР вы ту же страницу 10 раз напишете. Только вот незадача: следущая такая же страница на ASP.NET делается так же за 5 минут, а в РНР приходится затрачивать все то же время. Нужно визуально в выводе что-то на странице изменить - в АСП.НЕТ 5 минут, а в РНР - придется искать и править вывод echo. Придет другой программер и, немного поразбиравшись с вашими классами, и даже не заглядывая в их устройство сможет создать такую же страницу за 5 минут, а программист на РНР предпочтет скорее переписать все заново, чем разбираться в вашем коде.
Надеюсь, по принципам программирования все понятно. Теперь о скорости. Здесь и говорить нечего - РНР летает. Я юзал его через IIS5, IIS6, РНР 4.3 (Win). Почему не через Апач? Потому что удобнее, когда дома можешь тестить и асп и РНР. Потому что виндовый апач я так и не смог нормально запустить службой - он активно оставлял различные ворнинги о нехватке памяти в журнале (хотя и работал). И вообще, потому что ИИС удобнее. Так вот, РНР летает (хотя дотнет после первичной компиляции тоже не особо тормозит). Одни и те же функции РНР выполняет от 10 до х.з сколько % быстрее. Но вот работа с базами данных, отличных от MySQL не особо порадовала. С MS SQL ASP.NET быстрее, причем намного. Через OLE они работают одинаково. ODBC - РНР тормозит. А что такое MySQL? Возможно, я ошибаюсь, но ни для какого БД-сервера я не видел столько багфиксов и статей про критические уязвимости. Со скоростью мне тоже непонятно, не удалось, да и не было времени протестить связки PHP+MySQL и ASP.NET+SQLServer, однако я так понимаю, что в данном случае все очевидно, т. к. скорость никогда не была сильной стороной Микрософта . Впрочем, слабой тоже (кто не согласен - могут потестить различные проги под, например Redhat 8 и WinXp. Я точно уверен насчет кваки и пары-других приложений).
MSSql - это абсолютно нормальный, выделяющийся достаточно большой стабильностью работы и хорошими возмоностями масштабирования сервер, орриетированный на фирмы и небольшие предприятия. Кому нужен ОЧЕНЬ серьезная СУБД- могут идти к Ораклу. А MySQL - это скорее Stand-alone-ориентированная СУБД, как раз то что нужно для не очень больших серверов (что отнюдь не означает, что на них не могут выполняться серьезные приложения...). Все это плюс бесплатность MySQL и РНР, плюс скорость работы этой связки без сомнения делают их ИДЕАЛЬНЫМИ для маленьких и средних проектов, в которых участвуют несколько или небольшая группа (очень желательно, чтобы сработавшихся) программистов. И для одиночек тоже. У средне-больших или больших-гигантских проектов с РНР очень вряд ли что-то получится за деньги, меньшие или равные, что придется выложить за лицензию Microsoft. Тем же, кому нужны гигантские проекты, просто пойдут и закажут их у HP, IBM или Sun.
А у РНР есть еще один козырь - это система, на которой по умолчанию все должно запускаться - *nix подобная. Во-первых, большинство из них бесплатные или стоят меньше Win (хотя админы для них стоят дороже на 20-50% в месяц; поддержка тоже стоит денег, причем неслабых). Во- вторых, хотя я с пеной у рта буду долго спорить, по поводу того, что устойчивее в целом Unix ведет себя предсказуемее. В - третьих, в нашей стране до фига непонятных людей, которые способны ради удовольствия иметь СВОЮ систему терпеть различные тормоза, сидеть под риском, что твою ветку закроют (это я про Linux), без конца копаться в man'ах и говорить, когда к ним приходишь "а я не могу подключить твой зард, на нем NTFS, приноси комп с сетевухой" (это я тоже про линукс; почему-то я свои FreeBSD'ные партиции в конце концов смог подключить к винде). Дабы не спорить насчет устойчивости могу сказать: в одной компании, где я работал, Wi
Win2000, державшая на IIS 250 динамических (ASP) веб-сайтов за три года упала всего раз, и то на пару часов, потребовалась лишь переустановка самого IIS. В другой сервер на FreeBSD стабильно падал пару раз в месяц, причем пару раз насмерть, поэтому я абсолютно уверен, что стабильность системы зависит вовсе не от типа ОС, а от наличия или отсутствия кривых рук у сисадмина.
Таким образом, еще раз повторяю, что ASP.NET (и вообще вся .NET) - система для больших проектов (а киким еще нужно быть ПО УМОЛЧАНИЮ кроссплатформенными?).
Написав программу на C# ее будет очень легко портировать на Pocket PC, с небольшими изменениями перенести прямо в Web; для того, чтобы запустить ее на Linux, вообще уже ничего не нужно кроме Mono (www.mono-project.com).
Напоследок могу посоветоваь: зайдите на job.ru и посмотрите на ситуацию с вакансиями. На одну ASP, ASP.NET вакансию приходится 10-15 РНР - вакансий. Только вот ASP.NET-программеру сходу предлагают зарплату как минимум в 2 раза больше, чем РНР.
Как и должно быть. Гемморой стоит денег.
На прощание предлагаю вам 2 варианта одной и той же программы, написанной на ASP.NET и PHP. Обе они написаны "в лоб" (специально :) и решают одну и ту же задачу: вывод колчиества букв во введенной строке.
ASP.NET:
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace photos { /// <summary> /// Summary description for WebForm6. /// </summary> public class WebForm6 : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox TextBox1; protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Label Label1; private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.TextBox1.TextChanged += new System.EventHandler(this.TextBox1_TextChanged); this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void TextBox1_TextChanged(object sender, System.EventArgs e) { } private void Button1_Click(object sender, System.EventArgs e) { string alphabyte= "ABCDEFGHIJKLMNOPQRSTUVWXYZЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ"; int[] count =new int[alphabyte.Length];//Массив-счетчик string Text=TextBox1.Text;//Забираем данные Text=Text.ToUpper();//Введенный текст к верхнему регистру foreach (char t in Text)//Идем по строке как по массиву { for (int i=0; i<alphabyte.Length;i++)//Идем по массиву-счетчику { if (t==((char)alphabyte[i])) count[i]++; } } //Вывод for(int i=0; i<count.Length;i++) { if (count[i]!=0) { Response.Write("Буква "+alphabyte[i]+" встречается "+ Convert.ToString(count[i])+" раз <BR>"); } } } } }
Это только файл с программой; к счастью, большая его часть сгенерирована Visual Studio и собственно моя программа находится в обработчике Button1_Click
К нему прилагается еще шаблон HTML-файла, благодаря именно котрому можно почти мгновенно полностью менять дизайн страницы (пишушие на РНР оценят:)
Шаблон (вообще другой файл):
<%@ Page language="c#" Codebehind="WebForm6.aspx.cs" AutoEventWireup="false" Inherits="photos.WebForm6" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <meta name="vs_snapToGrid" content="False"> <title>WebForm6</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 328px; POSITION: absolute; TOP: 40px" runat="server" Width="288px"></asp:TextBox> <asp:Label id="Label1" style="Z-INDEX: 102; LEFT: 216px; POSITION: absolute; TOP: 40px" runat="server" Width="120px" Height="24px">Введите слово</asp:Label> <asp:Button id="Button1" style="Z-INDEX: 103; LEFT: 632px; POSITION: absolute; TOP: 40px" runat="server" Width="128px" Text="Посчитать!"></asp:Button> </form> </body> </HTML>
Перемещая теги <asp: ...> внутри страницы и произвольно помещая их в любое место, можно в любой момент изменить дизайн, не прибегая к помощи программиста вообще. В случае с РНР это практически невозм
В случае с РНР это практически невозможно
А теперь тот же код на РНР:
<form action="test_update1.php" method="POST"> Введите слово <input type="text" name="str"> <input type="submit" name="submit" value="Посчитать"> <?php $quiz_string=$_POST['str']; if ($_POST['str']) { //$alphabyte='QWERTYUIOPASDFGHJKLZXCVBNMЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ'; $quiz_string= strtoupper($quiz_string); for ($i=0; $i<strlen(quiz_string);$i++) { for ($j=0; $j<strlen($quiz_string);$j++) { if ($quiz_string[$j]==$quiz_string[$i]) {$result[$j]+=1;} } } echo '<br>'; for ($j=0; $j<strlen($quiz_string);$j++) { if (strlen($result[$j])!=0) echo "Буква $quiz_string[$j] встречается $result[$j] раз<BR>"; //echo $quiz_string; } } ?> </form>
И Все.
Мой общий вывод, не претендующий на обьективность: скорость разработки при применении ASP.NET вначале должна резко падать, потом расти и в конце концов остановиться на определенном уровне. В случае с РНР чем больше код тем больше дебага, поэтому скорость спустя некоторое время с первоначально большого уровня должна начать падать, причем не удивлюсь если она будет падать пропорционально квадрату обьема кода.
За сим откланиваюсь. Кто хочет продолжить дискуссию - пишите на goodman@melodyland.ru
Post Scriptum: Вот и пример багов, прямо на этом сайте. Человек, который разработал форум, не подумал, что кто-то может написать достаточно много текста, больше чем размер поля в БД, поэитому, когда я пытался поместить весь текст,все сработало нормально, но часть его отсеклась, причем без всяких предупреждений. ASP.NET как раз и ориентирован на избежание таких ситуаций, а вовсе не на скорость.
Оставить комментарий
Комментарии
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Collections.Generic"%>
<%@ Import Namespace="System.Linq"%>
<head runat="server">
<script runat="server">
protected void CalculateIt(object sender, EventArgs e)
{
grid.DataSource = txt.Text.GroupBy(ch => ch).Select(ch => new { Character = ch.Key, Count = ch.Count() });
grid.DataBind();
}
</script>
</head>
<body>
<form runat="server">
Введите слово:
<asp:TextBox ID="txt" runat="server" />
<asp:Button runat="server" onClick="CalculateIt" Text="Обработать" />
<asp:DataGrid runat="server" ID="grid" />
</form>
</body>
</html>
ASP.Net (по мимо своей "сложности") пугает большими размерами страниц в случае использования ViewState (я смотрю, многие полезли гуглить, что это такое, хотя такие примитивные вещи надо знать, сравнивая среды) и жёсткой привязкой к Microsoft (к стати, я его тоже не люблю), которая активно пропагандирует улучшение железа, а не кода (пример: Vista и та же Visual Studio, о которой ходит слух (и я ему верю), что в неё намеренно вставлены "тормоза" для понижения работоспособности и повышения требования к системе. Такой монополист, как Microsoft, может себе это позволить - всё равно будут брать). Но писать в нём можно и без студии. Большинство проблем ASP.Net'овских проектов в программерах, которые, обрадовавшись простоте компоновки дизайна забыли, что что-то и руками надо писать. HTML странички тоже можно в ворде лабать :-).
Контора, где я сейчас работаю, занимается профессиональной разработкой web под крупных клиентов. Так вот php у нас нет ВООБЩЕ (хотя вакансий в инете (на сайтах по удалённой работе на дому) - море), а разработчиков на Java в четверо больше, чем ASP'ешников. Так что обсуждение лучше вести на тему "ASP.Net против J2EE (или J2SE - я в джаве не специалист). А php оставит в покое. Каждому своё. Может лучше броситься в крайности устроить спор "php или javascript"? Сравнить аплеты с сервлетами?
Очень странно, что никто не вспомнил, об основном различии: php интерпретатор, а ASP.Net - компилятор, и не развил тему в эту сторону (раз уж начали спорить).
Что касается сложности изучения, то я что php (правда, я тогда вообще слабо программил :-)), что ASP.Net (на C# пишу) освоил (читай "ознакомился и что-то средней сложности написал", но тут принято говорить "освоил", поэтому не выделяюсь) за 2 недели. "Крутым разработчиком", конечно, за это время не стал, но общее представление получил.
Если встанет передо мной вопрос "php или ASP.Net", я в первую очередь подумаю, какова масштабность проекта, и что от него требуется, а не о том, кто "круче", у кого синтаксис красивей, где ООП реализован, а где - нет (а, может, оно там просто не надо?) и т.д.
Авторов коментов, мол "есть функция count_chars()", прошу заметить, что в следующей версии php может появиться (даже с подачи этого форума :-)) функция, которая полностью этот код выполняет. Тогда тоже скажете "есть же стандартная функция, учи php!"? Я тоже могу пример на ASP.Net вдвое короче написать (не за счёт расположения нескольких операндов и скобок в одной строке, как это тут уже демонстрировали). Автор статьи писал ТРИВИАЛЬНЫЙ пример, использующей БАЗОВЫЕ функции.
З.Ы.
Людей (они поймут, о ком это:-)), которые столкнулись с php, опозорив свою контору в инете, написав в блокнотике 3 странички (и именно за то, что у них это получилось, полюбившие php) и считают, что ASP.Net - следующая версия ASP (т.к. ни того ни другого в глаза не видели), я попрошу не флэймить в эфире эмоциями о том, в чём не понимают.
<form action="crack.php" method="POST">
Введите слово
<input type="text" name="str">
<input type="submit" name="submit" value="Посчитать">
<?php
if (!empty($_POST['str']))
{
echo "<br>";
$result = count_chars($_POST['str'],0);
for ($i=0; $i < count($result); $i++) {
if ($result[$i] != 0)
echo chr($i)." встречается в строке $result[$i] раз(а).<br>";
}
}
?>
</form>
Он видимо ничего не знает о Smarty, MadTemplate (и др...) и других шаблонизаторах :), с выходом PHP5 этот пример можно переписать на XML & XSLT - вот оно полное отделение логики от кода!
Что качается спора - я за PHP!!!!
Будущее за бесплатным софтом!
Большой плюс у ASP перед РНР в том, что у него мощщный редактор и дебаггер, в остальном ничего не могу сказать. Если приглядеться, то и эта страница выполнена на РНР, а не на ASP.
Первый пример помучает мозг, тем у кого нотисы выключены :) (решение инициализироать всегда переменные и включить нотисы)
И мне интересно, что у автора нет привычки делать отступы в исходнике, как автор собирается разбираться в исходниках после "праздников" в честь asp? :) Goodman, без обид.
АСП - ПХП что лучше, что хуже.
Вопрос некорректен в принципе.
Т.к. не привязан к контексту.
Самое главное в программировании - это бизнес, для которого софт пишется.
На него мы работаем. Бизнесы у всех разные.
Ему пофиг на чем будет разработка только
получить по максимуму отдачу от инвестиций.
Если у бизнеса есть шанс положив лимон, получить 10 лимонов, он это сделает. Если нет тогда он будет искать другое решение или не будет вкладыватся вообще.
Да и время у бизнесов по разному движется, одни согласны постоянно доплачивать только получить побыстрей продукт, другим не выгодно постоянно платить и они готовы подождать, чтобы получить стоящую вещь.
Кстати за 15 лет, что я занимаюсь программированием, заметил такую вещь: чем больше человек пренебрежительно относится к языку программирования, продукту, методологии тем меньше он его знает. В конечном счете все зависит от мастерства.
По поводу того что асп для больших проэктов а пхп для средних и ниже, неувязочка...
Я работаю в одной небольшой конторе, в которой цмс-система построена на пхп+"любой промышленный SQL сервер"+XML+XSL+
К стати, вмонтирован ВЕБ-редактор с помощью которого мона любому дизайнеру или юзеру править хтмл как в фронтпейдже или дримвивере,
Есть полное распределение между логикой представления и логикой обработки, так-что даже темплейты править мона Дизайнеру...
Модульность, и мы (более 100 человек) можем работать над одним прожктом и без координатора... только задания разгребая от заказчика чего он хотит. ЦМС работает сервисами, тоесть один модуль её храниться на серверах а Америке, другой, в англии... без проблем... всего немного более 10 серверов. Вот вам масштабы.
Вот вам, как говорится, и PHP. Уверен что на асп мелкософтовцы проделали большую часть кода для программеров и основные классы, которых нет на пхп. Да, согласен что там куча дополнений и компонентов которые есть и готовы. А кто не разучился искать найдёт всё в инете для пхп.
На счёт оплаты труда, тут сомнительный вопрос пхп-программеров больше, а "псевдо"-программеров ещё больше, но если сравнить профи, то что аспшному, что пхпшному программеру плотиться приблизительно одинаково. Просто на пхп легче брать старт. А вот судя по опыту наших асп программеров, то работать они не могли пока не поняли что такое вообще ООП и не научились нормально программить. Последнее для тех, кто пишет код на пхп не так сильно заметно и написав несколько работающих строк люди думают что уже программисты на пхп, и таких много.
Статья вообщем в которой куча ошибок, надеюсь автор более подробно изучит хорошие стороны пхп и выпустит бета версию своего "продукта".
про МС-форева... скажу так: сам юзаю винду, удобно. Но нужно использовать продукты по назначению, вот и всё.
А кто тебе мешает настроить вывод всех ошибок?
И тогда ты будешь видеть где у тебя переменная в сравнении не проинициализированна и т.п.
Я реализовал что-то подобное АСП.нету на ПХП,
типа контроллер-модель-вью
сделать табличку пару часов, думаю скоро доведу до пары минут, сделать ещё чего-то для чего написан модуль примерно столько же.
Полноценный ООП есть, в 5-ой версии, которая уже как год выпущена.
Вощим ПХП рулёзней всё-равно.
Я реализовывал на ПХП+МУСКЛ или ПХП+Постгрес, довольно большие системы автоматизации и учёта производством, и главное всё работает и работает не медленно.
1. У меня в своих проектах на PHP есть четкое разделение на все три уровня MVC паттерна, причем получилось оно само сообой, я не ставил себе целью соответствие MVC..
2. Для PHP уже есть готовые и мощные фрэймворки вроде limb, есть PEAR, с помощью которых можно выполнять довольно сложные действия с высоким уровнем абстракции.
3. Если не устраивает PHP, можно посмотреть в сторону PERL/Python, где многих его недостатков нет. Для больших проектов лично мне больше импонирует технология mod_perl.
4. По поводу нестрогой типизации в PHP мне как-то ни тепло ни жарко. Хотя удобно бывает использовать конструкции вроде $foo = $foo['bar']. Да, использование error_reporting(E_ALL) не дает возможности не заметить глупые ошибки и опечатки.
Приятно провел время читая эту статью.
from quixote.html import htmltext
def Count_Letters(request):
form = AskForLettersForm() #form
form.handle(request)
if not form.form_submitted(request):
out = form.render(request, action_url='count_letters')
else:
out = ''
countd = {}
form_result = form.process(request)
letters = form_result['letters']
for l in letters:
countd[l] = countd.has_key(l) and (countd[l]+1) or 1
for l,cou in countd.items():
out += l+":"+str(cou)+'<br/>'
return htmltext(out)
#----------------------------------------------------------------
class AskForLettersForm(Form):
def __init__(self): # конструктор
# build form
Form.__init__(self)
self.add_widget("string", 'letters',
title='Введите буквы:',
size=20,
maxlength=20
)
self.add_submit_button("go", "Посчитать")
P.S. Пример полностью работающий, для простоты не использует шаблонов, специфичен для фрэймворка Quixote.
Считаю что Python - как раз нечто среднее между C#(Java) и PHP.
from quixote.html import htmltext
def Count_Letters(request):
form = AskForLettersForm() #form
form.handle(request)
if not form.form_submitted(request):
out = form.render(request, action_url='count_letters')
else:
out = ''
countd = {}
form_result = form.process(request)
letters = form_result['letters']
for l in letters:
countd[l] = countd.has_key(l) and (countd[l]+1) or 1
for l,cou in countd.items():
out += l+":"+str(cou)+'<br/>'
return htmltext(out)
#----------------------------------------------------------------
class AskForLettersForm(Form):
def __init__(self):
# build form
Form.__init__(self)
self.add_widget("string", 'letters',
title='Введите буквы:',
size=20,
maxlength=20,
required=True
)
self.add_submit_button("go", "Посчитать")
def action (self, request, submit_button, form_data):
return ''
P.S. Пример полностью работающий, для простоты не использует шаблонов, специфичен для фрэймворка Quixote.
Считаю что Python - как раз нечто среднее между C#(Java) и PHP.
В случае с пхп я вообще запрещаю дизайнрам копаться в моих пхп скриптах. Всё делается в шаблонах неменяя не строчки кода в пхп дизайн можно изменить до неузнаваемости. И он вовсе не будет блоковым как на всяких пхп нюках и прочее. Всё дело в руках. А насчёт на 486 мпег файл смотрели сам не верил пока не показали.
что то из оперы зачем делать ПРОСТО если можно сделать СЛОЖНО
Введите слово
<input type="text" name="str">
<input type="submit" name="submit" value="Посчитать">
<?
If(!Empty($_POST['str']))
{
Echo '<br>';
$AR = Count_Chars(Preg_Replace('#([^\w]|[0-9])+#Usi', '', $_POST['str']));
ForEach($AR AS $K => $V)
If($V)Echo 'Буква ' . Chr($K) . ' встречается ' . $V . ' раз<BR>';
}
?>
</form>
Итак, трехуровневое приложение с приципом MVC, 12 кластеров с шаблонами проектирования (3 направления - архитектура, дизайн, реализация и 4 вида - база данных, приложение, развертывание и инфраструктура). Генератор тестов. Вот примерно какой объем охватывает сегодня ASP.NET.
Это явно не для PHP с нестрогой типизацией, отсутсвием интерфейсов и полноценного ООП.
В плане разделения дизайна и контента (codebehind), а также создания веб-сервисов и в плане работы XML, ASP.NET выглядит гораздо мощнее. Полностью MVC на ASP.NET не реализован - контроллер сидит во вьюшке. Однако этот пробел с успехом закрывается третьими фирмами. Так что, для MS, я думаю, это вопрос времени.
Наличие среды сильно упрощает разработку, хотя VS - среда почти монопольная (если сравнить Sun, IBM, Oracle) и стоит подороже. Но она также позволяет импотрировать в ваш проект веб-сервисы. Плюс CASE и обратное проектирование. CASE с генератором для PHP я, честно, не видел. Повторное использование кода. Автодокументирование. Директивы в коде. Развитый механизм сессий (можно простой настройкой хранить данные сессий в БД для больших программ) и система кправления кешами (позволит оптимизировать нагрузку), механизм независимых модулей (просто подключаются в настроечном файле).
Пакетный и, конечно, компонентный подход (Infragisitcs, Component One, как в Delphi). Возможность использования UML и обратного проектирования. Бесшовная интеграция с MS Office и ActiveX.
Да, тут есть что изучать конечно. Однако это все систематизировано. Так что, с автором я не согласен, когда он пишет "Без Visual Studio, MSDN и иногда - доступа в Интернет там делать нечего". Без Visual Studio очень можно даже работать. Ну а если еще взять бесплатный WebMatrix и бесплатный SharpDeveloper то можно очень неплохо жить. MSDN и интернет? - для php тоже нужна документация и также нужен интернет. Есть хорошая книга по ASP.NET (Исскусство создания веб сайтов. С Уолтер)
ASP.NET мне нравится, но у нее пока два недостатка - монополия Microsoft и цена хоста.
А за статью спасибо, я ее сохраню. Иногда очень сложно сформулировать все мысли, а здесь все уже изложено.
Он концептуально прост и позволяет сделать работающий сценарий, зная только основы программирования, причём – процедурного (из серии «а мне больше и не надо»). Хотя ОС UNIX и ОС OS/360, из которых «растут ноги» у всех современных ОС, и РСУБД SystemR*, до функциональности которой не дотягивает даже Oracle, были разработаны именно процедурным программированием).
Он позволяет напрямую управлять генерацией страницы, а не пытаться управлять её автоматической генерацией.
Он позволяет исправить «на лету», без перекомпиляции, что удобно. Исходники – всегда при себе, но их можно и зашифровать, сделав как минимум нечитаемыми.
Разделение математики и шаблона легко реализуется, но не навязывается.
PHP позволяет обходиться для разработки Notepad’ом или vi (хоть это и неприятно).
В Интернет есть такой ресурс, как репозиторий Pear, с достаточно надёжными библиотеками функций «на все случаи жизни».
Обработка исключений? ООП? Всё можно, но ничего не навязывается.
Ошибки логики от языка не зависят. Можно ошибиться на Паскале и не ошибиться на Ассемблере.
Синтаксические ошибки зависят от сложности синтаксиса, а он в PHP прост, удобен и замечательно подходит для структурного программирования.
Скорость создания систем зависит от возможности повторного использования кода, которая, в свою очередь модульности, качества реализации и описания модулей. Эффективная модульность может быть реализована на любом современном языке – но для этого нужен программист, который сначала думает, а потом кодирует.
$quiz_string = $_POST['str'];
if (strlen($quiz_string))
{
$alphabyte = 'QWERTYUIOPASDFGHJKLZXCVBNMЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ';
$quiz_string = strtoupper($quiz_string);
$result = array();
$len = strlen($alphabyte);
for ($i = 0; $i<$len; $i++)
echo'Буква ' , $alphabyte{$i},
' встречается раз: '.substr_count($quiz_string, $alphabyte{$i}),
'<br />';
}
?>
То, что написал автор - уродство.
вместо $stroka написано $srtoka. Не удивительно, что неправильно, потому что писать надо внимательнее! PS Кривые руки надо менять, а может и голову...
http://www.apache-asp.com
технология Apache::ASP
тот самый ASP тока круче, и с Перлом внутре (со всеми вытекающими).
PHP лучше тем, что он специально разрабатывался для WEB..... в отличии от всей этой ASP............
Да и задачи, которые ему предназначаются, выполняют очень хорошо........
Т. е. это не, скажем так, широкопрофильный язык, на котором можно делать и то, и сё.......
Конечно есть у него и минусы, но с использованием JavaScript они почти все компенсируются!
___________________________________________________________
По моему, автор плохо знаком с php, либо я мало знаю ASP.
___________________________________________________________
Я не говорю, что PHP лучше/хуже ASP, я всего лишь прокомментировал критику.......
___________________________________________________________
P.S. Автору:
" Вообще, в РНР обьявление переменных отсуствует как класс, что с моей точки зрения, большой минус. "..............
Да, несомненно это минус, но зато сколько плюсов это даёт, ты посчитал?
На счет большого количества варнингов, которые ему плодил Apache могу сказать что уже из строчки
$quiz_string=$_POST['str'];
все понятно.
А для подсчета символов в строке, есть простой пример в документации по php:
<?php
$data = "Две в и одна с";
$result = count_chars($data, 0);
for ($i=0; $i < count($result); $i++) {
if ($result[$i] != 0)
echo "\"" , chr($i) , "\" встречается в строке $result[$i] раз(а).\n";
}
?>
1. по поводу неудобства использования пхп при смене дизайна - у нас есть класс шаблонов с его помощью все меняется за 5 сек.
2. по поводу переписывания кода другим програмером - если програмер крив на руки то да, причем эта тема не только для пхп, а также других языков. да бывает люди пишут на скорую руку, типа потом как нибудь, так они просто незнают, что быстрее(в итоге) написать правильно. Очень помогает разделение самой логики и дизайна, я ваще думаю писать пхп код в хтмельном - дурной тон, хрен потом разберешь что написано
Хе-хе! Сходи на тотже microsoft.com и почитай про баги.
Одних только сервиспаков уже на десяток *nix-ов хватит.
А кривость кода прямопропорциональна кривости рук и мозгов программиста. Равно как и падучесть сервера -кривости рук админа.
Пхп для веба мне кажется более заточенным и изящным. (Хотя на С++ я уже болье 5 лет программирую, а на С# около года).
Уважаемые читатели этой статьи: все что написано автором о php - полнейший бред. даже перечислять все не хочется. Просто считайте все предложения, где встречается слово php - неправдой, или лучше вообще их пропускайте.
Уважаемые читатели этой статьи: все что написано автором о php - полнейший бред. даже перечислять все нехочется. Просто считайте все предложения, где встречается слово php - неправдой, или лучше вообще их пропускайте.
Очевидно, как автор "хорошо" знаком с предметом.
Многоуважаемый, Goodman.
Приведи мне, глупому, пожалуйста, пример того, что не может php, а может .net? (возможно неправильно задал вопрос, корректнее, наверное, будет вот так "что очень просто реализуется посредством .net, а на php - это изврат?"
да, про mysql. говоришь багов в ней много? ха-ха-ха....
Знаешь почему багов в ней много, а ее юзают более 35% хостеров?
да потому, что ее ЮЗАЮТ, в отличие от ...
это БД постоянно используют, обновляют - доводят до совершенства, тоже самое касается и пхп.
А в версиях старше x.3.x - багов практически нет, во всяком случае не более, чем в анлогичной продукции MS.
Ув. Программисты!
Допустим, есть 3-х комнатная квартира.
(Пример тупой но...жизненный)
Во вход на кухню, стоят електрические двери и камера и бомба.
С помощью .NET, Необходимо через установленую камеру, распознать, сколько человек заходит на кухню!
Если больше трех человек, дотНЕТ звонит админу и воспроизводит звуковой файл в формате WMA 9.1 (который админ с пом. микрофона намаслал)
После того как админ прослушал запись и бросил трубку.
дотНет звонит ментам!
Вырубает свет, закрывает ел. двери!
После того как менты приехали выбели двери, дотНет подрывает квартиру!
В дотНет это возможно и пофиг уже на каком языке писать!
А PHP?
$bukvi = "abcdefguihuiy";
$stroka = "abcdrrrrrrrrrrrrrrr";
echo $stroka[0]; echo "<br>";
echo $bukvi[0]; echo "<br>";
$a=$stroka[0];
$b=$bukvi[0];
if ( $a == $b )
echo "совпадают";
else
echo "не совпадают";
?>
----> зачем такой длинный код !???!!!?? - что новичок писал ??
<?php
$bukvi = "abcdefguihuiy";
$stroka = "abcdrrrrrrrrrrrrrrr";
echo $stroka."<br>";
echo $bukvi."<br>";
if($bukvi==$stroka){echo "совпадают";}else{echo "не совпадают";}
?>
помоему так будет на много лучше и 100% пашет
Пример :
String a = "qwertyuiop";
for(int i = 0;i<a.Length;i++)Console.WriteLine(a);
Заметь .... куда удобнее чем в PHP или Perl.....
Есть же ведь шаблонные системы (FastTemplate, Smarty )
есть и IDE Zend Studio. Все есть. Встроенных функций огромное кол-во (должен признаться что совсем не знаю ASP.NET поэтому не могу сказать что там мало). Скажем тот же пример :) "вывод колчиества букв во введенной строке."
решается одной функцией array_count_values.
Думаю, на PHP5 будет одним только удовольствм разрабатывать крупные проекты. Дебаг - это все таки зависит от проф. уровня. Хорошая проектировка меньше дебага. Хотел ознакомиться с ASP.NET и попал сюда.
Удачи !
"
Человек зарабаывающий деньги на ASP.NET никогда не скажет что PHP лучше. и наоборот. Есть PHP значит есть потребность. Есть ASP.NET значит есть Microsoft.
" - Я
Поставь РНР и попробуй, прежжде чем так громко заявлять такие громкие слова.
Совсем не показательный пример. Не надо забывать что в PHP строки парсятся на наличие в них переменных и других специальных символов.
Да даже больше, в PHP строка, это не строка, а целый класс, чем-то напоминающий регулярно-арифметическое выражение. Я бы даже назвал это отдельной программой.
Ох как мне надоело.
300 Проектов держал P3 533+ 512 RAM.
Себя, так же как и Вас я ни в чем уговорить не пытаюсь. У Вас слишком сильно разваита мания величия.
...а вот если на сервере 200-300 сайтов и у каждого посещение порядка 40-50 в час, то ни одна винда не выдержит, и руки админа тут не причем....
-Сходи на microsoft.com
>Очень грубые ошибки в сравнении кодов, тем более, что в одном случае применили шаблоны, пускай даже встроенные, а вдругом примере весь вывод формировали скриптом.
Ты даже не разобрался... Эх...
ASP.NET вообще не скрипт-язык. И шаблоны там не встроенные. Шаблоны - это и есть ASP.NET
На такой слабой тачке может работать 1-2 проекта с небольшой посещаемостью, а вот если на сервере 200-300 сайтов и у каждого посещение порядка 40-50 в час, то ни одна винда не выдержит, и руки админа тут не причем.
А то, что админство винды и юниксов стоят по разному - чушь. Главное не стоимость, а знание.
И потом, не бывает прогарммистов+администраторв - это либо не доделанный админ, либо программер, отсюда и такие статьи.
Моя главная претензия - это Очень грубые ошибки в сравнении кодов, тем более, что в одном случае применили шаблоны, пускай даже встроенные, а вдругом примере весь вывод формировали скриптом.
Ia ne s rossii, ia s Israel. Zadau zapros na Israelskom site po poisku raboti (http://jobs.nana.co.il/)
php: 15 obiavlenii.
asp: okolo 80.
Naschet zarplati ne znau.
а то пишешь:
"Перемещая теги <asp: ...> внутри страницы и произвольно помещая их в любое место, можно в любой момент изменить дизайн, не прибегая к помощи программиста вообще. В случае с РНР это практически невозможно"
Ни один нормальный Php программист так как ты по ламерски в жизни не напишет
Запрашиваем по ключевому слову PHP
Регион - Москва
Вакансий:213
Запрашиваем по ключевому слову ASP.NET
Вакансий:155
Это только в москве. На периферии ASP.NET вообще не нужен
Теперь еще неприятное: опыт работы как правило требуется от 3-х лет, хотя на самом деле это лажа полная (объявления типа "требуется СТАЖЕР-программист, опыт работы от 3-х лет, знать должен Windows, Unix, QNX, Perl/ASP.NET" либо составляются неграмотными секретаршами либо просто должны отсейвать не очень страждущих)
Таперь о приятном: зарплата ASP.NET- программиста начинается от 1000-1200$
Nu naschet raboti, ne mogu nichego skazat', tem bolee posporit, ved', proveril sam na sitah predlogaushih rabotu.
Chto bolee interesno, dopustim PHP programmerov trebuetsia bol'she, no eto zhe paradoks, potomu chto php kak ti utverzdaesh, i ia s etim soglasen iazik dlia odinochek, a tut kontori ishut PHP programmerov. Pochemu?
Naschet kogda zagnetsia PHP, skazat' tiazhelo, no zagnetsia tochno. Posle tvoei stat'i odnoznachno reshil ne uchit' PHP, a poduchit' C#, t.k. progralu na C\C++.
Uchit' php ne hotel s samogo nachala, potomu chto Perl viuchil, cherez 2 goda stal sovsem ne aktual'nim. Dumau s PHP budet to zhe. Pozivem uvidim.
Во-первых, РНР-программеров требуется больше.
Во-вторых, я могу назвать также большое количество и уж СОВСЕМ немаленьких проектов, которые сделаны на ASP.NET
Никто ничего не должен делать. Более того - существует такое понятие как история. Если компания исторически использует продукты MS- она и будет их использовать до последнего, до того как микрософт загнется. Потому что для них это отработанная технология. И наоборот.
Так что РНР не то что хоронить рано, но вообще говорить о нем как о выбывающем участнике - по меньшей мере глупо.
Даже если сейчас каким-то образом распадется все сообщество РНР, прекратится поддержка и развитие, должно пройти еще минимум 2-3 года, прежде чем на нем начнут переставать писать сайты.
Stat'ia interesnaia, commenti tozhe klass!
Svoi zametki.
1. Naschet raboti, probezalsia po sitam, i pravda ASP.Net programmerov trebuetsia kuda bol'she PHP. Prichev v desiatki raz!!!
Nu tut vse iasno...
2. Vot eto ne iasno, i proshu ob'iasnit'. pochemu ochen' mnogo poslednih proektov, sovsem ne malen'kih takie kak http://go.territory.ru/, http://destinysphere.ru/, ta zhe http://www.codenet.ru/, napisani na PHP?
Eto paradoks, pisat' to ih bilo nado na ASP po idee... a napisal na PHP :( Pochemu?
Препробовал Mozilla, Firefox, Netscape, Opera - из них всех только опера поддерживает и то очень криво. Приходится плеваться и пользоваться Эксплорером :( а он мне не нравится - тормознутый :(((
А вот контроллер домена делать не стал.
Сервер Celeron 300 Mhz, 256 ram, hd 10 Gb.
Поставил Win 2003 server Enterprise, M$ ISA 2004 (Мощнейший Proxy+Firewall, с кучей разных возможностей, ничего подобного под Юних ( в одном флаконе, по крайней мере) не видел, жрет немало ресурсов - мин требования P3 833.)
Поставил IIS, закачал туда свои проги для лок. сети. Расписание дня и т. д., в общем intranet-server
ВСЕ ПАШЕТ, РАБОТАЕТ И НЕ ТОРМОЗИТ!!!
8-[ ]
Правда нагрузка через проксю не очень большая, одновременно в инет лазят 8-10 компов.
РНР 4 и какую-то хрень про ASP.NET. Решил просмотреть книги так сказать...
РНР уже при просмотре показался настолько лёгок, что я прочитал книгу буквально за один день...На следующий день я начал пробовать писать...Просмотрев книгу про АСП.НЕТ ни хрена не понял, но решил попробовать...После 4-часовых мучений понял одно: Не можешь срать, не мучай жопу...
Решил сначала выучить как следует РНР, чем сейчас и занимаюсь...
Так что думаю вот что: РНР лёгок, может и надо сидеть с дебаггером, но это тока поначалу, буквально за месяц ты привыкаешь, а чтобы хорошо различать где РНР, где ХТМЛ, надо пользоваться нормальными прогами, которые также бесплатны, как и сам РНР...С АСП.НЕТ надо немного помучаться, но после всё начинает получаться. И для новичков, кто ещё не брал в руки ниодного мануала по любому языку, советую не торгать АСП.НЕТ - оставьте до лучших дней...
И хватить спорить о достоинствах, когда надо всё достоёно сочетать...Пишите и на РНР и на С, и на чём угодно, и нехрен спорить о быстродействии...Вы же грамотные люди. А такое чувство, будто дети собрались...Ей богу, как в детском саду:
- "У меня скрипт меньше"
- "Зато он у тебя функций меньше"
- "Зато он у тебя тормозит"
Ну ей богу, так не делается...;)
:-)) кончаю дразнить... Но интересно, КАК ASP.NET работает с XML: это делается следующим образом: object[любого класса, в т. ч. своего].WriteXML(param...)
И Все!!!
Мысли:
пхп-отстой,удел 90-х,
в 21 веке рулит дотасп ребята...:))
Win я не очень люблю (хотя бы из-за тормознутости оконного интерфейса), но признаю, что с ним гемора намного меньше, чем с Unix. И это стоит чуть (!) меньшей сттабильности и лицензии.
Но на нашей работе уже не будет дяденьки с заказами. Будет модуль, срок и C#. И зарплата, в раза 2-3 больше, чем в конверте у дяденьки.
В этом основное различие.
Остальные - в РНР очень геморно сделать вещи, которые легко делаются в АСП.НЕТ и наоборот. Вещей, которые нельзя сделать на одном языке и мождно сделать на другом, нет. Весь вопрос, сколько это займет времени и сколько будет стоить. В конце коцов, генератор HTML можно и на ASM написать, только кому он нужен...
Важно понять, ГДЕ юзать ASP, ГДЕ юзать PHP, а не что можно сделать. Сделать можно все.
Разница на чем писать кардинальная: PHP - не знаю как по русски писать... quick and dirty, ASP - slow and right.
Но, к сожалению, есть факт, что недобросовестных РНР-программеров больше, чем ASP, по той простой причине, что РНР можно запросто писать и одному, не оглядываясь ни на кого, ASP же рассчитан на коллективное применение, где "неправильный программер" тут же будет уволен.
<?php
$bukvi = "abcdefguihuiy";
$stroka = "abcdrrrrrrrrrrrrrrr";
echo $stroka[0]; echo "<br>";
echo $bukvi[0]; echo "<br>";
$a=$stroka[0];
$b=$bukvi[0];
if ( $a == $b )
echo "совпадают";
else
echo "не совпадают";
?>
Тока я не пойму отчего так....может потому что строгой тиизации нет?
собственно смысла с каждым разом все меньше и меньше ,Но зато много полемики.
А вообще обьясните:какая разница на чем писать?
Вот заказчик говорит:"Дружище вот конвертик с деньгами,
нужен сайт такой то,в такой то срок,чтобы были такие то функции,и пиши хоть на ку бейсике или фортране мне пофиг"
Тоесть важен результат.Кому нравиться пхп,тот и сайт соорудит быстрее чем на другом языке,и ему будет приятнее и заказчик доволен.И наоборот.
Тока одно хочу понять:ЕСТЬ ЛИ ФУНКЦИОНАЛЬНЫЕ РАЗЛИЧИЯ 2 ЯЗЫКОВ?
Тоесть разметка то все ровно одна,выглядеть будут одинаково 2 сайта(на пхп и дотасп),но ЕСТЬ ЛИ В ОДНОМ ЯЗЫКЕ ВЕЩИ КОТОРЫЕ НЕЛЬЗЯ СДЕЛАТЬ НА ДРУГОМ?ПРИНЦИПИАЛЬНО?
http://ask.km.ru/books/upe/
Когда на хостинге меняется PHP 4.1->php 4.3.8 все программеры в панике, потому как работодатели сразу звонят и вопят, что их сайт не пашет. В случае с ASP/Framework 1.0/Framework 1.1 этого не было ни разу. Но это мелочи.
Я не юниксоид, потому как не консерватор. Вот и все. В данный момент я пытаюсь запустить свой ASP.NET-проект под Mandrake 10, хотя официально mono его не поддерживает. И запущу. Мне не лень шевелить задницей.
Придется размазать очередной раз... ничего личного... просто не хочу, чтобы другие воспринимали тебя серьезно.
1)>это к чему вообще?
Пойди на сайт микрософта и почитай. Человек, не знающий принципов .NET не может про ASP.NET вообще ничего говорить. Потому как ASP.NET есть неотъемлемая часть платформы .NET и поддерживает всю ее философию, включая кроссплатформенность и мультиязычность, а также многие другие... да что я буду рекламу делать за M$...
2) >да мне по барабану,
С этого и надо было начинать. Сэкономил бы мне время. Ты просито сопротивляешься тому, что кто-то программит на чем-то, в корне отличающемся от PHP. Лучше бы шел на форум по КолдФьюжн и там всех долбал, вот он-то по-астоящему загибается, а вопрос ASP.NET VS PHP будет еще стоять долго, причем неизвестно, кто выбьется в лидеры (победить полностью здесь по определению невозможно).
3) >иди выясняй детали объектов в пхп
Выяснил. Выяснил, что M$ в этом плане не только намного удобнее но и быстрее. Повторно можно использовать и процедурный код. И ASM-вставки. Только почему-то все давно по большей части перестали это делать.
4)>я где про яву заикался?
Там, где отклонение от темы, которое не есть отклонение.
5) >в С/С++, php все, что равно 0 - ложь. не помню как в си, но в пхп можно также проверить на совпадение типов
Так... вот здесь я понял, что у тебя есть неслабые способности писать... фантастику например. Ну еще я понял, что ты не знаешь даже РНР. Потому как = - оператор присваивания, а не равенства. Это проходят на втором уроке по С++. Оператор равенства - ==.
Таким образом, if(int a=0) означает, что:
а) система пытается выделить память для целой переменнойю Если жто удается, то возвращается код 0х0 - т. е False.
б) если память выделить не удается, то возвращается код ошибки.
в) Поскольку я по собственной дурости вставил не тот код, к которому комменты, то мои комменты к данному коду имеют прямо противоположную истину, что, если бы ты хзоть немного умел программировать, сразу бы заметил и съехидничал.
г) поскольку ты этого не сделал, то делаю вывод, что ты не заметил вещи типа 2х2=5.
6) >а хрен это монструозное щастье, пробовали, знаем
Пробовали не больше двух дней и то через силу, иначе так бы не говорили
7) >а мсдн - вообще отдельная песня
Да, согласен, что ничего настолько подробного и полезного ни к одной проге еще не сделали
8) >мне ворд на компе не нужен :) не пользуюсь я им
Поздравляю! Остается еще научиться не пользоваться девушками, не есть, не пить и не дышать. Как только ты это сделаешь, я тут же приду тебя навестить, цветочки может положить :)
9)>а пишу я в нормальном редакторе для программистов, а не изучающих язык/среду/технологию с помощью тултипов :)
Да, прикольно... Во первых, никто не изучает язык/среду/технологию с помощью тултипов... но это ладно.. Дело в том, что никто из моих знакомых-программеров так и не смог дать определение понятию "нормальный редактор"... Не, понятно, что дружинники однозначно сказали "VS!!!", но вот под РНР - все по-разному...
10) >моя иде будет одинаковой всегда, что бы я не писал, будь то программа или тот же реферат :)
Ага, называется клавиатура :-)))
No pasaran, короче.. Так и помрешь, на клаве... :-)
11) >ага, нету у меня фундамента в .NET, только я туда и не лезу, статей "умных" не пишу и не выдаю то, что все уже имеют или могут сделать по-своему, за что-то новое
... и вообще я из каменного века, мне ничего не интересно!!!
это к чему вообще?
>2) Что за язык C# и чем он отличается от Java (вообще говоря - очень мало чем)
я где про яву заикался?
>3) Что подрузамевается под интерфейсами в C#
да мне по барабану, мне php позволяет повторно использовать код и переписывать каждую страницу заново, а тебе видимо нет - иди выясняй детали объектов в пхп
>4) Что такое вообще синтаксические ошибки (Кнут, "Искусство программирования", том первый)
ну ладно, поймал, назвал я описку синтаксической ошибкой..
>5) Выяснит для себя, что даже великие программеры типа меня иногда делают опечатки, которые удобнее видеть сразу
в пхп при должных настройках ты увидишь эти ошибки при запуске скрипта. при использовании автодополнения в редакторе скорее всего ты будешь избавлен от таковых в большинстве случаев. преподносить это как плюс asp, .NET или революционную идею микрософта - бред
>6) Врубится, что результат if (int a=0) равен false только при отказе системы выделить память в любом нормальном языке
откуда взялось if(int a=0)? в С/С++, php все, что равно 0 - ложь. не помню как в си, но в пхп можно также проверить на совпадение типов
>7) Посмотрит на VS и напишет в нем хотя бы примитивнейшую программу
на хрен это монструозное щастье, пробовали, знаем
а мсдн - вообще отдельная песня
>Ты не совершаешь опечаток? Зачем тебе ворд на компе тогда? Или рефераты ты тоже в блокноте пишешь?
мне ворд на компе не нужен :) не пользуюсь я им
а пишу я в нормальном редакторе для программистов, а не изучающих язык/среду/технологию с помощью тултипов :)
>Ты знаешь, такие тупые вопросы типа "а зачем мне ИДЕ"
я тебе сказал, что есть моя иде, ты видимо просто не знаешь, что это есть и насколько это удобно и быстро
и это ты заикнулся о том, что наличие/отсутствие персональной иде имеет какое-то значение. моя иде будет одинаковой всегда, что бы я не писал, будь то программа или тот же реферат :)
>Поэтому тебе либо лень посмотреть на ИДЕ, либо ты 3-4 курсник и выпендриваешься.
..либо я ее себе уже нашел. универсальную. юникс называется. среда такая для программистов
>А твои комментарии, которые вскрывают отсутсвие даже фундамента
ага, нету у меня фундамента в .NET, только я туда и не лезу, статей "умных" не пишу и не выдаю то, что все уже имеют или могут сделать по-своему, за что-то новое
http://www.microsoft.com/rus/getthefacts
Они там результаты подогнали конечно, но некоторые результаты не подгонишь никакими способами (например, ТАКОЙ выйгрыш в производительности у Redhat)
Или когда начали программить тоже не читали ни мануала, ни факов (читай: комментов), а стразу бежали долбать службу поддержки???
Пример - пиши сложнее. Я писал не для тех, кто собирается откуда-то куда-то переходить, а для тех, кто выбирает. Сомневаюсь, что им будет легко разобраться в навороченном коде и не сомневаюсь, что никто даже и не попробует.
Насчет серверов - факт имеет место быть. Тебя звиняю, потому как ты вместо того чтобы прочеть фразу "поэтому я абсолютно уверен, что стабильность системы зависит вовсе не от типа ОС, а от наличия или отсутствия кривых рук у сисадмина" побежал писать коммент.
Пора спать...
1) Что такое платформа .NET и почему там можно писать на любом языке программирования, в т. чт Java, Basic, C++, Delphi, Kobol и т. д.
2) Что за язык C# и чем он отличается от Java (вообще говоря - очень мало чем)
3) Что подрузамевается под интерфейсами в C#
4) Что такое вообще синтаксические ошибки (Кнут, "Искусство программирования", том первый)
Для ленивых и сообщаю, что синтаксические ошибки не компилируются в принципе.
5) Выяснит для себя, что даже великие программеры типа меня иногда делают опечатки, которые удобнее видеть сразу
6) Врубится, что результат if (int a=0) равен false только при отказе системы выделить память в любом нормальном языке
7) Посмотрит на VS и напишет в нем хотя бы примитивнейшую программу
Ты не совершаешь опечаток? Зачем тебе ворд на компе тогда? Или рефераты ты тоже в блокноте пишешь?
Ты знаешь, такие тупые вопросы типа "а зачем мне ИДЕ" приходили в голову одному моему знакомому. Он тоже все время говорил "а зачем мне компьютер, я и так на машинке печатаю". Дело в том, что он не хотел учиться работать на компьютере, а после того как его фактически заставили научиться работать на нем, он тут же заткнулся.
Поэтому тебе либо лень посмотреть на ИДЕ, либо ты 3-4 курсник и выпендриваешься.
А твои комментарии, которые вскрывают отсутсвие даже фундамента, меня заставляют меня считать дальнейшую полемику бессмысленной. Научился делать что-то на РНР - и слава богу. Удачи.
вполне законная конструкция
избегается ВЕЗДЕ, не только в asp приучиванием себя писать константы слева if (0=$a), и все предупреждения - твои
"я и не говорю ничего насчет ее проработанности, но повторно использовать код, о чем ты и заикнулся, php не может, хотя ты видимо об этом не знаешь"
следует читать как
"я и не говорю ничего насчет ее проработанности, но повторно использовать код, о чем ты и заикнулся, php может, хотя ты видимо об этом не знаешь"
>Ты можешь работать хоть на калькуляторе, только других не тяни и тщательно это скрывай, а то смешно. "представьте себе, я уже несколько лет езжу на "запорожце", ужас, правда?"
>Никому сейчас в команду не нужен программер, не умеющий работать в IDE, и многие с этим сталкиваются.
для меня IDE - это вся операционная система
лучше, чем иде
>Только зачем, когда есть IDE???
те, которые имеешь в виду ты, видимо для выуживания денег
если у тебя достаточно опыта, все эти рюшечки тебе погоды не сделают
>Подобные синтаксические ошибки легко отслеживаются самим php
>Вот теперь ты ляпнул бред. Я это знаю и смысл высказывания был не в этом. Во-первых, ни в одном из моих примеров нет синтаксических ошибок.
ой ли?! смотрим первый пример, забыли что писали?
>Во-вторых, если бы ты имел хотя бы небольшой опыт программирования на разных яыках, ты бы чувствовал понятие safe progremming. Отсутсвие типов. Для любого большого проекта одно это - уже труба.
имею, и ничего, знаешь, нормально обхожусь без типизации в php
>мда.. а в asp сама система за вас будет код отлаживать? микрософт изобрела ИИ?..
>Почти. На этапе написания программы VS гоняет уже написанные участки кода и подсвечивает разным цветом разные ошибки. Ну, как в Ворде. Поэтому компилить проект чтобы увидеть ошибки вовсе не обязательно.
мосье делает так много примитивных ошибок? а серьезные логические среда хрен выловит, так что ценность опять же сомнительна
>Но дело даже не в этом. Дело в том, что сам C# устроен так, что ну нельзя в нем допустить очень большого количества ошибок.
_простых_ ошибок, которых с опытом становится меньше, и вылавливаются они быстрее
> Ну, на Java он похож. Java знаешь хоть? На нем народ тоже почему-то что-то пишет, хотя есть РНР.
не надо тут про другие, речь идет про какие-то "великие" достоинства asp в сравнении с php
>>для этого существует другой вагон, с шаблонизаторами
и под разные проекты я могу выбрать РАЗНЫЕ, те, что лучше подходят
>Во-во, а ASP.NET-программер может кастомизить уже сделанные как хочет, до полной неузнаваемости, причем за довольно быстро. И в их коде копаться не нужно.
а кто сказал, что в нужно копаться в коде? я имею в виду прежде всего подбор по мощности и гибкости, а соответственно и по скорости работы
>>это вопрос квалификации и того и другого, asp от этого избавлен?
>ASP.NET почти избавлен. Там нужно сильно постараться и злобно стереть все комменты, изменить названия интерфейсов на противоположные чтобы разобраться в интерфейсе твоих классов не мог даже терминатор.
солнце, ты вообще хоть что-то сложное писал? или у тебя только мелкие переделки интерфейсных? и ты их никак не коментируешь? не хотел бы я копаться в твоих шедеврах
>>а php уже отменили объектную модель?! давно?
>Да вообще-то ее там и не было особенно. Если ты имеешь ввиду эти структуры из С, к которым прилепили наследование, то лучше не говори ничего.
я и не говорю ничего насчет ее проработанности, но повторно использовать код, о чем ты и заикнулся, php не может, хотя ты видимо об этом не знаешь
>>как это я пропустил революционную новость о изобретении микрософтом ИИ?
>А вот так. Только не револющию, а приведение типов, которое существует с незапамятных времен. Вот что было бы на ASP.NET:
>1) Компилер выдал бы ворнинг о несоответствии размера строки и поля в БД, если реализовывать все по ООП.
на этапе отладки? :)
тогда в чем проблема? сразу и поправишь
>2) При попытке запихнуть слишком большой текст MS SQL выдал бы ворнинг, которую, в свою очередь, ASP.NET превратил бы в ошибку и подробно бы расписал.
а на этапе исполнения обычно ошибки тоже отлавливают и выдают сообщение
>3) Если программер не соображает
ключевая фраза "программер не соображает". дальше можно не надо
>ЕЩЕ вопросы есть?
вопросов более не имею
Все. Давайте подведем итоги, т. к. я больше тратить время не могу. Я НЕ против РНР, но я буду стараться не писать на нем, т. к. я не люблю искать ошибки, которые компилируются.
-----------------------------------------------------------------
Вы знаете, что такое Zend? Судя по всему нет. А у них есть и отладчик (типа Delfi...) вместе со средой, куча програмии для оптимизации, ускорения скриптов. Пример меня вообще убил. На уровне учебника по php. Пример с серверов, который падал раз в месяц - ну тут звиняйте. Я администрирую 9(!) серверов: Linux/NetBsd/FreeBsd. 7 из них не перезагружались 2.5 года, в 2х менялись камни - пришлось.
Если для вас такие писюльки - хобби - не пишите. Верх неграммотности в изучаемом предмете. Если это ваше "imho", тогда извините.
к предмету разгавора.Было интересно читать,чесно.
Чувствуется какой-никакой опыт(что невсегда прослеживается у других комментаторов).
Вообще я доэтого увлекался тока php+mysql,но сейчас прихожу к мысли что надо что то менять,выходить на качественно более высокий уровень.Когда я увидел код asp
мне сразу вспомнился мой старый,добрый delphi 6,среда в которую я влюблен с детства.
Посему мне кажеться что простые вещи- не всегда приемлемы для крупных решений,а вот как уже многие говорили простой сайтик с небольшим контентом,гостевухой,форумом и аккаунтом - добыча php.
Такое мое мнение.
А еще я был бы оч рад увидеть мануал автора по asp.net
с неб. примерами ,например,а то хер его знает как там все это дейтсвует.
<?php
if ($a=0)
{ echo "0";
?>
some html
<?php
}
else
{
echo "not 0";
}
?>
То, что такая вещь вообще компилируется, да еще выводит !логически! неверный результат, меня очень сильно раздражает.
И не путайте - C# - язык программирования, а РНР - скриптовый язык. В этом их принципиальная разница.
В ASP.NET я могу избежать таких вещей. Вот и все.
О состязаниях и что будет, если несколько юзверей одновременно нажмут кнопочку, сей "программер" и думать забыл.
>я понимаю, для сайта на asp с гостевой прийдется купить хостинг с полным w2003, на котором будет стоять и mssql и т.п.
Неправильно понимаешь. MS SQL необязателен, W2000/3 необязателен (хотя желателен), т. к. ASP.NET есть под линукс и юникс. А БД - никто не мешает использовать а) любую другую б) также писать в файл dbf ручками (некоторые возможности СУБД встроены в ASP.NET вот и SQL lite в одном флаконе)
Еще. Я ни за что не поверю, что команда несработавшихся программеров может быстро сваять на РНР что-либо приличное. Сработавшихся- да. Одичночных - да. Но несработавшуюся команду я наблюдал в действии, когда весь проект рухнул из-за программеров-координаторов, которые в ASP.NET вообще не нужны. Потому как там есть стандарт, есть интерфейсы - садись, пиши свой модуль, потом к интерфейсу делается документация и модуль сдается именно в таком виде. А РНР-программеры привыкли писать каждый по-своему.
>со счетами пришел на экзамен по вышке именно ты, взявшись за эту статью
- Напиши лучше. А то херить все горазды. Ты же вроде знаешь предмет, что мешает? Буду рад прочесть.
To CSA:
>представьте себе, я уже несколько лет работаю без IDE, ужас, правда?
Ты можешь работать хоть на калькуляторе, только других не тяни и тщательно это скрывай, а то смешно. "представьте себе, я уже несколько лет езжу на "запорожце", ужас, правда?"
Никому сейчас в команду не нужен программер, не умеющий работать в IDE, и многие с этим сталкиваются. Один - можешь писать хоть в Блокноте, никто конечно ничего не скажет.
Хотя РНР отличается тем, что его можно писать в блокноте, хотя и сложно. Только зачем, когда есть IDE???
>Подобные синтаксические ошибки легко отслеживаются самим php
Вот теперь ты ляпнул бред. Я это знаю и смысл высказывания был не в этом. Во-первых, ни в одном из моих примеров нет синтаксических ошибок. Во-вторых, если бы ты имел хотя бы небольшой опыт программирования на разных яыках, ты бы чувствовал понятие safe progremming. Отсутсвие типов. Для любого большого проекта одно это - уже труба.
>мда.. а в asp сама система за вас будет код отлаживать? микрософт изобрела ИИ?..
Почти. На этапе написания программы VS гоняет уже написанные участки кода и подсвечивает разным цветом разные ошибки. Ну, как в Ворде. Поэтому компилить проект чтобы увидеть ошибки вовсе не обязательно.
Но дело даже не в этом. Дело в том, что сам C# устроен так, что ну нельзя в нем допустить очень большого количества ошибок. Ну, на Java он похож. Java знаешь хоть? На нем народ тоже почему-то что-то пишет, хотя есть РНР.
>отладчиков для php вагон и маленькая телега
Ага, недавно смотрел на лучший вроде, Зендовский. Ничего, но к VS даже близко не подошли и не подойдут в ближайшее время :(((
>для этого существует другой вагон, с шаблонизаторами
и под разные проекты я могу выбрать РАЗНЫЕ, те, что лучше подходят
Во-во, а ASP.NET-программер может кастомизить уже сделанные как хочет, до полной неузнаваемости, причем за довольно быстро. И в их коде копаться не нужно.
>это вопрос квалификации и того и другого, asp от этого избавлен?
ASP.NET почти избавлен. Там нужно сильно постараться и злобно стереть все комменты, изменить названия интерфейсов на противоположные чтобы разобраться в интерфейсе твоих классов не мог даже терминатор. Или, что лучше, вообще программить бе интерфейсов. Только вот беда - никто не захочет брать на работу программера, который не умеет работать с интерфейсами классов.
>а php уже отменили объектную модель?! давно?
Да вообще-то ее там и не было особенно. Если ты имеешь ввиду эти структуры из С, к которым прилепили наследование, то лучше не говори ничего. Он по своим ООП-возможностям не дотягивает даже до С++, а про Си шарп с его интерфейсами, коллекциями, делегатами, событиями и прочая и прочая и прочая я вообще молчу - небо и земля. Вот РНР5 говорят в ООП силен... надо будет посмотреть, никак руки не дойдут...
>как это я пропустил революционную новость о изобретении микрософтом ИИ?
А вот так. Только не револющию, а приведение типов, которое существует с незапамятных времен. Вот что было бы на ASP.NET:
1) Компилер выдал бы ворнинг о несоответствии размера строки и поля в БД, если реализовывать все по ООП.
2) При попытке запихнуть слишком большой текст MS SQL выдал бы ворнинг, которую, в свою очередь, ASP.NET превратил бы в ошибку и подробно бы расписал.
3) Если программер не соображает запихнуть слишком большой кусок текста, он смотрит либо на ворнинги, либо сует свою программу в АСТ (M$ Application Center Test), где ее пользуют в хвост и гриву, тыкаются куда только можно и пробуют записать то, что нельзя. в общем, имитация бета-тестера или просто Юзера Обыкновенного. На выходе, кроме ошибок, также имеется статистика по скорости работы при большой загруженности и тупые рекомендации по оптимизации кода.
4) Программер обнаруживает ошибку, лезет в IDE, выбирает нужный текстбокс, ставит ему ограничение MaxLength = [нужное число]. На все - один щелчок мышкой и пару раз по клаве.
5) Снова запускает прогу.
ASP автоматом генерирует JavaScript в странице для проверки на стороне клиента, проверку на стороне сервера (на всякий случай).
Все.
ЕЩЕ вопросы есть?
>с ним - это постоянный дебаг. И дело даже не в том, что
>нормальная IDE наконец-то выпустили совсем недавно (zend.com),
представьте себе, я уже несколько лет работаю без IDE, ужас, правда?
>дело в том, что сам язык так устроен, что в нем очень легко
>допускать серьезные логические ошибки.
если бы дон потратил полчаса на чтение мануала (о настройке php) и коментарии в php.ini, он бы не ляпнул такой бред. Подобные синтаксические ошибки легко отслеживаются самим php
а если использовать и редактор с автодополнением, то такие проблемы вообще сводятся к минимуму
>Итак, в РНР, написав скрипт вы обязательно будете сидеть
>над ДЕБАГОМ,
мда.. а в asp сама система за вас будет код отлаживать? микрософт изобрела ИИ?..
>причем делать его придется руками через вывод
>чего надо в промежуточных местах алгоритма.
отладчиков для php вагон и маленькая телега
>Нужно визуально в выводе что-то на странице изменить - в
>АСП.НЕТ 5 минут, а в РНР - придется искать и править вывод
> echo.
для этого существует другой вагон, с шаблонизаторами
и под разные проекты я могу выбрать РАЗНЫЕ, те, что лучше подходят
>Придет другой программер и, немного поразбиравшись с
>вашими классами, и даже не заглядывая в их устройство
>сможет создать такую же страницу за 5 минут,
а php уже отменили объектную модель?! давно?
>а программист на РНР предпочтет скорее переписать все
>заново, чем разбираться в вашем коде.
это вопрос квалификации и того и другого, asp от этого избавлен?
а это вообще гвоздь программы!
>Человек, который разработал форум, не подумал, что кто-то
>может написать достаточно много текста, больше чем размер
>поля в БД, поэитому, когда я пытался поместить весь
>текст,все сработало нормально, но часть его отсеклась,
>причем без всяких предупреждений. ASP.NET как раз и
>ориентирован на избежание таких ситуаций, а вовсе не на
>скорость.
как это я пропустил революционную новость о изобретении микрософтом ИИ?
и через полгода никто не будет спрашивать "а чегой это тут понаписано? это что, я писал????".
"Потому как извращаться они любят очень. Например, БД в виде локального файла реализовывать, когда бесплатно доступен MySQL (сейчас как раз над разработкой такого "программиста" сижу)."
опять же незнание даже не "тонкостей", а основ технологий. представь себе, php позволяет предлагать пользователям покупать хостинг только под их нужды, и платить соответственно только за то, что нужно. я понимаю, для сайта на asp с гостевой прийдется купить хостинг с полным w2003, на котором будет стоять и mssql и т.п. только вот зачем платить больше, спросят программисты, пишущие на php, и реализуют гостевую с хранилищем мессаг в файле и обойдясь хостингом за доллар в месяц... ну да, любят извращаться, подумаешь ты :-))) открою тебе секрет -- в php есть модуль sql_lite представляющий собой реляционную субд, хранящую данные в файле и работающую вместе с php. поддерживаются все прелести sql, на гостевых и прочих стандартных вебзадачах оказывается производительней mysql. что позволяет обойтись хостингом без mysql, что удешевляет конечное решение. конечное решение для которого нужно гараздо меньше ресурсов сервера, чем решению на asp.net и использованием mssql. вот так "извращаются" программеры на php.
а насчет книжек по php -- среднему программисту нужна только одна "книга", да и та небумажная -- phpmanual.chm с сайта php.net. этого хватит для полноценной работы и написаний приложений. смотрю на твой замусоленный десяток книг по asp и вижу прекрасную демонстрацию простоты разработки в том числе и больших приложений как на одном так и на другом инструменте (php&.net).
2Goodman ([2004-08-04 07:01:02]):
"Насчет генерации шаблонов: Native support их есть на данный момент только в ASP.NET В РНР приходится делать include'ы, что не есть гуд, т."
истинно изречение из украинской рекламы: "краще жувати, нiж говорити". извини за прямоту, может открою для тебя что-то новое -- но я могу сделать вывод, что ты практически ноль в php (не в смысле языка), ноль в разработке больших приложений на php ("большие" это не гостевые книги), ноль в командной работе с php. даже примерно себе не представляешь, как разделяется работа программеров, кодеров, верстальщиков и дизайнеров при работе в команде. поэтому пожалуйста, не упоминай больше в своих текстах "большие проекты на php", "работу в команде", "легкость разработки", "потери денег и времени" и прочее. подумай, что когда-то возможно эти твои опусы прочитает твой потенциальный работодатель, они тебе не в пользу явно пойдут.
спасибо за внимание, второй раз на эту страничку попал случайно, в третьем разе -- сомневаюсь.
sly%ukrpost.net
а насчет этого:
"Опытный программист - разработчик, в полной мере знающий и уважающий концепции ООП, выберет ASP." -- опытный программист выберет инструмент под задачу, а не будет подстраивать что есть под концепции OOП. объектная модель есть в php 5 (я не про объектную модель четвертого php)
2Psycho (Psycho):
"Скорость разработки проекта на ASP.NET с большим объемом и сложной логикой намного быстрее чем на PHP. К тому же библиотеки могут содержать уже реализованные common функции которые будут использованы и в других проектах." а кто сказал, что все это недоступно на php? :-))
"niff >>Да, ясен пень, что в смешанном html-php коде фиг разберешься.
Вот это верно :) Согласен на 100%. У меня создалось впечатление, что мнигие кто пишет за PHP зачастую разрабатывает все один." я уже писал ответ в стиле "вкус устриц". люди, давайте вначале вы будете разбираться в используемых технологиях, а потом только рассуждать и соглашаться на все 100%. дабы не выставлять себя посмешищем.
2Goodman ([2004-08-04 06:09:37]):
" Sly: Да, я не писал больших проектов на РНР с привлечением десятков программистов, потому что на РНР дебаг будет слишком дорого стоить. Именно поэтому выбраны продукты M$
На РНР хорошо писать проекты в сработавшейся команде, но никак не с "нуля"."
оно видно, что ты не писал. объяснишь почему дебаг будет дорого стоить? успешность проекта зависит от хорошо подобранных тимлидеров и менеджера. поверь -- можно прекрасно писать и "с нуля" как в команде так и в одиночку. все дело в правильном проектировании и знании используемого инструмента. или в этом нa asp.net нет необходимости?
"РНР - это Personal Home Page, и сложные проекты с ним делать можно, но это все равно как со счетами приходить на экзамен по высшей математике. Пусть те, кому нгравится подобный изврат, занимаются большими проектами на РНР."
т.е. ты отказываешься от инструмента, т.к. его аббревиатуру можно расшифровать по разному, и в одной из вариаций видно personal home page? очнись, уже даже не третий php на дворе, а пятый. и большие проекты на php -- совсем не изврат. со счетами пришел на экзамен по вышке именно ты, взявшись за эту статью. (ничего личного)
"To Virt: PHP-скрипты несомненно быстрее, отчасти это связано с тем, что они выполняются в едином адресном пространстве, а ASP.NET использует навороченную модель данных.Плюс там еще оптимизация какая-то... Но скорость разработки в ASP.NET намного быстрее, чем в РНР и это часто решает дело."
совершенно неаргументированною можно поподробней насчет последнего?
"To Lexx: Чтобы понять дотнет-код, нужна вссего лишь голова на плечах вместо бака с мусором. Честно говоря, там даже в МСДН лазить не надо, потому как в Студио подсказки торчат везде где только можно. А вот чтобы понять РНР-код другого программиста, очень часто требуется другой программист собственной персоной."
вот оно, поколение программистов, не пытающихся разбираться в технологии и полагающихся на подсказки среды разработки. насчет понимания чужого кода безотносительно к какому языку -- есть такое понятие code conventions, вот применение последних позволяет вести разработку больших проектов разными людьми параллельно или в разное время. и через полгода никто не будет спрашивать "а чегой это тут понаписано? это что, я пис
Еще раз повторяю: не надо пробовать писать маленькие или не планирующие масштабироваться проекты на ASP.NET - это потеря времени и денег. Не надо пытаться писать большие проекты на РНР - это ОЧЕНЬ большая потеря времени и денег.
To Psyho: Человек, который наиболее полно понял смысл статьи.
To Krect:
>Маны в PHP (как и любом другом языке) пишут для того, чтобы их читали, а не для того, чтобы использовать синтаксис C# или .NET или еще чего-нибудь.
>Я не вижу вообще смысла в этом предложении. Пять минут сидел над ним, пока не врубился, что ты сам не врубился что сказал.
При чем здесь синтаксис? Ты вообще статью читал или где?To LeXX: >Win2k3 на Celerone 500 - ты мазохист. Она на P4 2 ГГц еле ворочается.
Ну теперь нам точно не о чем говорить. Потому что аорочается она только у криворуких начинающих юзверей. Сервисы там все летают и при неслабой нагрузке тоже летают. Плюс мэйл демон, плюс СКЛ сервер с небольшой БД (мгов 900 этак) А кваку я на серваке не запускал и не собираюсь. Грузится правда сервер долго - аж целых минут пять, но это раз в три-четыре месяца и то по случаю установки особо критичного патча.
Ты знаешь, у меня в свое время Ви2К не особо тормозил на п120+64. Правда, профессинал. Руки кривые надо выпрямить, глядишь, и у тебя на П4 залетает (кстати, проверь, может на самом деле это не пентиум 4 а 486, или вообще Mac G4 - тогда понятно, она там и не встанет по причине "глючности" компа)
Ребята!
Многие как будто прочитали заголовок и заключение - и ну строчить грозные комменты. Вы хоть читайте что-нибудь или уж не пишите, смешно.
Повторяю:
To Davojan: ASP давно есть пою Юних, уже года 3 как. А Асп.нет тоже есть, правда под линукс (но с ФриБСД разницы быть не должно) и работает - project-mono.com или mono-project.com, точно не помню. ASP.NET можно! запустить под Апач.
To Kpect: Я написал первый пример как пример, который показывает, что safe-programming в РНР невозможен в принципе. Если тебя устраивают примеры в 500-600 строк, где это также доказывается, то садись и пиши статью. А мне лично, если я читатель, будет удобнее в 10 строках разобраться, хотя это и примитив.
To Sly: Да, я не писал больших проектов на РНР с привлечением десятков программистов, потому что на РНР дебаг будет слишком дорого стоить. Именно поэтому выбраны продукты M$
На РНР хорошо писать проекты в сработавшейся команде, но никак не с "нуля".
Проекты на 3-4 недели с привлечением 3-4 программеров - писал. Большие даже не собираюсь пытаться - мне нервы дороже. РНР - это Personal Home Page, и сложные проекты с ним делать можно, но это все равно как со счетами приходить на экзамен по высшей математике. Пусть те, кому нгравится подобный изврат, занимаются большими проектами на РНР.
To Virt: PHP-скрипты несомненно быстрее, отчасти это связано с тем, что они выполняются в едином адресном пространстве, а ASP.NET использует навороченную модель данных.Плюс там еще оптимизация какая-то... Но скорость разработки в ASP.NET намного быстрее, чем в РНР и это часто решает дело.
To Lexx: Чтобы понять дотнет-код, нужна вссего лишь голова на плечах вместо бака с мусором. Честно говоря, там даже в МСДН лазить не надо, потому как в Студио подсказки торчат везде где только можно. А вот чтобы понять РНР-код другого программиста, очень часто требуется другой программист собственной персоной.
Потому как извращаться они любят очень. Например, БД в виде локального файла реализовывать, когда бесплатно доступен MySQL (сейчас как раз над разработкой такого "программиста" сижу).
А что жты мой дорогой, хотел? "Над мануалами сидеть нада"? Дык кто ж тебя заставляет - не сиди. Работай сисадмином, пока не выгонят. Любой нормальный программер должен переучиваться каждые 2-3 года, иначе кому он нужен?
С умными кннижками у меня все в порядке - по асп замусоленных насковзь уже 8 штук стоит, по РНР одна имхо единственно правильная. А вот у тебя - явно нет, иначе немного приложив мозги да почитав статью, ты бы увидел, что, во-первых, мой код под асп написан на С (хотя и шарпе), а во-вторых, что коду там 10 строчек.
Если ты не умеешь пользоваться MSDN, то как говорится и нехер соваться :) Какие мануалы, это вообще про что???
olegan >>Так и будут писать большие проекты на php и маленькие на .NET и наоборот.
Скорее наоборот... всетаки Virt все грамотно объяснил. Здесь за и против быть не может. Скорость разработки проекта на ASP.NET с большим объемом и сложной логикой намного быстрее чем на PHP. К тому же библиотеки могут содержать уже реализованные common функции которые будут использованы и в других проектах.
Sniff >>Да, ясен пень, что в смешанном html-php коде фиг разберешься.
Вот это верно :) Согласен на 100%. У меня создалось впечатление, что мнигие кто пишет за PHP зачастую разрабатывает все один. (Такой универсал :)) В ASP.NET подключить человека который просто знает C# и HTML очень просто, т.к. структура понятней некуда и не может быть индивидуальной структуризации. Клаассы есть классы, у страницы PageLoad хедр - Response и вообщем-то все понятней некуда.
Я вел средний проект где посередине мне выделяли дополнительных людей и они не слишком парились разбирая страницы, а используя уже созданный Framework генераци страниц просто писали функционал.
Мой вывод таков:
Крупные проекты - ASP.NET
Все что угодно для икушенных - PHP
Присоединяюсь к мнению остальньных, что прежде, чем писать технические статьи нужно знать предмет.
А первый пример с PHP кодом вообще бред. Маны в PHP (как и любом другом языке) пишут для того, чтобы их читали, а не для того, чтобы использовать синтаксис C# или .NET или еще чего-нибудь.
А ООП для ПХП. Сперва книжек умных почитай, язык выучи , а после сравнивай. Чтобы понять ДОТНЕТ код нужно с мануалами сидеть, а ПХП достаточно Си и ХТМЛ знать. Не было особых проблем чтобы понять чей либо код ПХП, а вот АСП хрен поймешь. Сравни что сам написал. А структуировать код никто не учил. Ты бы еще в одну строку написал. Более бредовой статьи не видел. Win2k3 на Celerone 500 - ты мазохист. Она на P4 2 ГГц еле ворочается.
ASP.NET - современная технология динамического сайтостроения.
PHP - скрипт язык.
Из этого следует:
ASP.NET' ом управляют языки программирования высокого уровня, такие как VB.NET, C#, J# и т.д.
PHP сам себе режисёр. Вообще скрипт языки предназначены для организации структурированного контента вывода, не более того!
Опытный программист - разработчик, в полной мере знающий и уважающий концепции ООП, выберет ASP.NET, вот новичку для начала нужно с PHP поковырятся.
Автор расказывает о тестировании в скорости отработки сервера, я не совсем согласен, с тем, что ASP.NET и PHP работают одинаково! В ядре ASP.NET приложения находится dll модуль (предварительно скомпилированный), при старте приложения, т.е. при первом обращении к нему он грузится в память, ну а при последующих обращениях к динамическим страницам скорость отработки сервером гораздо выше! В то время как PHP это просто сценарий, который на каждом прогоне интерпретируется. Даже в школе объясняли, что скомпилированный програмный модуль выполняется гораздо быстрее, чем интерпретируемый! Ну а с базами данных даже тесты не нужны ASP.NET приложения помоему ещё ни кому не уступали.
sly%ukrpost.net
Хочу заметить что большие проекты встречаются гораздо реже маленьких.