LINUX.ORG.RU

Доверьтесь виртуальной машине


0

0

Таков смысл одного из разделов интервью с популяризатором технологий Sun Брайаном Гетцом. В нем он поясняет этот тезис. "Разработчики очень любят оптимизировать код, и не зря. Это весело и увлекательно. Но гораздо важнее знать, когда стоит заниматься оптимизацией, а когда – нет. К сожалению, в основном разработчикам редко помогает интуиция в выборе участков приложения, требующих ускорения выполнения.

...Код на Java вполне может выполняться быстрее кода на C. ... Ирония в том, что C-программисты гордятся своей возможностью управлять указателями на самом низком уровне, и считают это своим самым мощным инструментом, и эта же самая возможность мешает C-компиляторам производить наиболее эффективно оптимизированный код. Отнимая эту возможность у программиста, вы предоставляете море возможностей для оптимизации компилятору, и будьте уверены, Java-компилятор знает об оптимизации больше, чем 99,99% обычных программистов.

Поскольку программисты уже 45 лет занимаются созданием сборщиков мусора, сегодняшние сборщики мусора гораздо более изощренные, чем принято думать

...Если бы я мог послать волшебной палочкой сообщение всем разработчикам на Java, я бы сказал им: доверьтесь виртуальной машине. Она умнее, чем вы думаете. Перестаньте пытаться обставить и обогнать ее. Пишите в коде то, что вы хотите, чтобы она сделала и она сделает все возможное и даже чуть больше чтобы то, что вы задумали, выполнилось наиболее быстро."

>>> Подробности

anonymous

Проверено: Pi ()
Ответ на: комментарий от anonymous

> Клепать простые и понятные интерфейсы - дело вовсе не программистов, а дизайнеров и психологов. Дело программистов как раз думать о том, как "выиграть 10% времени выполнения оптимизирую поиск".

Ага и много психологов работает в open source ;). Тут всем занимается разработчик. Кроме того, он же должен и проектировать какие функции добавить в приложение и т. д.

tkpai
()
Ответ на: комментарий от anonymous

А ведь в J2ME указателей тоже нет ;). Да и работа с массивами/векторами и hashatble реализована так же, как и в большой Java. И ничего, всё работает вполне на уровне.

tkpai
()
Ответ на: комментарий от anonymous

>P.S.Все жабоподелки тормозные и кривые, постоянно повисают, вылетают, жрут немерено ресурсов

Почему Azureus не подпадает под эти ужасы? :D

KRoN73 ★★★★★
()
Ответ на: комментарий от Pi

NullPointerException не имеет проблем с безопасностью. Эксплоиты и т. д. на нём не напишешь.

tkpai
()
Ответ на: комментарий от KRoN73

Нативный GUI через SWT :). Правда я слышал, что SWT из-за JNI тоже может тормозит по хлеще Swing.

tkpai
()
Ответ на: комментарий от Pi

> надо только 4Г рамов

надо только уметь пользоваться сборщиком навоза. Если единовременно наплодить без всякой надобности сто бесполезных объектов, понадеявшись на то, что их когда-нибудь соберут, как это принято в среде быдлокодеров, результат будет нисколько не лучше, чем если бы память освобождалась вручную.

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

> Ага а еще если везде все текстовые данные хранить только в utf-8 и нигде и никогда не пытаться ручками обрабатывать пути (\ - в винде, / -сами знаете где и :: -в маках)

Для этого есть специальные костыли :)

> Ах да ,чуть не забыл - j2me -это фактически другая платформа ,практически не совместимая с обычной джавой

Мы сейчас говорим про j2se. Мобильные устройства - другая тема.

eveel ★★
()

Я здесь новичок, но не удержусь и выскажу свое мнение. Таинственный anonymous, на мой взгляд, явился разжигателем межязыковой розни, сам того не подозревая. Как правильно уже было замечено "каждой задаче - свой инструмент", язык то есть. Не стану говорить, что какой то из языков лишен недостатков или имеет больше достоинств, т.к. совершенного нет ничего.

