Культурный офтопик
 help / color / mirror / Atom feed
From: Eugene Prokopiev <prokopiev@stc.donpac.ru>
To: "культурный офтопик" <smoke-room@lists.altlinux.org>
Subject: Re: [room] Вопрос по PHP (или I Hate PHP)
Date: Mon, 19 Feb 2007 09:40:42 +0300
Message-ID: <45D9466A.1030709@stc.donpac.ru> (raw)
In-Reply-To: <45D86126.10006@stc.donpac.ru>

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) и наоборот. Не факт, что тебе это подойдет, но посмотри.

-- 
С уважением, Прокопьев Евгений



  reply	other threads:[~2007-02-19  6:40 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-11  1:16 Денис Смирнов
2007-02-11  5:40 ` Anatol B. Bazyukin
2007-02-11 20:43   ` Денис Смирнов
2007-02-12  6:00     ` Eugene Prokopiev
2007-02-13 10:02       ` Денис Смирнов
2007-02-13 12:21         ` Damir Shayhutdinov
2007-02-13 16:16           ` Денис Смирнов
2007-02-13 16:37             ` Damir Shayhutdinov
2007-02-14 19:07               ` Денис Смирнов
2007-02-14 15:15                 ` Michael Shigorin
2007-02-15 10:45                   ` Денис Смирнов
2007-02-13 18:29         ` Andrey Rahmatullin
2007-02-14 19:03           ` Денис Смирнов
2007-02-14 14:59             ` Andrey Rahmatullin
2007-02-15 10:26               ` Денис Смирнов
2007-02-15 16:02                 ` Andrey Rahmatullin
2007-02-17 11:55                   ` Денис Смирнов
2007-02-14 15:11         ` Michael Shigorin
2007-02-15 10:45           ` Денис Смирнов
2007-02-17 17:22         ` Alexander Borovsky
2007-02-24 11:51           ` Денис Смирнов
2007-02-18 14:22         ` Eugene Prokopiev
2007-02-19  6:40           ` Eugene Prokopiev [this message]
2007-02-24 12:02             ` Денис Смирнов
2007-02-24 15:28               ` Eugene Prokopiev
2007-02-25  9:18                 ` Денис Смирнов
2007-02-25 21:55                   ` Eugene Prokopiev
2007-02-25 22:16                     ` Денис Смирнов
2007-02-19 11:02           ` Денис Смирнов

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45D9466A.1030709@stc.donpac.ru \
    --to=prokopiev@stc.donpac.ru \
    --cc=smoke-room@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Культурный офтопик

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/smoke-room/0 smoke-room/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 smoke-room smoke-room/ http://lore.altlinux.org/smoke-room \
		smoke-room@lists.altlinux.org smoke-room@lists.altlinux.ru smoke-room@lists.altlinux.com smoke-room@altlinux.ru smoke-room@altlinux.org smoke-room@altlinux.com
	public-inbox-index smoke-room

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.smoke-room


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git