Здравствуйте, kronos_vano, Вы писали:
_>Что то тут мало холиваров... _>У меня есть такие стереотипы: _>PHP бесплатный _>PHP проще в изучении/разработке _>PHP быстрее. _>Следовательно PHP лучше. _>Вы согласны?
Будет исполняться быстрее на PHP чем нечто аналогичное на .NET
Даже при условии того что PHP каждый раз компилирует загружаемый файл. (есть для него прекомпиляторы если сильно надо)
Тут дело в том инстанциация или инициализация PHP машины для исполнения запрса черезвычайно легка.
И в принципе для большинства запросов PHP процессору GC не нужен — исполнил запрос — весь memory pool вернул "взад".
Из за этого PHP хорошо масштабируется — запросы и соответсвенно VM изолирваны.
Далее: например функция print_r исполнена нативно — т.е. теоретически максимально эффетивно.
В приведенном скрипте вообще инетрпретируемого кода практически нет.
В .NET/Java это все будет маршалиться, джититься а потом все это весело запустится, отработает и оставит работу мусорщику сервера.
Есть ситуации, системы, стратегии разработки где .NET/Java будет явно лучше.
Короче — мозгом думать надо каждый раз. Серебрянной пули нет.
Sinclair wrote: > Воссоздать подобную штуку в чем-то другом трудно, а правильнее сказать > невозможно.
Ну почему же, вполне можно. Только вот по сложности оно будет такого же
порядка
Sheridan wrote: > C>Абсолютно мертворожденый проект. > Ясен пень останется мертворожденным — у вас же бог Аякс есть.
Нет. Просто никому не хочется использовать заранее мертворожденое детище.
Кстати, Аякс — это не бог, а всего лишь два героя из греческих мифов
> C>В-нулевых, никто просто не будет ставить сторонний клиент для того, > C>чтобы на сайте посмотреть новости в RSS. > glan не для чтения rss.
Ну а вот мне нужна удобная RSS-читалка в Web.
> C>Во-первых, подход GLAN'а с пересылками при каждом чихе просто не будет > C>работать в Интернете. > Бог Аякс же умудряется.
Да, так как делается на основе HTML, в котором идеология форм зашита с
самого начала.
> C>Во-вторых, GLAN — это таааакой баян. До этого был Байконур, Cream и еще > C>куча подобных фреймворков. Рассказать где они сейчас? > Вобщем тебе не нравится с++ и скорость. Так и запишем.
Может посмотришь историю моих постов (даже в этой эхе)? Меня некоторые
товарищи в фанатиков С++ записывали.
Однако использовать С++ там где это нафиг не нужно я не собираюсь.
> C>Модем? А что это такое? > Это знаеш ли устройство через которое полРоссии в интернет ходит.
GMail с модема вполне себе удобен — часто так в дороге им пользуюсь.
> C>Мало средств. Где мой любимый ORM, чтобы я не писал тонны тупых > "SELECT user.a, user.b, user.c FROM Blah WHERE Blah-blah"? > Что тебе мешает это дело написать один раз а потом по мере необходимости > расширять функционал и использовать в различных проектах?
Объем кода Hibernate 3.2 — четыре с половиной мегабайта. Половину,
допустим, можно выбросить (так как делать для частного случая будем).
Как быстро ты напишешь 2 мегабайта отлаженного кода?
> C>Где хотя бы нормальные сессии??? > Чем тебе сессии непонравились? о_0
Их глючность. Например, я не могу рассчитывать, что можно делать сессии
больше 5Кб длиной.
> C>Java _быстрее_ чем PHP. В отдельных случаях может быть даже быстрее > чистого С (за счет хорошего GC и отсутствия проблемы алиасинга). > Присутствие GC увеличивает безопасность но уменьшает производительность > и убирает понятие оптимизации использования ресурсов из программы. Мне > _очень_ нехватало delete в шарпе.
Значит ты плохой программист на С++ — я 'delete' не использую (почти) и
в С++.
А GC в .NET/Sun JVM вполне адекватен для веб-приложений. Поверь, я знаю
как GC в Java работает до конкретных кусков кода в JVM (все никак статью
о нем дописать не могу ).
> C>У нее, разве что, больше начальное время запуска. Но кого это волнует > на сервере? > Да что ты никого ничего не волнует.
Именно. Один раз подождали пару секунд пока JVM запустится при старте
веб-приложения, а потом она там себе спокойно висит и отвечает на запросы.
> C>Посмотрел в код: phpBB, Mantis, HORDE. > терпеть не могу универсальные cms и форумы. Там действительно куча кода > и ноль толку. > Тебе мой какой-ть проект показать?
Давай. Тот код что я вижу, уж извини, не очень.
> C>Да не работает это в PHP. Максимум что ты сможешь сделать — это > простые шаблоны, > А в аспе тоесть не шаблоны, там просто кнопочка "сделай мне хорошо" или > сразу сообщение "тебе уже хорошо"?
Нет, в ASP.NET/Tapestry не шаблоны, а компоненты. От шаблонов они
отличаются тем, что у них может быть состояние и они могут реагировать
на события пользователя (когда на сервер приходит GET/POST/AJAX-запрос).
> C>а вот поведение уже фиг скомпенсировать. > Поведение чего и куда?
Компоненты могут иметь поведение и состояние. Фреймворк автоматически
обеспечивает слежение за состоянием (с помощью ряда методов) и
обеспечивает преобразование данных запросов в события для компонентов.
Объяснить это в двух словах достаточно сложно. Лучше возьми PRADO
(http://xisc.com/) — это фреймворк для PHP, написанный по образу
и подобию ASP.NET. Посмотри как там оно работает — это даст примерное
представление как устроен ASP.NET или Tapestry.
> C>Я говорю про web-приложение, > Блин, веб-приложение это не хтмл с костылями! Ты glan то хоть щупал? Вот > это получается действительно web-приложение.
Еще раз говорю: GLAN — мертв. Он не предназначен для той области,
которую занимают web-приложения. Я его смотрел, причем уже давно — не
впечатлило абсолютно.
Есть, например, Java WebStart — оно намного лучше GLAN'а, но все равно
не имеет широкого распространения.
> C>"прокрутить назад до 1 записи". Как дать классу с табличкой это > обработать? > Выбрать из БД данные и передать классу с табличкой. Либо сразу все > передать либо поrowно, либо просто "указатель" на эти данные... Как > решиш так и будет.
Пример плохого программирования — тебе придется в своем коде делать
работу табличного компонента.
Тут нужен паттерн MVC — делаем табличную модель, которая занимается
выборками из БД, и даем ее табличному виджету. Табличный виджет
реагирует на события и просит модель дать данные с 10 по 20 строку.
Затем запускается рендерер для таблицы, который выводит шапку таблицы,
обрамление и т.п. А полученные данные скармливаются рендерерам строк и
ячеек.
Таким образом, у нас разделены модель, отображение и контроллер. Для
тестирования страниц, например, я могу использовать модель, которая
просто отдает за-hardcode'еные данные без обращения к базе (и работает в
десятки раз быстрее, соответственно). Если мне нужно какое-то особое
отображение строк — просто делаю custom-рендерер для них, не трогая
модель и контроллер. Ну и так далее.
> C>Забудь про GLAN. Нет его в природе. > Это веб-приложений на хтмл нет в природе, а есть хтмл и javascript костыли. > Ты пробовал что-ть на glan писать? Ты хотябы запускал примеры?
Запускал. Вроде я говорил, что эту идею я уже видел раз 5 на протяжении
многих лет? Если не говорил — еще скажу.
>> > Я вижу. Ява кроссплатформенна как минимум. > C>Это непринципиальное различие. В ASP.NET нет ничего, что фундаментально > C>привязано к Windows. > Угу, и всетаки это дело досихпор привязано к виндовс. Не объясниш мне > почему?
Mono живет вполне нормально. А еще есть Mainsoft, которая VisualStudio в
Linux портировала.
>> C>У нее, разве что, больше начальное время запуска. Но кого это волнует >> на сервере? >> Да что ты никого ничего не волнует. C>Именно. Один раз подождали пару секунд пока JVM запустится при старте C>веб-приложения, а потом она там себе спокойно висит и отвечает на запросы.
Такая же ситуация, например, с ColdFusion, который на Java написан. Ощутимые тормоза при старте (с отжиранием проца и прочая и прочая), потом проц даже не шевелится
>> C>"прокрутить назад до 1 записи". Как дать классу с табличкой это >> обработать? >> Выбрать из БД данные и передать классу с табличкой. Либо сразу все >> передать либо поrowно, либо просто "указатель" на эти данные... Как >> решиш так и будет. C>Пример плохого программирования — тебе придется в своем коде делать C>работу табличного компонента.
C>Тут нужен паттерн MVC — делаем табличную модель, которая занимается C>выборками из БД, и даем ее табличному виджету. Табличный виджет C>реагирует на события и просит модель дать данные с 10 по 20 строку. C>Затем запускается рендерер для таблицы, который выводит шапку таблицы, C>обрамление и т.п. А полученные данные скармливаются рендерерам строк и C>ячеек.
C>Таким образом, у нас разделены модель, отображение и контроллер. Для C>тестирования страниц, например, я могу использовать модель, которая C>просто отдает за-hardcode'еные данные без обращения к базе (и работает в C> десятки раз быстрее, соответственно). Если мне нужно какое-то особое C>отображение строк — просто делаю custom-рендерер для них, не трогая C>модель и контроллер. Ну и так далее.
Сейчас для РНР в срочном порядке разрабатываются такие же фреймворки — Zend Framework, CakePHP. Но пока там все в зачаточном состоянии (особенно в области моделей)
Здравствуйте, Cyberax, Вы писали:
C> Лучше возьми PRADO (http://xisc.com/) — это фреймворк для PHP,
Точняк! Так вот где я это слово видел! Мне сегодня приснился сон, где упоминалось слово "Прадо", и я всё утро гадал, почему оно мне знакомым кажется . Только это был не фреймворк, а способ видения осознанных снов внутри другого сна .
возможно тестами и можно доказаьб, что такая страничка на php исполняется быстрее
но будет ли это заметно для человека?
и так ли велика задержка?
CS>Есть ситуации, системы, стратегии разработки где .NET/Java будет явно лучше.CS><html>
примеры?
Здравствуйте, ilya_ny, Вы писали:
_>Здравствуйте, c-smile, Вы писали:
CS>>Скажем вот такая PHPёвина:
_>возможно тестами и можно доказаьб, что такая страничка на php исполняется быстрее _>но будет ли это заметно для человека? _>и так ли велика задержка?
CS>>Есть ситуации, системы, стратегии разработки где .NET/Java будет явно лучше.CS><html> _>примеры?
Скажем есть web service отдающий для AJAX скажем emails из стандартных mbox на сервере то
представляется что простой PHP script будет быстрее чем Java или .NET в этом случае.
Если скажем требуются интенсивные вычисления то .NET или Java лучше.
А еще лучше в этом случае это CGI++ какой — голимый C++
Здравствуйте, WFrag, Вы писали:
WF>Кроме ссылки на документацию я ничего показать не могу. Вот как это выглядит компонент Border и его использование (оформление страницы, навигация): http://tapestry.apache.org/tapestry4.1/components/general/renderbody.html
Я просил твой код, ну да ладно...
WF>Свое, которое можно будет показать будет нескоро. Как проект закончим.
Вобщем понятно, будем считать что валидностью там и не пахнет...
Здравствуйте, Sheridan, Вы писали:
S>Вобщем понятно, будем считать что валидностью там и не пахнет...
Если проект все-таки будет выполнен, то валидность там скорее всего будет. Требование заказчика :)
И вообще. Чего ты ко мне цепляешься? Я просто хотел показать, что твои "заботы о валидности" — не совсем правда, вот и все. Тем более, что эти ошибки, насколько я представляю, правятся "на ура" — было бы желание.
Здравствуйте, WFrag, Вы писали:
WF>За неуважение к участникам дискуссии. 10000 строчек можно было спокойно опустить без ущерба для смысла.
Ну извините... Если модератор заметит это сообщение, то удалите плиз там парой постов выше туяу строчек...
[RSDN@Home][1.2.0][alpha][0]
[Каков же итог жизни? Ужасно мало смысла. [В.В. Розанов]]
Farsight wrote: > J>string str = string.Format("Уважаемый {0}, пожалуйста, {1} в {2}", user, action, direcrion); > А если у тебя не 3 параметра, а 23?
"Если у функции 9 параметров, то вы забыли еще парочку".