P.S. Странно, но мне кажется, что публиковать новости, "расхваливающие" что либо не стоит по соображениям безопасности.

mike____
()
Ответ на: комментарий от mike____

Это же традиция ЛОРа :) Без анонимуса разжигающего розни никто бы не посещал ЛОР :) Анонимус - это душа ЛОРа :)

tkpai
()
Ответ на: комментарий от KRoN73

>Почему Azureus не подпадает под эти ужасы?

Попадает. Ещё как попадает. Процессор в несколько раз больше чем кторрент грузит. Оперативы жрёт 100мб.

anonymous
()
Ответ на: комментарий от tkpai

>Это же традиция ЛОРа :) Без анонимуса разжигающего розни никто бы не посещал ЛОР :) Анонимус - это душа ЛОРа :)

Скорее всего он сейчас не принимает никакого участия в беседе, а лишь злорадно наблюдает за событиями :) Будь я злобнем, я бы так сделал :)

mike____
()

> ...Если бы я мог послать волшебной палочкой сообщение всем разработчикам на Java, я бы сказал им: доверьтесь виртуальной машине. Она умнее, чем вы думаете. Перестаньте пытаться обставить и обогнать ее. Пишите в коде то, что вы хотите, чтобы она сделала и она сделает все возможное и даже чуть больше чтобы то, что вы задумали, выполнилось наиболее быстро."

Он, кстати, во всём прав. Тут спорить просто не о чем. Если выбрана модель "умная виртуальная машина", но кодеру лучше не умствовать, потому что сама машина оптимизируется разработчиками в расчёте на дятлокодера. Именно поэтому проги, сделанные дятлами, могут работать быстрее, чем хитро заоптимизированные.

Вывод отсюда только один. Если ты - быдло, для тебя есть жаба. Если ты хочешь извращаться - тебе в C. Основная масса проблем объясняется тем, что это правило игнорируется. Поэтому я прошу дятлов - не лезьте в C, сидите в своей жабе. Пожалуйста.

anonymous
()

Java - это не только ЯП, но и целая технология. А вообще каждому языку своя ниша.

Bohtvaroh ★★★★
()
Ответ на: комментарий от mike____

>Как правильно уже было замечено "каждой задаче - свой инструмент", язык то есть.

Полностью согласен. Вон негры-папуасы строят "дома" из говна и глины( в прямом смысле) - быстро, дёшево, не требует навыков. Действительно, каждой задаче - свой инструмент.

anonymous
()
Ответ на: комментарий от Oceanborn

> Так давайте уточним: 1) В жабе дятлы 2) В С - извращенцы

> А где программисты?

На пыхпыхе кодят :D

Программист - это существо, способное кодить на любом языке в соответствии с его правилами и его назначением. Это не значит, что он может ПРЯМО СЕЙЧАС сесть и налабать прогу на любом языке. Это значит, что он по требованию может в сжатые сроки овладеть заданным языком и налабать. Но это - их слабое место: им нужно время и высокая оплата. Поэтому они вымирают. Остаются дятлы и извращенцы.

anonymous
()

Я так понимаю, что 90% ругающих тут джаву знают её только по GUI-приложениям :)

Deleted
()

Гм, а кто сяшную прогу может запустить в моем гнусмасе? Хотя, ващето, ява - это тока для мобилок. В остальные дыры ее пжалста не тыкать!

generatorglukoff ★★
()
Ответ на: комментарий от anonymous

anonymous> А скажите мне, на кой нужна ещё одна прослойка между программой и железкой?

Чтобы программа без перекомпиляции работала на любой платформе.

HappyCoder> А "написал один раз - запустил где угодно" действительно работает или прихрамывает?

На кривой реализации жабки конечно прихрамывает.

anonymous> Жабу нужно стороной обходить, как пользователю, так и программисту.

Вот только беда в том, что ничего другого, сопоставимого с жабой просто нет.

