* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 10:02 ` Денис Смирнов
@ 2007-02-13 12:21 ` Damir Shayhutdinov
2007-02-13 16:16 ` Денис Смирнов
2007-02-13 18:29 ` Andrey Rahmatullin
` (3 subsequent siblings)
4 siblings, 1 reply; 29+ messages in thread
From: Damir Shayhutdinov @ 2007-02-13 12:21 UTC (permalink / raw)
To: культурный
офтопик
> Из последнего твоего разъяснения и вкуривания докуметации я уяснил для
> себя что:
>
> - Java как язык мне очень нравится для построения платформы;
> - Java категорически не нравится собственно для написания web-приложения.
> В общем-то это пофиг, потому как я не ленивый, и сделать некий простой
> скриптовый язык из которого генерировать код на жабе я смогу. А где
> нужна хоть чуть-чуть нетривиальная логика не выпендриваться, а писать
> на жабе;
Есть JSP, есть сервлеты. JSP - это аналог php, только вставки там
делаются не на убогом PHP, а на Java, также есть возможность расширять
синтаксис этого jsp своими "тегами" и есть хорошая интеграция с Java
Beans и сессиями.
> - Генерировать самому код для JVM -- гм, а что, есть для этого
> более-менее удобные средства (типа тех что есть в .NET)? Да ещё и
> более-менее эффективные (умеющие задействовать при необходимости фишки
> как сановской, так и IBM'овской реализации)?
> - То, что считается общепринятым методом разработки web-приложений на
> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
> самостоятельно.
Веб-приложения на Java сделанные в виде сервлетов/JSP отлично
запускаются в среде контейнера сервлетов. То есть для обработки
запроса порождается очередной экземпляр сервлета и вызываются его
методы. Затраты на порождение близки к затратам на вызов метода new +
времени инициализации конструктора.
Контейнер сервлетов Tomcat может подключаться бэкэндом к апачу (через
jk-коннекторы), и у него уже есть штатный load balancing. А может быть
и обычным веб-сервером, даже с поддержкой https.
Есть еще другие контейнеры - но с ними я особенно не работал, так что не знаю.
> Что мне, кстати, очень понравилось в Java -- очень хороший набор
> параметризуемых классов для различных структур данных. А также сам подход
> к ООП с разделением интерфейсов и собственно классов. Удобно это.
Главное не увлекаться.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 12:21 ` Damir Shayhutdinov
@ 2007-02-13 16:16 ` Денис Смирнов
2007-02-13 16:37 ` Damir Shayhutdinov
0 siblings, 1 reply; 29+ messages in thread
From: Денис Смирнов @ 2007-02-13 16:16 UTC (permalink / raw)
To: smoke-room
On Tue, Feb 13, 2007 at 03:21:35PM +0300, Damir Shayhutdinov wrote:
>> - Java категорически не нравится собственно для написания web-приложения.
>> В общем-то это пофиг, потому как я не ленивый, и сделать некий простой
>> скриптовый язык из которого генерировать код на жабе я смогу. А где
>> нужна хоть чуть-чуть нетривиальная логика не выпендриваться, а писать
>> на жабе;
DS> Есть JSP, есть сервлеты. JSP - это аналог php, только вставки там
DS> делаются не на убогом PHP, а на Java, также есть возможность расширять
DS> синтаксис этого jsp своими "тегами" и есть хорошая интеграция с Java
DS> Beans и сессиями.
Ну сервлеты мне хотя бы понятны. JSP это такой же кошмар что и PHP. Идея
мешать код и данные меня категорически не устраивает. Я сейчас пишу вот
так:
=============================================================================
[requires]
[templates]
tpl => firm_edit.tmpl
[cgi_param]
name
form str default(NULL)
firmname str default(NULL)
param
do_update str default(0)
id int min(0)
update
uraddr str default(NULL)
ogrn str default(NULL) min(1)
kpp str default(NULL)
gendir_f str default(NULL)
gendir_i str default(NULL)
gendir_o str default(NULL)
buh_f str default(NULL)
buh_i str default(NULL)
buh_o str default(NULL)
[php]
<?php
if( !$edb->is_counteragent_id($param['id']) )
{
redirect();
exit();
}
if( $param['do_update'] === 'yes' )
{
$where['counteragent_id'] = $param['id'];
$db->update('firms', $update, $where);
$db->update('counteragents', $name, $where);
redirect("firm_show.php?id=".$param['id']);
}
$tpl->param($edb->get_counteragent($param['id']));
$tpl->value('accounts', $edb->get_counteragent_active_accounts($param['id']);
=============================================================================
Разумеется код для объекта edb тоже генерирутся из высокоуровневого
описания. cgi_param генерирует констрейнты для проверки валидности
переданых пользователем значений.
На все приложение, в котором используется такой стиль, есть всего
несколько хоть чуточку нетривиальных функций на PHP. Остальное вот в таком
линейном стиле, который запросто можно автоматически сконвертировать хоть
в basic, хоть в haskell.
>> - Генерировать самому код для JVM -- гм, а что, есть для этого
>> более-менее удобные средства (типа тех что есть в .NET)? Да ещё и
>> более-менее эффективные (умеющие задействовать при необходимости фишки
>> как сановской, так и IBM'овской реализации)?
>> - То, что считается общепринятым методом разработки web-приложений на
>> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
>> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
>> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
>> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
>> самостоятельно.
DS> Веб-приложения на Java сделанные в виде сервлетов/JSP отлично
DS> запускаются в среде контейнера сервлетов. То есть для обработки
DS> запроса порождается очередной экземпляр сервлета и вызываются его
DS> методы. Затраты на порождение близки к затратам на вызов метода new +
DS> времени инициализации конструктора.
DS> Контейнер сервлетов Tomcat может подключаться бэкэндом к апачу (через
DS> jk-коннекторы), и у него уже есть штатный load balancing. А может быть
DS> и обычным веб-сервером, даже с поддержкой https.
DS> Есть еще другие контейнеры - но с ними я особенно не работал, так что не знаю.
(со злобным выражением лица и стуча ложкой по столу) хочу FastCGI!
>> Что мне, кстати, очень понравилось в Java -- очень хороший набор
>> параметризуемых классов для различных структур данных. А также сам подход
>> к ООП с разделением интерфейсов и собственно классов. Удобно это.
DS> Главное не увлекаться.
:) Ну, положим увлекаться с _интерфейсами_ в отличии от наследования
вполне безопасно, и не уродует код.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Documentation - The worst part of programming.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 16:16 ` Денис Смирнов
@ 2007-02-13 16:37 ` Damir Shayhutdinov
2007-02-14 19:07 ` Денис Смирнов
0 siblings, 1 reply; 29+ messages in thread
From: Damir Shayhutdinov @ 2007-02-13 16:37 UTC (permalink / raw)
To: культурный
офтопик
> Ну сервлеты мне хотя бы понятны. JSP это такой же кошмар что и PHP. Идея
> мешать код и данные меня категорически не устраивает. Я сейчас пишу вот
> так:
Ну а что мешает из этого сервлет сделать?
> DS> Есть еще другие контейнеры - но с ними я особенно не работал, так что не знаю.
>
> (со злобным выражением лица и стуча ложкой по столу) хочу FastCGI!
Пиши сервлет-обертку. :)
> >> Что мне, кстати, очень понравилось в Java -- очень хороший набор
> >> параметризуемых классов для различных структур данных. А также сам подход
> >> к ООП с разделением интерфейсов и собственно классов. Удобно это.
> DS> Главное не увлекаться.
>
> :) Ну, положим увлекаться с _интерфейсами_ в отличии от наследования
> вполне безопасно, и не уродует код.
Да ну, я видел примеры misuse и overuse и интерфейсов, и
классов-фабрик в больших проектах. Когда шаблонное мышление в
сочетании с программированием на паттернах приводит к
неподдерживаемости кода человеком, отличающимся по строению паттернов
мышления от автора.
Проще говоря, прослойка абстракций становится настолько большая, что
путь между вызовами методов объектов проследить не представляется
возможным.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 16:37 ` Damir Shayhutdinov
@ 2007-02-14 19:07 ` Денис Смирнов
2007-02-14 15:15 ` Michael Shigorin
0 siblings, 1 reply; 29+ messages in thread
From: Денис Смирнов @ 2007-02-14 19:07 UTC (permalink / raw)
To: культурный
офтопик
>> Ну сервлеты мне хотя бы понятны. JSP это такой же кошмар что и PHP. Идея
>> мешать код и данные меня категорически не устраивает. Я сейчас пишу вот
>> так:
DS> Ну а что мешает из этого сервлет сделать?
Да в общем-то, наверное, ничего. Из такого типа-кода можно вообще что
угодно сделать.
> DS>> Есть еще другие контейнеры - но с ними я особенно не работал, так что не знаю.
>> (со злобным выражением лица и стуча ложкой по столу) хочу FastCGI!
DS> Пиши сервлет-обертку. :)
(Задумчиво) а может действительно попробовать...
> >>> Что мне, кстати, очень понравилось в Java -- очень хороший набор
> >>> параметризуемых классов для различных структур данных. А также сам подход
> >>> к ООП с разделением интерфейсов и собственно классов. Удобно это.
> DS>> Главное не увлекаться.
>> :) Ну, положим увлекаться с _интерфейсами_ в отличии от наследования
>> вполне безопасно, и не уродует код.
DS> Да ну, я видел примеры misuse и overuse и интерфейсов, и
DS> классов-фабрик в больших проектах. Когда шаблонное мышление в
DS> сочетании с программированием на паттернах приводит к
DS> неподдерживаемости кода человеком, отличающимся по строению паттернов
DS> мышления от автора.
DS> Проще говоря, прослойка абстракций становится настолько большая, что
DS> путь между вызовами методов объектов проследить не представляется
DS> возможным.
А, ты про это... Хех. Это основное за что я не люблю ООП как таковой.
Писать хорошо, писать хорошей командой отлично, а вот читать чужой плохой
код... Может быть посложнее чем просто поток сознания на хрен знает
сколько строк кода в одной функции :)
Ну тут уж увы. Средств чтобы чайник не мог написать что-то ужасное пока не
придумали. Разве что спец решения, в которых вообще ничего особо писать
нельзя, только мышой в окошки тыкать :)
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
ПЕРВОЕ ПРАВИЛО ИСТОРИИ
История не повторяется - это историки повторяют друг друга.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-14 19:07 ` Денис Смирнов
@ 2007-02-14 15:15 ` Michael Shigorin
2007-02-15 10:45 ` Денис Смирнов
0 siblings, 1 reply; 29+ messages in thread
From: Michael Shigorin @ 2007-02-14 15:15 UTC (permalink / raw)
To: культурный
офтопик
On Wed, Feb 14, 2007 at 10:07:09PM +0300, Денис Смирнов wrote:
> А, ты про это... Хех. Это основное за что я не люблю ООП как
> таковой. Писать хорошо, писать хорошей командой отлично, а вот
> читать чужой плохой код... Может быть посложнее чем просто
> поток сознания на хрен знает сколько строк кода в одной функции
> :)
Одна из причин, по которым Ruby понравилось -- читать чужое
обычно /интересно/, а не просто возможно.
> Ну тут уж увы. Средств чтобы чайник не мог написать что-то
> ужасное пока не придумали. Разве что спец решения, в которых
> вообще ничего особо писать нельзя, только мышой в окошки тыкать
> :)
Эт да, уж на что тот же питон через что гланды пытается
зафиксировать лесенкой перед удалением -- а и то мусор
написать не проблема. :)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-14 15:15 ` Michael Shigorin
@ 2007-02-15 10:45 ` Денис Смирнов
0 siblings, 0 replies; 29+ messages in thread
From: Денис Смирнов @ 2007-02-15 10:45 UTC (permalink / raw)
To: shigorin,
культурный
офтопик
On Wed, Feb 14, 2007 at 05:15:05PM +0200, Michael Shigorin wrote:
>> А, ты про это... Хех. Это основное за что я не люблю ООП как
>> таковой. Писать хорошо, писать хорошей командой отлично, а вот
>> читать чужой плохой код... Может быть посложнее чем просто
>> поток сознания на хрен знает сколько строк кода в одной функции
>> :)
MS> Одна из причин, по которым Ruby понравилось -- читать чужое
MS> обычно /интересно/, а не просто возможно.
Любопытно.
>> Ну тут уж увы. Средств чтобы чайник не мог написать что-то
>> ужасное пока не придумали. Разве что спец решения, в которых
>> вообще ничего особо писать нельзя, только мышой в окошки тыкать
>> :)
MS> Эт да, уж на что тот же питон через что гланды пытается
MS> зафиксировать лесенкой перед удалением -- а и то мусор
MS> написать не проблема. :)
:)
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Тяжела и неказиста
Жизнь простого программиста
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 10:02 ` Денис Смирнов
2007-02-13 12:21 ` Damir Shayhutdinov
@ 2007-02-13 18:29 ` Andrey Rahmatullin
2007-02-14 19:03 ` Денис Смирнов
2007-02-14 15:11 ` Michael Shigorin
` (2 subsequent siblings)
4 siblings, 1 reply; 29+ messages in thread
From: Andrey Rahmatullin @ 2007-02-13 18:29 UTC (permalink / raw)
To: smoke-room
[-- Attachment #1: Type: text/plain, Size: 357 bytes --]
On Tue, Feb 13, 2007 at 01:02:15PM +0300, Денис Смирнов wrote:
> - Генерировать самому код для JVM -- гм, а что, есть для этого
> более-менее удобные средства (типа тех что есть в .NET)?
Тыпрачо?
--
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):
Неполное цитирование приводит к неправильному пониманию.
-- ldv in devel@
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 18:29 ` Andrey Rahmatullin
@ 2007-02-14 19:03 ` Денис Смирнов
2007-02-14 14:59 ` Andrey Rahmatullin
0 siblings, 1 reply; 29+ messages in thread
From: Денис Смирнов @ 2007-02-14 19:03 UTC (permalink / raw)
To: культурный
офтопик
On Tue, Feb 13, 2007 at 11:29:07PM +0500, Andrey Rahmatullin wrote:
>> - Генерировать самому код для JVM -- гм, а что, есть для этого
>> более-менее удобные средства (типа тех что есть в .NET)?
AR> Тыпрачо?
Основная фишка .NET, делающая его вообще интересным -- это то что бинарник
это такой же объект как и все остальные. Тебе ничего не мешает набором
стандартных вызовов:
- сгенерировать некий код;
- выполнить этот код (и будет работать JIT-компилятор!);
- записать код в виде exe-шника;
- прочитать код из exe-шника;
- модифицировать (!) этот код;
.NET содержит в себе очень хорошие заготовки. Мелкософт не смог довести
его до ума, плюс у винды самой по себе ядро мастдайное :) А так задел для
того чтобы порвать LAMP на задаче корпоративных web-проектов у них был.
Только реализовать кишка тонка оказалась.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Автором программы были выявлены недокументированные возможности...
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-14 19:03 ` Денис Смирнов
@ 2007-02-14 14:59 ` Andrey Rahmatullin
2007-02-15 10:26 ` Денис Смирнов
0 siblings, 1 reply; 29+ messages in thread
From: Andrey Rahmatullin @ 2007-02-14 14:59 UTC (permalink / raw)
To: smoke-room
[-- Attachment #1: Type: text/plain, Size: 629 bytes --]
On Wed, Feb 14, 2007 at 10:03:43PM +0300, Денис Смирнов wrote:
> Основная фишка .NET, делающая его вообще интересным -- это то что бинарник
> это такой же объект как и все остальные.
А, так бы и сказал, что в рантайме генерить.
> Тебе ничего не мешает набором
> стандартных вызовов:
> - сгенерировать некий код;
> - выполнить этот код (и будет работать JIT-компилятор!);
> - записать код в виде exe-шника;
> - прочитать код из exe-шника;
> - модифицировать (!) этот код;
Знаю :)
--
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):
Пользуйтесь, кому не страшно ;-)
-- vvzhy in devel@
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-14 14:59 ` Andrey Rahmatullin
@ 2007-02-15 10:26 ` Денис Смирнов
2007-02-15 16:02 ` Andrey Rahmatullin
0 siblings, 1 reply; 29+ messages in thread
From: Денис Смирнов @ 2007-02-15 10:26 UTC (permalink / raw)
To: smoke-room
On Wed, Feb 14, 2007 at 07:59:08PM +0500, Andrey Rahmatullin wrote:
>> Основная фишка .NET, делающая его вообще интересным -- это то что бинарник
>> это такой же объект как и все остальные.
AR> А, так бы и сказал, что в рантайме генерить.
Не обязательно в рантайме, в том-то и фенька. Захотел -- в рантайме
сгенерил, захотел -- dll'ку али exe'шник с результатом записал. Всякие
zend optimizer'ы и прочая аналогичная муть нервно курит в сторонке
завистливо поглядывая.
Соответственно возможности для оптимизации почти неограничены. Стоимость
использования всяческих регекспов (если они статичные а не сами по себе
динамически генерятся) сразу падает, и прочие аналогичные радости.
Когда компилятор может быть частью любого приложения это удобно.
Эх, сделали бы они его портируемым и с не таким страшным API... Глядишь
можно было бы сказать что Microsoft сделала целый один архиполезный для
community продукт. За подобную платформу не жалко было бы и заплатить...
>> Тебе ничего не мешает набором
>> стандартных вызовов:
>> - сгенерировать некий код;
>> - выполнить этот код (и будет работать JIT-компилятор!);
>> - записать код в виде exe-шника;
>> - прочитать код из exe-шника;
>> - модифицировать (!) этот код;
AR> Знаю :)
:)
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Есть множество программ, работающих в wine.
-- lav in community@
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-15 10:26 ` Денис Смирнов
@ 2007-02-15 16:02 ` Andrey Rahmatullin
2007-02-17 11:55 ` Денис Смирнов
0 siblings, 1 reply; 29+ messages in thread
From: Andrey Rahmatullin @ 2007-02-15 16:02 UTC (permalink / raw)
To: smoke-room
[-- Attachment #1: Type: text/plain, Size: 723 bytes --]
On Thu, Feb 15, 2007 at 01:26:52PM +0300, Денис Смирнов wrote:
> Не обязательно в рантайме, в том-то и фенька. Захотел -- в рантайме
> сгенерил, захотел -- dll'ку али exe'шник с результатом записал.
Ну это я тоже знаю :)
> Соответственно возможности для оптимизации почти неограничены. Стоимость
> использования всяческих регекспов (если они статичные а не сами по себе
> динамически генерятся) сразу падает, и прочие аналогичные радости.
Меня как раз испугало, когда я узнал, как работают регекспы, XmlSerializer
и ещё что-то. Впрочем, недавно я узнал про sgen.exe.
--
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):
Даже драки мне нравятся куда больше линуксконфа.
-- aen in devel@
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-15 16:02 ` Andrey Rahmatullin
@ 2007-02-17 11:55 ` Денис Смирнов
0 siblings, 0 replies; 29+ messages in thread
From: Денис Смирнов @ 2007-02-17 11:55 UTC (permalink / raw)
To: культурный
офтопик
On Thu, Feb 15, 2007 at 09:02:00PM +0500, Andrey Rahmatullin wrote:
>> Соответственно возможности для оптимизации почти неограничены. Стоимость
>> использования всяческих регекспов (если они статичные а не сами по себе
>> динамически генерятся) сразу падает, и прочие аналогичные радости.
AR> Меня как раз испугало, когда я узнал, как работают регекспы, XmlSerializer
AR> и ещё что-то. Впрочем, недавно я узнал про sgen.exe.
Главное что при большом желании все подобное можно для себя написать.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Я не делаю бессмысленных вещей.
Спорных - возможно, но смысл есть всегда.
-- ldv in sisyphus@
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 10:02 ` Денис Смирнов
2007-02-13 12:21 ` Damir Shayhutdinov
2007-02-13 18:29 ` Andrey Rahmatullin
@ 2007-02-14 15:11 ` Michael Shigorin
2007-02-15 10:45 ` Денис Смирнов
2007-02-17 17:22 ` Alexander Borovsky
2007-02-18 14:22 ` Eugene Prokopiev
4 siblings, 1 reply; 29+ messages in thread
From: Michael Shigorin @ 2007-02-14 15:11 UTC (permalink / raw)
To: культурный
офтопик
On Tue, Feb 13, 2007 at 01:02:15PM +0300, Денис Смирнов wrote:
> - Java как язык мне очень нравится для построения платформы;
Ты Мишку Бочкарёва поспрошай, какие расклады по времени выходят
как для домашнего использования и небольших команд.
> - То, что считается общепринятым методом разработки web-приложений на
> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
> самостоятельно.
Здрасьте, ты томкат-то хоть в глаза видел? :)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-14 15:11 ` Michael Shigorin
@ 2007-02-15 10:45 ` Денис Смирнов
0 siblings, 0 replies; 29+ messages in thread
From: Денис Смирнов @ 2007-02-15 10:45 UTC (permalink / raw)
To: shigorin,
культурный
офтопик
On Wed, Feb 14, 2007 at 05:11:41PM +0200, Michael Shigorin wrote:
>> - Java как язык мне очень нравится для построения платформы;
MS> Ты Мишку Бочкарёва поспрошай, какие расклады по времени выходят
MS> как для домашнего использования и небольших команд.
Да в общем-то там и так грабли видны :( Потому я и предпочел в результате
писать на PHP -- исключительно из-за предсказуемости и возможности нанять
народ по рубль кучка со словами "хочу такую либу -- вот тест -- чтобы
завтра было". Но все равно долго нервы мои не выдержат.
В целом для эксперимента пописав чуток я быстро понял чего мне там не
хватает из того что прикрутить разумными способами нельзя. М чего не
хватает из того что прикрутить таки можно, с учетом того что все равно на
чистом коде пишутся только либы, а само web-приложение не надо писать на
каком-то языке, его надо обрабатывать препроцессором.
Собственно как обычно в IT -- все кругом кривые глюкалки, но некоторыми из
них можно пользоваться (как Java), а некоторыми нет, если дома нет
достаточных запасов успокоительного (как PHP).
Перспективнее всего завязываться на что-то вроде OCaml, но силенок таки
доизучать его до возможности более-менее на нем писать пока нету. А на
Java я смог начать писать после часу чтения, несмотря на то что последний
раз писал на ней hello world не помню сколько лет назад.
>> - То, что считается общепринятым методом разработки web-приложений на
>> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
>> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
>> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
>> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
>> самостоятельно.
MS> Здрасьте, ты томкат-то хоть в глаза видел? :)
Честно? Мне сказали что "как CGI низя", я поверил, и в его сторону не
смотрел.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Господа, добавленные в Cc, прошу вас высказать свою точку зрения.
-- ldv in #4806
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 10:02 ` Денис Смирнов
` (2 preceding siblings ...)
2007-02-14 15:11 ` Michael Shigorin
@ 2007-02-17 17:22 ` Alexander Borovsky
2007-02-24 11:51 ` Денис Смирнов
2007-02-18 14:22 ` Eugene Prokopiev
4 siblings, 1 reply; 29+ messages in thread
From: Alexander Borovsky @ 2007-02-17 17:22 UTC (permalink / raw)
To: культурный
офтопик
On 2/13/07, Денис Смирнов <mithraen@> wrote:
> On Mon, Feb 12, 2007 at 09:00:12AM +0300, Eugene Prokopiev wrote:
>
> >> Вот обижусь на все эти языки, уйду в отпуск, и начну писать себе набор
> >> библиотек чтобы на ocaml каком писать... :)
> EP> Боюсь показаться навязчивым, но есть такая платформа - JVM ;) c жутким
> EP> количеством библиотек и с несколько меньшим количеством языков, среди
> EP> которых, помимо Java, есть и функциональные (Scala и CAL - аналог
> EP> хаскела без части syntax sugar, кстати и небезызвестный г-н Луговской
> EP> вроде как на том же поприще подвизался), и много еще какие, если же
> EP> того, что надо все же нет, то есть, например, ANTLR ;)
> EP> Вот хостиг с Java - да, дороже LAMP выйдет ...
>
> Зря боишься :) О JVM я думаю больше всего. А твоими стараниями думаю более
> осознанно :)
>
> Из последнего твоего разъяснения и вкуривания докуметации я уяснил для
> себя что:
>
> - Java как язык мне очень нравится для построения платформы;
> - Java категорически не нравится собственно для написания web-приложения.
> В общем-то это пофиг, потому как я не ленивый, и сделать некий простой
> скриптовый язык из которого генерировать код на жабе я смогу. А где
> нужна хоть чуть-чуть нетривиальная логика не выпендриваться, а писать
> на жабе;
> - Генерировать самому код для JVM -- гм, а что, есть для этого
> более-менее удобные средства (типа тех что есть в .NET)? Да ещё и
> более-менее эффективные (умеющие задействовать при необходимости фишки
> как сановской, так и IBM'овской реализации)?
Уже есть groovy (компилируемый в байткод для jvm, похож на ruby)
> - То, что считается общепринятым методом разработки web-приложений на
> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
> самостоятельно.
Есть Grails (нечто смахивающее на Rails, но на groovy)
>
> По поводу цены хостинга -- это я для себя, а мне хостинг не нужен.
> Перестанет ресурсов хватать -- ещё пару гиг и второй двухядерник воткну на
> f.i :) А LAMP идет нафиг. У меня скоро на PHP будет условный рефлекс --
> кидаться в произносящего всем что попадется под руку. От MySQL я давно
> отказался в пользу постгреса, благо опять же если речь о своих проектах а
> не о виртуальном хостинге -- преимущества очевидны (у меня есть триггеры и
> по две страницы текста).
>
> Что мне, кстати, очень понравилось в Java -- очень хороший набор
> параметризуемых классов для различных структур данных. А также сам подход
> к ООП с разделением интерфейсов и собственно классов. Удобно это.
Ещё можно попробовать Ruby on Rails, в нём неплохоре разделения логики
и представления (работает как FastCGI).
--
Best regards,
Alexander Borovsky
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-17 17:22 ` Alexander Borovsky
@ 2007-02-24 11:51 ` Денис Смирнов
0 siblings, 0 replies; 29+ messages in thread
From: Денис Смирнов @ 2007-02-24 11:51 UTC (permalink / raw)
To: культурный
офтопик
On Sat, Feb 17, 2007 at 07:22:25PM +0200, Alexander Borovsky wrote:
AB> Уже есть groovy (компилируемый в байткод для jvm, похож на ruby)
Гм.
>> - То, что считается общепринятым методом разработки web-приложений на
>> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
>> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
>> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
>> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
>> самостоятельно.
AB> Есть Grails (нечто смахивающее на Rails, но на groovy)
Маньяки :)
>> Что мне, кстати, очень понравилось в Java -- очень хороший набор
>> параметризуемых классов для различных структур данных. А также сам подход
>> к ООП с разделением интерфейсов и собственно классов. Удобно это.
AB> Ещё можно попробовать Ruby on Rails, в нём неплохоре разделения логики
AB> и представления (работает как FastCGI).
Буду думать.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
ЗАКОН ЛАБОРАТОРИИ ФЕТА
Никогда не пытайтесь повторить удачный эксперимент.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-13 10:02 ` Денис Смирнов
` (3 preceding siblings ...)
2007-02-17 17:22 ` Alexander Borovsky
@ 2007-02-18 14:22 ` Eugene Prokopiev
2007-02-19 6:40 ` Eugene Prokopiev
2007-02-19 11:02 ` Денис Смирнов
4 siblings, 2 replies; 29+ messages in thread
From: Eugene Prokopiev @ 2007-02-18 14:22 UTC (permalink / raw)
To: культурный
офтопик
Денис Смирнов пишет:
> On Mon, Feb 12, 2007 at 09:00:12AM +0300, Eugene Prokopiev wrote:
>
>
>>>Вот обижусь на все эти языки, уйду в отпуск, и начну писать себе набор
>>>библиотек чтобы на ocaml каком писать... :)
>
> EP> Боюсь показаться навязчивым, но есть такая платформа - JVM ;) c жутким
> EP> количеством библиотек и с несколько меньшим количеством языков, среди
> EP> которых, помимо Java, есть и функциональные (Scala и CAL - аналог
> EP> хаскела без части syntax sugar, кстати и небезызвестный г-н Луговской
> EP> вроде как на том же поприще подвизался), и много еще какие, если же
> EP> того, что надо все же нет, то есть, например, ANTLR ;)
> EP> Вот хостиг с Java - да, дороже LAMP выйдет ...
>
> Зря боишься :) О JVM я думаю больше всего. А твоими стараниями думаю более
> осознанно :)
>
> Из последнего твоего разъяснения и вкуривания докуметации я уяснил для
> себя что:
>
> - Java как язык мне очень нравится для построения платформы;
> - Java категорически не нравится собственно для написания web-приложения.
> В общем-то это пофиг, потому как я не ленивый, и сделать некий простой
> скриптовый язык из которого генерировать код на жабе я смогу. А где
> нужна хоть чуть-чуть нетривиальная логика не выпендриваться, а писать
> на жабе;
> - Генерировать самому код для JVM -- гм, а что, есть для этого
> более-менее удобные средства (типа тех что есть в .NET)? Да ещё и
> более-менее эффективные (умеющие задействовать при необходимости фишки
> как сановской, так и IBM'овской реализации)?
http://java-source.net/open-source/bytecode-libraries
> - То, что считается общепринятым методом разработки web-приложений на
> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
> самостоятельно.
http://docs.codehaus.org/display/JETTY/Embedding+Jetty
Я не пойму, чего ты так цепляешься за FastCGI. Чем это принципиально
отличается от HttpServlet.do*? Сделай поверх сервлетов любое API,
которое тебе будет удобно, в FastCGI ты же ведь тоже наверное не в
терминах ввода/вывода символов работаешь ...
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-18 14:22 ` Eugene Prokopiev
@ 2007-02-19 6:40 ` Eugene Prokopiev
2007-02-24 12:02 ` Денис Смирнов
2007-02-19 11:02 ` Денис Смирнов
1 sibling, 1 reply; 29+ messages in thread
From: Eugene Prokopiev @ 2007-02-19 6:40 UTC (permalink / raw)
To: культурный
офтопик
Eugene Prokopiev пишет:
> Денис Смирнов пишет:
>
>>On Mon, Feb 12, 2007 at 09:00:12AM +0300, Eugene Prokopiev wrote:
>>
>>
>>
>>>>Вот обижусь на все эти языки, уйду в отпуск, и начну писать себе набор
>>>>библиотек чтобы на ocaml каком писать... :)
>>
>>EP> Боюсь показаться навязчивым, но есть такая платформа - JVM ;) c жутким
>>EP> количеством библиотек и с несколько меньшим количеством языков, среди
>>EP> которых, помимо Java, есть и функциональные (Scala и CAL - аналог
>>EP> хаскела без части syntax sugar, кстати и небезызвестный г-н Луговской
>>EP> вроде как на том же поприще подвизался), и много еще какие, если же
>>EP> того, что надо все же нет, то есть, например, ANTLR ;)
>>EP> Вот хостиг с Java - да, дороже LAMP выйдет ...
>>
>>Зря боишься :) О JVM я думаю больше всего. А твоими стараниями думаю более
>>осознанно :)
>>
>>Из последнего твоего разъяснения и вкуривания докуметации я уяснил для
>>себя что:
>>
>> - Java как язык мне очень нравится для построения платформы;
>> - Java категорически не нравится собственно для написания web-приложения.
>> В общем-то это пофиг, потому как я не ленивый, и сделать некий простой
>> скриптовый язык из которого генерировать код на жабе я смогу. А где
>> нужна хоть чуть-чуть нетривиальная логика не выпендриваться, а писать
>> на жабе;
>> - Генерировать самому код для JVM -- гм, а что, есть для этого
>> более-менее удобные средства (типа тех что есть в .NET)? Да ещё и
>> более-менее эффективные (умеющие задействовать при необходимости фишки
>> как сановской, так и IBM'овской реализации)?
>
>
> http://java-source.net/open-source/bytecode-libraries
а в Java 6 есть такое -
http://java.sun.com/javase/6/docs/api/javax/tools/package-summary.html
хотя и раньше jasper (компилятор JSP в байт-код) и ant как-то
выкручивались, используя, как я понимаю, недокументированные классы из
tools.jar
в некоторых случаях для динамической генерации кода удобнее AOP, см.
AspectJ и Spring AOP
>> - То, что считается общепринятым методом разработки web-приложений на
>> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
>> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
>> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
>> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
>> самостоятельно.
>
>
> http://docs.codehaus.org/display/JETTY/Embedding+Jetty
>
> Я не пойму, чего ты так цепляешься за FastCGI. Чем это принципиально
> отличается от HttpServlet.do*? Сделай поверх сервлетов любое API,
> которое тебе будет удобно, в FastCGI ты же ведь тоже наверное не в
> терминах ввода/вывода символов работаешь ...
Кстати, встраивание http-сервера в приложение - не такая глупая мысль,
как поначалу кажется. Многие проекты это практикуют, правда я не могу
вспомнить ни одного, кто бы использовал свой наколенный http-сервер. В
большинстве случаев встраивают Jetty, и я не могу придумать причины для
написания своего http-сервера вместо него. С учетом использования NIO
его конкурентом в плане производительности должен быть скорее nginx,
нежели apache, хотя задачи выжать из него максимум пока у меня не было.
Я встраивал Jetty, правда не прямо в свой Java-код, а в контекст
Спринга. И наблюдаю интересную тенденцию: многие проекты уже используют
Spring/XBean или Hivemind в качестве механизма конфигурирования
отказываясь от изобретения собственных велосипедов. Меня, как
пользователя Spring, это очень радует. Логика работы контекста и
синтаксис его описания в Spring разделены, т.е. xml - только один из
возможных способов его описания. Еще поддерживается никем вроде не
используемый формат properties, а одни веселые ребята сделали реализацию
Ruby-подобного синтаксиса -
http://svn.trampolinesystems.com/springy/trunk/README
Сейчас для одного совсем маленького web-проекта я использую DWR, там
работа ведется не в терминах http-запросов, а скорее в терминах RPC. GUI
на HTML (еще лучше здесь будет смотреться XUL), клиентская логика на
JavaScript, серверная - Java (точнее контекст Spring со встроенными в
него бинами Jetty, DWR, самого Spring и моими). Собственно DWR нужен,
чтобы из JavaScript дергать Java-код (бины, размещенные в контексте
Spring) и наоборот. Не факт, что тебе это подойдет, но посмотри.
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-19 6:40 ` Eugene Prokopiev
@ 2007-02-24 12:02 ` Денис Смирнов
2007-02-24 15:28 ` Eugene Prokopiev
0 siblings, 1 reply; 29+ messages in thread
From: Денис Смирнов @ 2007-02-24 12:02 UTC (permalink / raw)
To: культурный
офтопик
On Mon, Feb 19, 2007 at 09:40:42AM +0300, Eugene Prokopiev wrote:
>> http://java-source.net/open-source/bytecode-libraries
EP> а в Java 6 есть такое -
EP> http://java.sun.com/javase/6/docs/api/javax/tools/package-summary.html
EP> хотя и раньше jasper (компилятор JSP в байт-код) и ant как-то
EP> выкручивались, используя, как я понимаю, недокументированные классы из
EP> tools.jar
Как я понял речь не о генерировании байт-кода, а о вызове компилятора,
если правильно понял описание.
EP> в некоторых случаях для динамической генерации кода удобнее AOP, см.
EP> AspectJ и Spring AOP
Гляну.
>> http://docs.codehaus.org/display/JETTY/Embedding+Jetty
EP> Кстати, встраивание http-сервера в приложение - не такая глупая мысль,
EP> как поначалу кажется. Многие проекты это практикуют, правда я не могу
EP> вспомнить ни одного, кто бы использовал свой наколенный http-сервер. В
EP> большинстве случаев встраивают Jetty, и я не могу придумать причины для
EP> написания своего http-сервера вместо него. С учетом использования NIO
EP> его конкурентом в плане производительности должен быть скорее nginx,
EP> нежели apache, хотя задачи выжать из него максимум пока у меня не было.
Встраиваниее именно http-сервера в веб приложение мне сейчас кажется
вообще единственным способом обеспечить приемлимую производительность.
Хотя бы потому что любые внешние методы кэширование, реализованые во
внешней среде мягко скажем малоработоспособны. Плюс куда проще
синхронизация.
В общем это очень похоже на то что мне подойдет. Сделаю пару простых
тестовых приложений, потом уже подумаю.
Только вот я не понял, конструктор Server берет один аргумент 'port'? А ip
адрес кто сожрал? Ну ладно, для тех задач что я прямо сейчас делаю мне это
пофиг. А для тех что собираюсь, изоляции серверов побольше хотелось бы.
EP> Я встраивал Jetty, правда не прямо в свой Java-код, а в контекст
EP> Спринга. И наблюдаю интересную тенденцию: многие проекты уже используют
EP> Spring/XBean или Hivemind в качестве механизма конфигурирования
EP> отказываясь от изобретения собственных велосипедов. Меня, как
EP> пользователя Spring, это очень радует. Логика работы контекста и
EP> синтаксис его описания в Spring разделены, т.е. xml - только один из
EP> возможных способов его описания.
Это не может не радовать.
EP> Сейчас для одного совсем маленького web-проекта я использую DWR, там
EP> работа ведется не в терминах http-запросов, а скорее в терминах RPC. GUI
EP> на HTML (еще лучше здесь будет смотреться XUL), клиентская логика на
EP> JavaScript, серверная - Java (точнее контекст Spring со встроенными в
EP> него бинами Jetty, DWR, самого Spring и моими). Собственно DWR нужен,
EP> чтобы из JavaScript дергать Java-код (бины, размещенные в контексте
EP> Spring) и наоборот. Не факт, что тебе это подойдет, но посмотри.
%-)
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Конечно, можно сделать fork+pipe, но это уже совсем другая история.
-- ldv in devel@
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-24 12:02 ` Денис Смирнов
@ 2007-02-24 15:28 ` Eugene Prokopiev
2007-02-25 9:18 ` Денис Смирнов
0 siblings, 1 reply; 29+ messages in thread
From: Eugene Prokopiev @ 2007-02-24 15:28 UTC (permalink / raw)
To: культурный
офтопик
> EP> а в Java 6 есть такое -
> EP> http://java.sun.com/javase/6/docs/api/javax/tools/package-summary.html
> EP> хотя и раньше jasper (компилятор JSP в байт-код) и ant как-то
> EP> выкручивались, используя, как я понимаю, недокументированные классы из
> EP> tools.jar
>
> Как я понял речь не о генерировании байт-кода, а о вызове компилятора,
> если правильно понял описание.
да
> Только вот я не понял, конструктор Server берет один аргумент 'port'? А ip
> адрес кто сожрал? Ну ладно, для тех задач что я прямо сейчас делаю мне это
> пофиг. А для тех что собираюсь, изоляции серверов побольше хотелось бы.
Этот конструктор для самых ленивых, им лучше не пользоваться ;)
Лучше принудительно указывать требуемый коннектор, тогда и привязка к
адресу будет.
Еще лучше предварительно ознакомиться с
http://docs.codehaus.org/display/JETTY/Architecture
> EP> Сейчас для одного совсем маленького web-проекта я использую DWR, там
> EP> работа ведется не в терминах http-запросов, а скорее в терминах RPC. GUI
> EP> на HTML (еще лучше здесь будет смотреться XUL), клиентская логика на
> EP> JavaScript, серверная - Java (точнее контекст Spring со встроенными в
> EP> него бинами Jetty, DWR, самого Spring и моими). Собственно DWR нужен,
> EP> чтобы из JavaScript дергать Java-код (бины, размещенные в контексте
> EP> Spring) и наоборот. Не факт, что тебе это подойдет, но посмотри.
>
> %-)
Не годится? ;)
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-24 15:28 ` Eugene Prokopiev
@ 2007-02-25 9:18 ` Денис Смирнов
2007-02-25 21:55 ` Eugene Prokopiev
0 siblings, 1 reply; 29+ messages in thread
From: Денис Смирнов @ 2007-02-25 9:18 UTC (permalink / raw)
To: культурный
офтопик
On Sat, Feb 24, 2007 at 06:28:58PM +0300, Eugene Prokopiev wrote:
EP> Этот конструктор для самых ленивых, им лучше не пользоваться ;)
Понял :)
EP> Лучше принудительно указывать требуемый коннектор, тогда и привязка к
EP> адресу будет.
EP> Еще лучше предварительно ознакомиться с
EP> http://docs.codehaus.org/display/JETTY/Architecture
35 /** Blocking NIO connector.
36 * This connector uses efficient NIO buffers with a traditional blocking thread model.
37 * Direct NIO buffers are used and a thread is allocated per connections.
38 *
39 * This connector is best used when there are a few very active connections.
Гм, конкурент nginx говоришь? ;) С точностью до наоборот -- это как раз
то, что лучше всего себя чувствует когда стоит backend'ом для nginx, в
этом случае разгоняется. А если на эту штуковину напустить несколько тысяч
активных юзверей, и машинка будет не pSeries, или санки какие, то сдохнем
сразу.
> EP>> Сейчас для одного совсем маленького web-проекта я использую DWR, там
> EP>> работа ведется не в терминах http-запросов, а скорее в терминах RPC. GUI
> EP>> на HTML (еще лучше здесь будет смотреться XUL), клиентская логика на
> EP>> JavaScript, серверная - Java (точнее контекст Spring со встроенными в
> EP>> него бинами Jetty, DWR, самого Spring и моими). Собственно DWR нужен,
> EP>> чтобы из JavaScript дергать Java-код (бины, размещенные в контексте
> EP>> Spring) и наоборот. Не факт, что тебе это подойдет, но посмотри.
>> %-)
EP> Не годится? ;)
Много слоев. Сходу не въехать, а при том я бы хотел оставить портируемость
большей части своего кода между языками. Да, я знаю что я псих.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
Официальной позиции OOO ALT Linux в этом списке рассылки нет и не будет.
-- ldv in sisyphus@
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-25 9:18 ` Денис Смирнов
@ 2007-02-25 21:55 ` Eugene Prokopiev
2007-02-25 22:16 ` Денис Смирнов
0 siblings, 1 reply; 29+ messages in thread
From: Eugene Prokopiev @ 2007-02-25 21:55 UTC (permalink / raw)
To: культурный
офтопик
Денис Смирнов пишет:
> On Sat, Feb 24, 2007 at 06:28:58PM +0300, Eugene Prokopiev wrote:
>
> EP> Этот конструктор для самых ленивых, им лучше не пользоваться ;)
>
> Понял :)
>
> EP> Лучше принудительно указывать требуемый коннектор, тогда и привязка к
> EP> адресу будет.
> EP> Еще лучше предварительно ознакомиться с
> EP> http://docs.codehaus.org/display/JETTY/Architecture
>
> 35 /** Blocking NIO connector.
> 36 * This connector uses efficient NIO buffers with a traditional blocking thread model.
> 37 * Direct NIO buffers are used and a thread is allocated per connections.
> 38 *
> 39 * This connector is best used when there are a few very active connections.
>
> Гм, конкурент nginx говоришь? ;) С точностью до наоборот -- это как раз
> то, что лучше всего себя чувствует когда стоит backend'ом для nginx, в
> этом случае разгоняется. А если на эту штуковину напустить несколько тысяч
> активных юзверей, и машинка будет не pSeries, или санки какие, то сдохнем
> сразу.
Я не про BlockingChannelConnector вообще-то, а например, про
SelectChannelConnector ;)
Можно прочесть еще вот это -
http://www.webtide.com/downloads/whitePaperAjaxJetty.html
NIO позволяет обслужить меньшим количеством потоков больше запросов.
Т.е. пытается обыграть Erlang на его поле ;) . Да, подход Erlang с
практически неограниченным количеством легких потоков изящнее, но NIO,
похоже, в большинстве случаев работает не хуже.
>>EP>> Сейчас для одного совсем маленького web-проекта я использую DWR, там
>>EP>> работа ведется не в терминах http-запросов, а скорее в терминах RPC. GUI
>>EP>> на HTML (еще лучше здесь будет смотреться XUL), клиентская логика на
>>EP>> JavaScript, серверная - Java (точнее контекст Spring со встроенными в
>>EP>> него бинами Jetty, DWR, самого Spring и моими). Собственно DWR нужен,
>>EP>> чтобы из JavaScript дергать Java-код (бины, размещенные в контексте
>>EP>> Spring) и наоборот. Не факт, что тебе это подойдет, но посмотри.
>>
>>>%-)
>
> EP> Не годится? ;)
>
> Много слоев.
2 - это немного (если не считать переходники JS<->Java, JSON<->JavaBeans
и JavaBeans<->БД, но они взяты готовыми). Я с трудом представляю себе
задачу, в которой не требовалось бы разделять UI и основную логику
работы (разве что последняя отсутствует - например, простая форма для
ввода данных в БД)
> Сходу не въехать, а при том я бы хотел оставить портируемость
> большей части своего кода между языками. Да, я знаю что я псих.
Т.е. свой DSL и его интерпретатор/компилятор на java/php/... ?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-25 21:55 ` Eugene Prokopiev
@ 2007-02-25 22:16 ` Денис Смирнов
0 siblings, 0 replies; 29+ messages in thread
From: Денис Смирнов @ 2007-02-25 22:16 UTC (permalink / raw)
To: культурный
офтопик
On Mon, Feb 26, 2007 at 12:55:05AM +0300, Eugene Prokopiev wrote:
EP> Я не про BlockingChannelConnector вообще-то, а например, про
EP> SelectChannelConnector ;)
А, я его по той ссылочке не нашел.
EP> Можно прочесть еще вот это -
EP> http://www.webtide.com/downloads/whitePaperAjaxJetty.html
EP> NIO позволяет обслужить меньшим количеством потоков больше запросов.
Угу, теперь понял.
EP> Т.е. пытается обыграть Erlang на его поле ;) . Да, подход Erlang с
EP> практически неограниченным количеством легких потоков изящнее, но NIO,
EP> похоже, в большинстве случаев работает не хуже.
У Erlang преимущество другое -- распределнность возведенная в абсолют. А
по производительности пытаться обогнать nginx дело неблагодарное, лучше
его использовать как фронтенд. Ну или быть полным психом, и встраивать его
код в свой :)
Мне больше нравится первое.
>>EP>>> Сейчас для одного совсем маленького web-проекта я использую DWR, там
>>EP>>> работа ведется не в терминах http-запросов, а скорее в терминах RPC. GUI
>>EP>>> на HTML (еще лучше здесь будет смотреться XUL), клиентская логика на
>>EP>>> JavaScript, серверная - Java (точнее контекст Spring со встроенными в
>>EP>>> него бинами Jetty, DWR, самого Spring и моими). Собственно DWR нужен,
>>EP>>> чтобы из JavaScript дергать Java-код (бины, размещенные в контексте
>>EP>>> Spring) и наоборот. Не факт, что тебе это подойдет, но посмотри.
>>>>%-)
> EP>> Не годится? ;)
>> Много слоев.
EP> 2 - это немного (если не считать переходники JS<->Java, JSON<->JavaBeans
EP> и JavaBeans<->БД, но они взяты готовыми). Я с трудом представляю себе
EP> задачу, в которой не требовалось бы разделять UI и основную логику
EP> работы (разве что последняя отсутствует - например, простая форма для
EP> ввода данных в БД)
Логично.
>> Сходу не въехать, а при том я бы хотел оставить портируемость
>> большей части своего кода между языками. Да, я знаю что я псих.
EP> Т.е. свой DSL и его интерпретатор/компилятор на java/php/... ?
Ага, компилятор. Как я посмотрел в реальном приложении типа "простой
документооборот для малого бизнеса", например, объем логики хоть и
большой, но она вся тривиальная. И если писать такое на каком-нибудь PHP,
то проверка параметров, и простейшая работа с БД будут занимать большую
часть кода. На конструкции где полсотни строк кода валидации параметров, а
потом строк пять реального кода я уже даже смотрю спокойно.
Да, есть небольшие куски специфичного кода, но они занимают меньшую часть
кода. И как раз эти куски разумнее портировать вручную, думая что делаешь.
Хотя можно и для них свой DSL сделать, но столько я не выпью. Ибо для меня
написание даже самого простого компилятора это дни работы.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
God is Real, unless declared as Integer.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [room] Вопрос по PHP (или I Hate PHP)
2007-02-18 14:22 ` Eugene Prokopiev
2007-02-19 6:40 ` Eugene Prokopiev
@ 2007-02-19 11:02 ` Денис Смирнов
1 sibling, 0 replies; 29+ messages in thread
From: Денис Смирнов @ 2007-02-19 11:02 UTC (permalink / raw)
To: культурный
офтопик
On Sun, Feb 18, 2007 at 05:22:30PM +0300, Eugene Prokopiev wrote:
>> - Java как язык мне очень нравится для построения платформы;
>> - Java категорически не нравится собственно для написания web-приложения.
>> В общем-то это пофиг, потому как я не ленивый, и сделать некий простой
>> скриптовый язык из которого генерировать код на жабе я смогу. А где
>> нужна хоть чуть-чуть нетривиальная логика не выпендриваться, а писать
>> на жабе;
>> - Генерировать самому код для JVM -- гм, а что, есть для этого
>> более-менее удобные средства (типа тех что есть в .NET)? Да ещё и
>> более-менее эффективные (умеющие задействовать при необходимости фишки
>> как сановской, так и IBM'овской реализации)?
EP> http://java-source.net/open-source/bytecode-libraries
Понял, буду смотреть и думать.
>> - То, что считается общепринятым методом разработки web-приложений на
>> Java мне не нравится ну совсем. JVM поднимается не шустроб поэтому
>> использовать как CGI нельзя. Остается FastCGI или встраивать в свое
>> приложение http-сервер. Я псих, и могу пойти даже на второе, хотя
>> предпочел бы FastCGI. Как я понимаю писать мне его поддержку придется
>> самостоятельно.
EP> http://docs.codehaus.org/display/JETTY/Embedding+Jetty
А вот это интересно.
EP> Я не пойму, чего ты так цепляешься за FastCGI. Чем это принципиально
EP> отличается от HttpServlet.do*? Сделай поверх сервлетов любое API,
EP> которое тебе будет удобно, в FastCGI ты же ведь тоже наверное не в
EP> терминах ввода/вывода символов работаешь ...
Собственно мне все равно http или fastcgi. Fastcgi хорошо разве что тем,
что тот же nginx может к нему по unix sockets цепляться. Это удобно. А
внутреннее API это уже вопрос другой, разумеется оно должно быть
высокоуровневое, но об этом я даже и не говорю -- подразумевается что уж с
чем-чем, а с этим проблем нет (а если оно мне не понравится обертку с
более удобным для меня видом я быстром напишу).
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
<Voins> wow, gvy уже и в bugtraq засветился :)) никогда его там раньше
не видел :)
^ permalink raw reply [flat|nested] 29+ messages in thread