2 CybOrc (*) (2002-01-25 11:14:58.0)
> а про 3D на Java что-нибудь конкретное можно увидеть? И есть ли к
> этому какие-нибудь нативные библиотеки, использующие аппаратные
> возможности?
Поищи на java.sun.com или developer.java.sun.com по слову 'java3D'.
Кажется реализовано как интерфейсы поверх native библиотек.
> Так в ихнем чате постоянно тормозухи и глюки. А потом через время
>смотришь и ссылках уже мелькают перловые модули к чему бы это.
Если хотите, можно поспорить о том что правильно написанный Java чат по определению будет всегда быстрее самого правильного скриптового чата. Но по моему это и так очевидно :)
>Ну и что доказывает ваш пример? А было бы это написано например на >Perl - держало бы и 1000 человек, я больше про это говорю. То что >написать можно все на JAVA и что оно будет работать я не сомневаюсь. >Странник
Для понимания о чем вообще идет речь предлагаю сходить сюда http://www.pogo.com, кстати обратите внимание на кол-во человек в online. Речь идет о действительно больших проектах, где задействованы десятки,сотни человек и где нужны более серьезные технологии чем "собранные на коленке" perl и php, которые IMHO несовместимы с понятиями Сопровождение, Развите и т.д.
Кстати linux.org.ru раньше работал на php движке, теперь jsp...интересно правда?
Для сомневающихся в возможностях Java 3D графики пожалуста сюда
http://javagaming.org, там на главной странице весьма впечатляющие скриншоты. А тут http://javagaming.org/Documents/documents.html лежит статейка об аппаратном ускорении графики в JDK1.4
"...Java 2DTM provides access to hardware-accelerated offscreen images, which take full advantage of the graphics acceleration capabilities of each JavaTM platform. The new VolatileImage class allows you to create and manage a hardware-accelerated offscreen image."
Cyberian, перловые продукты сопровождаются не хуже Java, если их писать разумно. :) Перл развивается уже очень долго... Нужно ли приводить примеры сайтов крупнее, чем LOR, работающих на Перле? :)
А вот JSP у меня как раз мало ассоциируется с "сопровождением" и "развитием", ибо, по-моему, код, перемешанный с html --- это неправильно. В идеале в коде вообще не должно быть текста, который выводится в браузере (и наоборот). Но для этого нужен хороший язык шаблонов. Тогда верстка и создание кода могут идти более или менее независимо, что для крупных сайтов немаловажно.
Кстати, я тот тестик для Java из нынешнего
голосования попробовал на IBMJava и на той,
которая в топике... Может, я что-то не так делал,
но 1.4.0 выполнила этот тестик почти вчетверо медленнее.
Еще раз:
class test
{
public static void main(String argv[])
{
int i, j;
int a;
long time = System.currentTimeMillis();
for (j = 0; j < 10; j++)
{
for (i = 0; i < 1000000000; i++)
{
a = i + j * 23;
}
}
time = System.currentTimeMillis() - time;
System.out.println(time);
}
}
В отношении JSP - присоединяюсь, каша получается та еще.
В отношении Перла - отмежевываюсь - совершенно нечитаемый язык. Для кода длиннее пары тысяч строк совершенно не годится. Как-то раз написал многопоточный сервер "чего-то" на Перле, для прикидки. Мама дорогая! Это же страх божий. При том, что я старался структурировать код, комментировать, форматировать и вообще - тетешкал.
>Cyberian, перловые продукты сопровождаются не хуже Java, если их >писать разумно. :) Перл развивается уже очень долго... Нужно ли >приводить примеры сайтов крупнее, чем LOR, работающих на Перле? :)
Мне кажется сейчас несколько другие тенденции которые предусматривают
использовние именно ТЕХНОЛОГИЙ. Время кудесников-одиночек мне кажется проходит :)
>А вот JSP у меня как раз мало ассоциируется с "сопровождением" и >"развитием", ибо, по-моему, код, перемешанный с html --- это >неправильно. В идеале в коде вообще не должно быть текста, который >выводится в браузере (и наоборот).
К счастью вы не правы - посмотрите хотя бы page source этого форума и скажите где вы видите код перемешанный с html? :)
следовательно tip: читаем про сервлеты, XML/XSLT и т.д :)
>Cyberian, перловые продукты сопровождаются не хуже Java, если их >писать разумно. :) Перл развивается уже очень долго... Нужно ли >приводить примеры сайтов крупнее, чем LOR, работающих на Перле? :)
Мне кажется сейчас несколько другие тенденции которые предусматривают
использовние именно ТЕХНОЛОГИЙ. Время кудесников-одиночек мне кажется проходит :)
>А вот JSP у меня как раз мало ассоциируется с "сопровождением" и >"развитием", ибо, по-моему, код, перемешанный с html --- это >неправильно. В идеале в коде вообще не должно быть текста, который >выводится в браузере (и наоборот).
К счастью вы не правы - посмотрите хотя бы page source этого форума и скажите где вы видите код перемешанный с html? :)
следовательно tip: читаем про сервлеты, XML/XSLT и т.д :)
На перле можно писать модульные вещи, если смущают здоровые тексты. Впрочем, как правило, на нем и не нужно писать приложения о многих тысячах строк, как правило проблемы решаются проще. :) Нечитабелен он только с непривычки, и то, как правило, это касается регекспов. Не секрет, что софтину на C (C++) или той же Jave можно написать так, чтобы она стала трудночитабельной. То же самое и с перлом. У меня, как правило, не возникает проблем с чтением разумно написанного кода на нем.
2 Cyberian: Как в коде страницы я могу увидеть те куски Java, которые есть на сервере? :) По-моему, мы говорим о разном. :) Та каша кода и html, о которой я говорю, браузеру никогда не передается. Так же, как браузеру не передается, скажем, SSI :)
И где я отрицал необходимость _технологичного_ создания сайтов? Каша кода и html'я мне, например, технологичной не кажется. А эту "технологию" проталкивает asp, jsp, php. В качестве примера для последнего можно глянуть код известной софтины phpMyAdmin (phpPgAdmin).
2 NikS: У меня Celeron-466 дал 46 секунд на IBM-Java-1.3. Чей компилятор версии 1.3.1 использовался? Я сравнивал Sun Java и IBM Java.
Зато код читабельный получается, да и разница по сравнением с перлом
не очень отличается. Сейчас они равноценные по быстродействию
Все зависит отквалификации программера.
2 Бес: Питон сейчас поддерживает практически любой веб-сервер. Apache, Zope, IIS... Более того, Питон компилируется в байт-код Java (правда, при некоторых ограничениях, накладываемых на использование библиотек).
2 СтранниК: Предлагаю провести простой тест: пустой цикл, скажем, на 50 миллионов итерацияй на Перле и на Питона. Там будет видно, какая между ними разница.
2Полуденный Бес
>>>>>>>>>>>>>>>>>>>> >>
Нет, Питон - это не замена Перлу, а тем более яве. Сколько web(application) серверов поддерживают Питон?
>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
Сейчас Питон уже вполне он юзабелен.
Конечно модулей у него меньше чем у Перла.
Про Яву скажу так.
Много серверов приложений пишется - это как дань моде. Но вопрос в другом много ли используется?
Касательно Питона:
3 штуки знаю точно.
Сейчас просто не могу найти с ходу ссылки.
пару работает в паре с апачем, причем поддерживает сервлеты на питоне
( Webware называется )
с похожим интерфейсом как у Явы.
модуль питона прикручиватся к AOLserver,который сам является сервером приложений.
На самом деле я свою точку зрения не навязываю никому.
Скажу так.
Мне по-большому фиолетово сколько серверов и как применяется, просто мне кажется решение на Python мне будет обходится
дешевле и с точки зрения ресурсов как для написания,так и для сопровождения. А то что весь мир сходи с ума - это личное дело каждого.
Что у меня горомадные проекты каждый день? Нет.
Для того чтобы распарсить файлик я что на яве писать должен - Опять Нет.
Недавно нашел ссылку про возможность построения e-commerce сайтов на перле:
http://dapi.chaz.ru/articles/etoy.xml
( 4 сай по загруженности в мире среди e-commerce сайтов)
Это доказывает что альтернативные решения существуют и работают нормально. Только и всего.
Давно известно, что самая живучая технология - не обязательно самая лучшая(пример - Windows). А если говорить о средстве разработки, то чем больше сторонних производителей его поддерживают - тем лучше, со всех сторон, и коммерческих, и программерских.
Так я же не говорю, что на яве надо писать всегда и везде? И что Перл надо давить? Каждому овощу свой фрукт. Если быстро нужна небольшая утилита для внутреннего применения, то Перл - очень даже годная вещь. Сам писал одно время со всем плезиром. К нему, правда, надо пакет конопли прикладывать. Для бодрости духа.
Я разве говорил, что Java для веба --- это только JSP? Я просто дал доводы против этой технологии. Понятно, что приготовить яичницу можно разными способами.
А XML/XSL действительно самое милое дело... Вот только тяжеленькое оно. Да и верстальщики есть разного уровня интеллекта. Темплейты Zope, пожалуй, пошустрее будут и попроще. А использовать их можно, не поднимая Zope.
2CybOrc
>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>
2 СтранниК: Предлагаю провести простой тест: пустой цикл, скажем, на 50 миллионов итерацияй на Перле и на Питона. Там будет видно, какая между ними разница.
>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
Вот пожалуйте тест:
time ./t1.py
real 0m57.769s
user 0m57.850s
sys 0m0.020s
time ./t1.pl
real 0m59.505s
user 0m59.570s
sys 0m0.000s
===================== сat t1.py ===========================
Во!
В директиве use ... требуется явное объявление переменных. С $i вроде бы все понятно, но почему $a проходит? "Вот за это я и не люблю кошек". Или я "просто не умею их готовить"?
О! Таки они победили сырость в 2.1 :) Это плюс :) Спасибо за инфу :) Кстати, а если не xrange'м сделать, а циклом с инкрементом? 1.5 дает в этом случае результат похуже.
Бес, с пакетом конопли ты не только Перл понимать разучишься, но и родную речь. :)
Перл тут не при чем. Просто в Питоне до версии 2.0 включительно были сложности с арифметикой --- она работала раза в два медленнее, чем под Перлом. Причем эта особенность очень странна, ибо в Питоне существует типизация (правда, переменная может менять свой тип). В Перле же типизации как таковой нет (по крайней мере, программист ее не видит).
Аналогично я сейчас не понимаю разницы у Java-машины (или компилятора) IBM и Sun. Как выше было показано, отношение быстродействий на простеньком приложении составило 4 (300%).
Кстати, видимо, Microsoft J++ тоже слабовата по сравнению с IBM-Java... Правда, это приложеньице (ц) на J++ гонял уже не я.
2 Полуденный Бес
> И как новая JVM от IBM задушит .NET? Если IBM по Windows JVM не
> выпускает? А .NET портанут под Линукс и ФРЮ?
Видимо давно ты на их сайте (IBM) не был. ;)
E:\local\devel\ibm-jdk\bin>java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Classic VM (build 1.3.0, J2RE 1.3.0 IBM build cn130-20010609 (JIT enabled: jitc))
Сейчас уже они раздают билд cn130-20010925
2 CybOrc (*) (2002-01-25 18:04:55.0)
> Аналогично я сейчас не понимаю разницы у Java-машины (или
> компилятора) IBM и Sun. Как выше было показано, отношение
> быстродействий на простеньком приложении составило 4 (300%).
В sun jdk 1.4.0 beta3 очень хорошо прооптимизировали работу с java.lang.reflect. А на прямом вызове методов ibm jdk и ms jview впереди планеты всей. :)
Да и не надо забывать, что sun jdk по умолчанию использует Hotspot ClientVM.
> Кстати, видимо, Microsoft J++ тоже слабовата по сравнению с IBM-
> Java... Правда, это приложеньице (ц) на J++ гонял уже не я.
Скорее это на volano.com.
2СтранниК
>Насчет ошибки я сам удивился ( $a=0; ) Наверно что-то намутили в новом >перле не знаю. Может кто объяснит?Я с версией 5.6 не работал.
LOL! Вот этот пост и есть подтверждение того о чем я говорил! перлом недовольны, перл переписывают, java стабильно развивается без резких скачков не теряя полной совместимости с предыдущими версиями не говоря уже об изменении синтаксиса языка! И все потому что Sun на этом зарабатывает деньги и не может себе позволить такие фокусы! Перлом рулят бодрые хакеры покуривающие коноплю и которые пишут в своих лицензиях "WITHOUT ANY WARRANTY" :)
This is perl, v5.6.1 built for i386-linux
use strict;
for(my $i=0; $i<=50; $i++) { $a=0; } exit
====
И работает ($a). Блин. Что-то мне он разонравился. А еще на сервере проблемы с ним - переменные одного CGI пожно перехватить из другого CGI которые не как не связанные между собой (правда здесь mod_perl воду мутит).
С другой стороны:
TCL
for {set i 0} {$i <= 5000000} {incr i} {
set a 0
}
Результаты:
TCL:
real 0m49.421s
user 0m49.230s
sys 0m0.000s
Perl:
real 0m7.636s
user 0m7.600s
sys 0m0.000s
==================================
С другой стороны TCL более гибкий язык чем Perl. Хотя, конечно, обидно.
Я доволен Перлом. Приведенный пример --- действительно несуразность. Надо бы ее в багрепорт... С количеством клиентов, с которым работает ЛОР, Перл справится без труда. Тут Java --- это вопрос предпочтения разработчика, не более. По поводу совместимости Java... Да, совместима... А как насчет устаревших методов из стандартных библиотек Java в Java 2?
Корвину: По поводу перехвата значений переменных. Можно угадать? Переменная глобальная?
Вот что меня всегда удивляло - это крики XXX - suxx, при недостаточном знании этого самого XXX.
Про $a, $b уже объяснили...
Про use strict; - без use warnings; нельзя утверждать, что у вас с кодом все нормально...
strict ловит только ошибки компиляции, а мелочи, вроде не проинициализированных переменных поймать можно только при исполнении кода...
В CGI надо бы не забыть добавить -T в вызов интерпритатора.. Вот тогда можно быть хоть в чем-то уверенным...
Теперь по поводу тестов - я не знаток Python, поэтому не скажу, насколько данная конструкция оптимальна, но для Perl'a правильнее будет такой скрипт:
my $c; foreach my $i (1..50000000) { $c=0; } exit;
Результат выполнения на моем слабосильном PII-400:
Нужно :) Ибо иначе получается нечестное сравнение - xrange vs. for loop.
Я думаю, python позволяет представить прямой аналог for(;;) цикла? А (1..50_000_000) - как раз и будет range operator(как и xrange).
Но в любом случае, странно, что полученные рез-ты так различаются - у меня в любом случае Perl выигрывает почти вдвое, по сравнению с Python. А у Вас - наоборот, Perl в пролете, хоть и ненамного... Можно конечно, списать на различие в OS - у меня FreeBSD, а у Вас, очевидно, Linux, но вряд ли - данный пример с системой-то и не работает...
В общем, Perl со счетов списывать еще рано :) И если кому-то Perl кажется неподходяшим для больших проектов - рекомендую просто его получше изучить!
Я хотел именно сравнение пары щиклов, где работает арифметика языка. Так что xrange тут не подходит в обоих случаях, ибо, похоже, что оптимизация с ним производится таки по-разному. У меня получалось соотношение даже 70:15 для питона против перла в случае пустых циклов. :) Питона жалко. Дюже язык пригожий :) А Перл никто и не списывает, собственно. Разве что теоретики. Но кто их слушает? :)
Как-то один знакомый range вместо xrange вписал. Что характерно, заработала. Правда, сервер разработки встал в известную позу. :)
2CybOrc
> Корвину: По поводу перехвата значений переменных. Можно угадать?
> Переменная глобальная?
Используется use strict и my тоже.
Беда в том, что mod_perl для pm делает общую память. И если несколько CGI используют ее и одна решила изменить переменную (напрямую или через OO-вызов - не важно), то эти изменения видят и другие CGI. Это херово.
Не важно, что используется use strict и my. В мане есть предупреждение об аккуратности в использовании глобальных переменных в mod_perl. Более того, это не баг, это фича. Может быть использована для персистентных объектов.
Подтверждаю - фича :) Если же кого-то все еще тянет использовать глобальные переменные - то в mod_perl достаточно вставить программу в объемлющий блок {} чтобы вывести переменный из глобальной области видимости...
мда...а как насчет запросов вида? victim.com/cgi/forum.pl?read=../../../../etc/passwd
и не надо говорить что все уже научились писать правильные скрипты!
А, если автогеном через зад себе гланды удалять, можно язву нажить.
Этот фокус с read можно повторить в любом cgi-приложении вне зависимости от языка при наличии у программера рук должной кривизны. Причем код будет аналогичным. Впрочем, криворучка в мало-мальски крупной конторе долго не продержится. Я как-то на чьем-то анонимном ftp нашел инишку от mc, где был прописан логин и пароль другой комп... Но это ведь не ftpd был виноват, правда? :)
см. javagaming.org - 3D гоночки на Java. :)
ИМХО: JDK1.4 RULEZZZ! :)
Sun говорит, что в новом JDK производительность увеличина в 2 раза.
(лично я не проверял, еще не успел скачать).