Только не надо показывать в сторону псевдомногоплатформенного дотнета с моно.

А Limbo ещё не тех масштабов.

anonymous> Главное, чтобы жабобыдлокодеры больше ничего не писали.

Чтобы дать дорогу проприетарному дотнету, убив свободную жабу? ;)

binr> Посмотрите на ядро ЛИнукса - оноже раздувается как мыльный пузырь.

Однако стоит тебе научиться пересобирать его - может этот бред нести перестанешь тогда.

iNode> А что, есть наглядндные подтверждения когда Java приложение действительно работает быстрее написаного на C?

Помнится была новость где-то о том, что Quake 2 был переписан на J2SE и не уступал по скорости версии на C++

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

>Процессор в несколько раз больше чем кторрент грузит.

Неправда, поровну.

>Оперативы жрёт 100мб.

Против 70 у ktorrent. 30Мб мне как-то пофиг. Учитывая функционал Азуреуса и то, что у меня гиг оперативы стоит уже больше двух лет. Я в месяц на еду кошке и пиво себе, наверное, трачу больше, чем этот гиг стоит.

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>Полностью согласен. Вон негры-папуасы строят "дома" из говна и глины( в прямом смысле) - быстро, дёшево, не требует навыков. Действительно, каждой задаче - свой инструмент.

Многоуважаемый и опять таки таинственный anonymous, сравнивать программирование и строительство не корректно. Если языки высокого уровня так хороши, то почему же живы еще языки низкого уровня? Возможно, что для таких задач "высокие" языки просто не подходят.

mike____
()
Ответ на: комментарий от Deleted

> Я так понимаю, что 90% ругающих тут джаву знают её только по GUI-приложениям :)

Так для целой массы серверных Java-решений, аналогичных C/C++ решений просто не существует :D

KRoN73 ★★★★★
()
Ответ на: комментарий от mike____

>сравнивать программирование и строительство не корректно.

Конечно. "Если бы строители строили здания также, как программисты пишут свои программы, то первый же залетевший дятел разрушил бы цивилизацию" (c) где-то середины 1980-х гг. :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>"Если бы строители строили здания также, как программисты пишут свои программы, то первый же залетевший дятел разрушил бы цивилизацию" (c)

Вот как раз это я и имею в виду!

mike____
()
Ответ на: комментарий от anonymous

>Тебе купить? Или мама денег даст? Слава Б-гу, времена когда "всем будет достаточно 640кб памяти" прошли.

Да, а потом подобные "программисты" пишут notepad, которому для работы надо всего-ничего 1 гиг памяти.

За фразы типа "сейчас память/процессор дешевые", надо увольнять без суда и следствия.

anonymous
()
Ответ на: комментарий от generatorglukoff

Меня всегда забавляла эта ситуация - в топиках про яву на ЛОРе начинают тролить анонимусы и вот такие генераторы (стандартные "яву фтопку!" и т.д.), при этом ява покорно обрабатывает их словесный понос )))

h8 ★★★
()
Ответ на: комментарий от Quasar

>Помнится была новость где-то о том, что Quake 2 был переписан на J2SE и не уступал по скорости версии на C++

ага -на атлоне с гигом рамы :) Про то что ку2 в оригинале бегала на p133 32m ram в той новости не написали само собой :)

anonymous
()
Ответ на: комментарий от anonymous

>Ага а еще если везде все текстовые данные хранить только в utf-8 и нигде и никогда не пытаться ручками обрабатывать пути (\ - в винде, / -сами знаете где и :: -в маках)

А с каких пор / в венде и тем более в маках не работает???

anonymous
()
Ответ на: комментарий от KRoN73

> Так для целой массы серверных Java-решений, аналогичных C/C++ решений просто не существует :D

Для флудящих здесь пионеров, очевидно, это не имеет значения, потому что они об этом ничего не знают; всё что они смогли - это запустить java-гуёвину и после этого обсирать всю технологию за тормознутость перерисовки виджетов и потребляемую память. Таких надо сразу в домну.

Bohtvaroh ★★★★
()
Ответ на: комментарий от Quasar

>Чтобы программа без перекомпиляции работала на любой платформе.

Это только на словах хорошо. А на деле, как только на Java начинают пытаться писать системно-зависимые вещи (например, биллинги для интернет-хостеров), вся кроссплатформенность летит ко всем чертям.

>Чтобы дать дорогу проприетарному дотнету, убив свободную жабу? ;)

Здрасссссссссте! Когда это Java стала _свободной_?

>Помнится была новость где-то о том, что Quake 2 был переписан на J2SE и не уступал по скорости версии на C++

Где можно увидеть сей софт?

anonymous
()

Мне жаба не очень понравилась. Слишком тесно как-то... Да и вместо нескольких библиотек нужно тянуть с собой всю VM. Может для предприятий это и замечательно, но для домашних условий не очень.

Мне больше нравится Qt :Р

troorl ★★
()
Ответ на: комментарий от anonymous

> Ага а еще если везде все текстовые данные хранить только в utf-8 и нигде и никогда не пытаться ручками обрабатывать пути (\ - в винде, / -сами знаете где и :: -в маках)

Заведи себе бабу, а то всё ручками да ручками.

Bohtvaroh ★★★★
()
Ответ на: комментарий от Bohtvaroh

> Так для целой массы серверных Java-решений, аналогичных C/C++ решений просто не существует :D

Все верно - создать такой мегавелосипед как j2ee на с++/си идиотов не нашлось -разработали свой язык под это дело :)

2модераторы: я ни за что не поверю что лор работает с использованием j2ee -только голый томкат +бд

anonymous
()
Ответ на: комментарий от KRoN73

> " (c) где-то середины 1980-х гг. :)

Во-первых (с) Gerald Weinberg, во вторых видимо 70-х...

sv75 ★★★★★
()
Ответ на: комментарий от anonymous

> За фразы типа "сейчас память/процессор дешевые", надо увольнять без суда и следствия.

А мужики-то не знают! (C)

Для расширения кругозора, рекомендую ознакомиться с Prevayler.

azakharchuk
()
Ответ на: комментарий от troorl

> Да и вместо нескольких библиотек нужно тянуть с собой всю VM.

А чтобы заработала программа на Qt надо тащить Qt.

eveel ★★
()
Ответ на: комментарий от anonymous

> Здрасссссссссте! Когда это Java стала _свободной_?

С версии 1.6 J2SE и J2ME публикуются под GNU GPL.

tkpai
()
Ответ на: комментарий от anonymous

>Здрасссссссссте! Когда это Java стала _свободной_?

Кстати, ув. тов. anonymous, ява таки стала свободной:

http://www.linux.org.ru/jump-message.jsp?msgid=1645391 http://www.osp.ru/os/2006/09/3776407/

Кто нибудь еще сомневается в некомпетентности ув. тов. anonymous в данном вопросе?

mike____
()
Ответ на: комментарий от eveel

>А чтобы заработала программа на Qt надо тащить Qt.

qt все равно займет меньше места чем jre. Про то что для любого j2ee надо тащить jdk который ~200 мегов в курсе?

anonymous
()
Ответ на: комментарий от azakharchuk

>Для расширения кругозора, рекомендую ознакомиться с Prevayler.

Это мегаобъектно-ориентированная СУБД, которая с 2003 года вечная бета и официальный сайт которой вечно under construction?

http://prevayler.org/index.pr

anonymous
()
Ответ на: комментарий от Bohtvaroh

>Ну тогда иди по стопам Райзера ;-)

Скорее ты пойдешь по стопам ROOT'а

anonymous
()
Ответ на: комментарий от anonymous

> qt все равно займет меньше места чем jre.

Всё равно тащить придётся.

> Про то что для любого j2ee надо тащить jdk который ~200 мегов в курсе?

Каким боком тут вообще j2ee?

eveel ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.