The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Разработчики Firefox обратили внимание на проблемы с работой..., opennews (ok), 18-Янв-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


65. "Разработчики Firefox обратили внимание на проблемы с работой..."  –1 +/
Сообщение от JL2001 (ok), 18-Янв-11, 15:59 
>> "Браузер ложит Xorg" —  это ещё один Epic Fail программистов C/C++!
> Программистов драйверов X.Org, всё же. Язык тут ни при чём.

если язык с лёгкостью позволяет писать неаккуратно - он фактически стимулирует ошибки

Ответить | Правка | Наверх | Cообщить модератору

68. "Разработчики Firefox обратили внимание на проблемы с работой..."  +1 +/
Сообщение от eSyr (ok), 18-Янв-11, 16:25 
>>> "Браузер ложит Xorg" —  это ещё один Epic Fail программистов C/C++!
>> Программистов драйверов X.Org, всё же. Язык тут ни при чём.
> если язык с лёгкостью позволяет писать неаккуратно - он фактически стимулирует ошибки

Разруха, она не в клозетах, а в головах.

Ответить | Правка | Наверх | Cообщить модератору

80. "Разработчики Firefox обратили внимание на проблемы с работой..."  +1 +/
Сообщение от JL2001 (ok), 18-Янв-11, 17:32 
>>>> "Браузер ложит Xorg" —  это ещё один Epic Fail программистов C/C++!
>>> Программистов драйверов X.Org, всё же. Язык тут ни при чём.
>> если язык с лёгкостью позволяет писать неаккуратно - он фактически стимулирует ошибки
> Разруха, она не в клозетах, а в головах.

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

Ответить | Правка | Наверх | Cообщить модератору

82. "Разработчики Firefox обратили внимание на проблемы с работой..."  +1 +/
Сообщение от Аноним (-), 18-Янв-11, 17:38 
> я приверженец точки зрения что человека надо пинками гнать к светлому будущему
> иначе мы будем вечно иметь пхп-стайл программирование и постоянно вычищать опечатки,
> забытые инициализации, забытые освобождения явно неиспользуемых ссылок, нульпойнтеры
> и переполнения

Пардон конечно за нескромный вопрос но - и много лично у Вас этих стай горе-пхп-программистов? Что доставляют Вам ежедневную столь нестерпимую Боль? Ну хотя бы пара-тройка то сотен наберется? Чтобы было кого конкретно пинать и гнать гуртом к светлому будущему..

Ответить | Правка | Наверх | Cообщить модератору

88. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от JL2001 (ok), 18-Янв-11, 17:48 
>> я приверженец точки зрения что человека надо пинками гнать к светлому будущему
>> иначе мы будем вечно иметь пхп-стайл программирование и постоянно вычищать опечатки,
>> забытые инициализации, забытые освобождения явно неиспользуемых ссылок, нульпойнтеры
>> и переполнения
> Пардон конечно за нескромный вопрос но - и много лично у Вас
> этих стай горе-пхп-программистов? Что доставляют Вам ежедневную столь нестерпимую Боль?
> Ну хотя бы пара-тройка то сотен наберется? Чтобы было кого конкретно
> пинать и гнать гуртом к светлому будущему..

как бы так ? http://lurkmore.ru/images/9/9d/Dobeisa.jpeg

мне хватает кода в дорабатываемых мной проектах чтоб иметь представление о вопросе

Ответить | Правка | Наверх | Cообщить модератору

205. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 21-Янв-11, 15:08 
> как бы так ? http://lurkmore.ru/images/9/9d/Dobeisa.jpeg

403 Forbidden - Как говорится, FAIL!

> мне хватает кода в дорабатываемых мной проектах чтоб иметь представление о вопросе

Ну, если учесть что вы даже линку работающую привести не можете, я представляю что там у вас в проектах творится. Таких пинателей самих поди первым делом пинать надо.

Ответить | Правка | Наверх | Cообщить модератору

86. "Разработчики Firefox обратили внимание на проблемы с работой..."  –2 +/
Сообщение от JL2001 (ok), 18-Янв-11, 17:45 
>>>>> "Браузер ложит Xorg" —  это ещё один Epic Fail программистов C/C++!
>>>> Программистов драйверов X.Org, всё же. Язык тут ни при чём.
>>> если язык с лёгкостью позволяет писать неаккуратно - он фактически стимулирует ошибки
>> Разруха, она не в клозетах, а в головах.
> я приверженец точки зрения что человека надо пинками гнать к светлому будущему
> иначе мы будем вечно иметь пхп-стайл программирование и постоянно вычищать опечатки,
> забытые инициализации, забытые освобождения явно неиспользуемых ссылок, нульпойнтеры
> и переполнения

добавлю ещё что язык - это инструмент и он должен облегчать работу а не усложнять (мб конешно у меня в сях мало опыта но вспоминая как начинал изучать Java, C# или D сейчас - проект понимается куда проще)

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

109. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от Crazy Alexemail (??), 18-Янв-11, 20:15 
Оно как бы да, но в жабе регулярно возникает ощущения жонглирования со связанными руками. Уж больно примитивный язык. А примитивность эта, понятное дело, выливается в большие объёмы кода, нужного, чтобы её компенсировать. Плюсы, при всех своих неудобствах, много больше позволяют. Впрочем, насчёт D соглашусь - достойно у них вышло :-) Правда начинает хотеться большего - AST-макросов, например, или пользовательских операторов - но это я уже зажрался :-)
Ответить | Правка | Наверх | Cообщить модератору

111. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от Crazy Alexemail (??), 18-Янв-11, 20:16 
> Оно как бы да, но в жабе регулярно возникает ощущения жонглирования со
> связанными руками. Уж больно примитивный язык. А примитивность эта, понятное дело,
> выливается в большие объёмы кода, нужного, чтобы её компенсировать. Плюсы, при
> всех своих неудобствах, много больше позволяют. Впрочем, насчёт D соглашусь -
> достойно у них вышло :-) Правда начинает хотеться большего - AST-макросов,
> например, или пользовательских операторов - но это я уже зажрался :-)

Единственное - IMHO, стоило бы сделать какой-нибудь MinimalD без GC...

Ответить | Правка | Наверх | Cообщить модератору

124. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от JL2001 (ok), 18-Янв-11, 22:58 
>> Оно как бы да, но в жабе регулярно возникает ощущения жонглирования со
>> связанными руками. Уж больно примитивный язык. А примитивность эта, понятное дело,
>> выливается в большие объёмы кода, нужного, чтобы её компенсировать. Плюсы, при
>> всех своих неудобствах, много больше позволяют. Впрочем, насчёт D соглашусь -
>> достойно у них вышло :-) Правда начинает хотеться большего - AST-макросов,
>> например, или пользовательских операторов - но это я уже зажрался :-)
> Единственное - IMHO, стоило бы сделать какой-нибудь MinimalD без GC...

а вы как любитель тёплого лампового звука можете обосновать чем плох GC ? и прошу вас, без ссылок на жаву и си# - там виртуальные машины вобще-то

Ответить | Правка | Наверх | Cообщить модератору

186. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 20-Янв-11, 12:10 
> а вы как любитель тёплого лампового звука можете обосновать чем плох GC

Попыткой заменить мозг програмера и как следствие - не думающими головой програмерами, уповающими на то что "оно само все сделает". И в итоге куча неочевидных утечек памяти, которые обнаруживаются далеко не сразу. При этом у поклонников GC еще и хватает наглости верещать что оно избавляет от утечек памяти. Ну да, конечно, я на примере реально существующих команд жабистов и дотнетчиков это во весь рост заметил. При том почему-то есть ощущение что сишники какимнить valgrind-ом проблемы с памятью вычисляют явно проще и быстрее. Во всяком случае, ни разу не видел чтобы сишные програмеры неделю бы бодались с отловом утечек. Жабистов и дотнетчиков бодающихся неделю с неочевидным результатом - видел.  

Ответить | Правка | Наверх | Cообщить модератору

123. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от JL2001 (ok), 18-Янв-11, 22:48 
> Оно как бы да, но в жабе регулярно возникает ощущения жонглирования со
> связанными руками. Уж больно примитивный язык. А примитивность эта, понятное дело,
> выливается в большие объёмы кода, нужного, чтобы её компенсировать. Плюсы, при
> всех своих неудобствах, много больше позволяют. Впрочем, насчёт D соглашусь -
> достойно у них вышло :-) Правда начинает хотеться большего - AST-макросов,
> например, или пользовательских операторов - но это я уже зажрался :-)

Для D3.0 запланировано следующее:
    AST макросы.
http://habrahabr.ru/blogs/programming/75451/

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

Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

149. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 19-Янв-11, 12:48 
> я приверженец точки зрения что человека надо пинками гнать к светлому будущему

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

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

152. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от JL2001 (ok), 19-Янв-11, 14:29 
>> я приверженец точки зрения что человека надо пинками гнать к светлому будущему
> Лично мне не нужно светлое будущее в котором раздают пинки. Пусть жопа
> от пинков болит сугубо у вас, а мне такого счастья не надо.

добро пожаловать в демократичный капитализм с человеческим лицом. все волки друг другу товарищи. полегчало ?
из человека надо выдавливать животное, не давать животному бонусов (хоть в виде несоблюдения договоров, хоть в виде невнятно написанного кода)

Ответить | Правка | Наверх | Cообщить модератору

165. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 19-Янв-11, 19:48 
> добро пожаловать в демократичный капитализм с человеческим лицом.

Угу. Капиталисты могут нам такое будущее забабахать, что какойнить там Сталин покажется не таким уж и плохим человеком. Ведь как известно, нет такого преступления на которое бы не пошел капиталист ради получения прибыли... ;). А технические возможности явно поболее будут.

Небольшое превью светлого будущего можно найти где-то в районе http://www.ruformator.ru/news/article06568/default.asp

> из человека надо выдавливать животное,

Сколько вы не пинай несчастную обезьяну, не запирай ее за печатной машинкой и не дрессируй, Толстым она от этого не станет. Думаете, талант и умение думать можно вбить пинками? Сомневаюсь.

Ответить | Правка | Наверх | Cообщить модератору

90. "Разработчики Firefox обратили внимание на проблемы с работой..."  +3 +/
Сообщение от User294 (ok), 18-Янв-11, 18:01 
> если язык с лёгкостью позволяет писать неаккуратно - он фактически стимулирует ошибки

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

Вообще, такое почему-то очень похоже на попытку все-таки написать (и продавать - PROFIT!!!) Войну и Мир путем упихивания миллиона обезьян за печатные машинки, расстановкой загродок чтобы они не сбежали, старательной дрессировкой, чтобы жали более-менее правдоподобные кнопки и прочая. Только войной и миром результат все-таки не станет. И говнокоду от криворуких говнокодеров хорошей программой без ошибок - уж точно не бывать.

P.S. кстати многие логические ошибки бывают куда суровее и опаснее чем технические. Обезьяны почему-то упорно кивают на умные языки которые за них подумают и им жопу подотрут, но игнорируют этот простой факт. Хотя наиболее жуткие и проблемные последствия вылезают как правило именно из-за логических ошибок, не привязаннх к языкам *вообще* *никак*. Из-за логических ошибок теряются/искажаются/утекают данные. Из-за логических ошибок попадают на деньги. Из-за логических ошибок сталкиваются поезда и падают самолеты. Так ли при этом ужасен какой-то там несчастный крах?

Алсо, крах в целом - вообще не факт что что-то плохое. При крахе сразу видно что программа не работает корректно, ее можно сразу перезапустить с неискаженными данными + велика вероятность что кто-то сможет сделать "разбор полетов" по горячим следам. А что если краха не будет? Вообще, если произошла какая-то ошибка, а программа на нее забила - вариантов есть два: программа может или быть принудительно завершена дефолтным обработчиком ошибки ("крах"), т.к. нет оснований ожидать корректной работы программы, или она может попробовать продолжить работу, как будто все было ок. Только результат работы будет неопределен и возможны любые сюрпризы, которые появятся как только программа попробует сделать что-то, зависевшее от места на котором возникла проблема. Кстати оба подхода обработки ошибок в принципе возможны и для нативного и для манагед кода. Собссно все современные процессоры позволяют отделить программу от других программ и ОС в "песочницу", так что крах - всего лишь обнаружение процессором того факта что программа работает некорректно и попробовала сделать операцию которая не должна была происходить. Аппаратно или софтварно будет дернут обработчик по этому поводу и апаратный или виртуальный процессор при этом - вообще не так уж и принципиально. Принципиальное отличие только одно: можно или забить на ошибку, или не забить и вырубить программу. В первом случае программа продолжит работать, а глюк скорее всего окажется не замечен (зато он может больно вдарить потом, спасибо если не через неделю работы, когда хвостов уже точно не найти). Во втором программа срубится и будет стимул ловить глюк или баг. Который как ни крути, есть.

Вопрос: почему глюкмэйкеры считают что некорректная работа программы лучше краха? Только потому что ваше бракоделие заметят не сразу? Так это довольно свинский подход, вам так не кажется, господа халтурщики?

Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

94. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от iZEN (ok), 18-Янв-11, 18:13 
> Вопрос: почему глюкмэйкеры считают что некорректная работа программы лучше краха?

Просто потому, что программа ещё может побороться за свою живучесть в рамках отведённых ей аппаратных ресурсов, а не снести полсистемы (Xorg) из-за неподдерживаемой функциональности (крах).

Ответить | Правка | Наверх | Cообщить модератору

108. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 18-Янв-11, 20:11 
> Просто потому, что программа ещё может побороться за свою живучесть

Уточним: она сможет лишь *непредсказуемо* *поглюкавить*. Забив на обработку проблемной ситуации. Т.к. если на проблемную ситуацию не было забито или же сбоев в логике работы вообще не было - тогда откуда взяться краху? Это ж лишь дефолтный обработчик вызываемый при обнаружении откровенно неправильной работы программы.

> в рамках отведённых ей аппаратных ресурсов,

Нюню. Если уж вы такой умный, то намекну: если система многозадачная, ресурсы в ней могут потреблять много программ сразу, прикиньте? И, кстати, это как билетная касса: у вас могут все разобрать перед самым носом. И выпролетите. Гарантий обратного никто не даст. Даже если в общем случае вы придя к кассе и получаете ваш билет, и даже 10 раз подряд вы его получили, это еще на значит что в 11й раз они не кончатся у вас перед носом.

В сях, кстати, для повышения надежности работы программы можно хапнуть себе приличный кус памяти *заранее*, поюзать его и никому не отдавать, далее юзая уже его (можно выделять память более гранулярно уже из этого куска).

Это как с билетами. Вы  можете забронировать билет заранее и твердо знать что тот билет - именно ваш, и никто его уже у вас не заберет. А можете надеяться на лучшее и переться наобум. Но можете при этом и обломаться, если все билеты раскупят до вас. Минус ессно "необходимость возни с бронированием" (выделение памяти заранее + свой аллокатор) и "переплата" (в плане сжирания ресурсов): чтобы не было шанса обломаться, надо выделить максимально необходимый кусок памяти сразу. И даже если часть памяти не требуется,но может потребоваться потом - отдавать ее низзя. По идее логика доступная даже неглупому школотенку. На примере с билетами, для особо непонятливых.

А на яве так сможете вообще? Или предполагается что Единственно Правильной логики встроенного аллокатора - хватит всем? ("совковая касса без услуги бронирования"). На сях кстати возможны и иные варианты логики - например периодические повторы попытки выделить память до успеха или таймаута считаемого фатальным, например. А на яве так сможете вообще? :)

> а не снести полсистемы (Xorg) из-за неподдерживаемой функциональности (крах).

Какой кондовый бред :). Не, изен, извини, конечно, но надежную систему твоего дизайна я бы юзать не стал.

P.S.: реально двинутые на надежности перцы программят примерно так: http://en.wikipedia.org/wiki/Immunity_Aware_Programming - это, конечно, сурово, но в некоторых местах надежности не бывает слишком много. Врядли вы оцените сбой например в софте микроконтроллера управляющего тормозами вашего авто? Или вы думаете что навороты типа антипробуксовочных и антиблокировочных систем - это такие аппаратные фичи? Ну да, щазз, потребный анализ ситуации с датчиков и принять решение может только микроконтроллер с своей фирмвариной. Приколитесь, написаной на си скорее всего (ну может на асме, но на голом асме нынче не модно в силу геморности и непортабельности). И, кстати, если бы такую же логику писали бы вы, на вашей яве - я бы вообще от такого авто держался за километр, а то глюки и баги в тормозной системе - как-то ссыкотная такая штука, а? Там обычно просто фирмварина проста как топор и вылизана до битика, глюкать тупо нечему ;).

Ответить | Правка | Наверх | Cообщить модератору

121. "Разработчики Firefox обратили внимание на проблемы с работой..."  +1 +/
Сообщение от iZEN (ok), 18-Янв-11, 21:40 
>> Просто потому, что программа ещё может побороться за свою живучесть
> Уточним: она сможет лишь *непредсказуемо* *поглюкавить*. Забив на обработку проблемной
> ситуации. Т.к. если на проблемную ситуацию не было забито или же
> сбоев в логике работы вообще не было - тогда откуда взяться
> краху? Это ж лишь дефолтный обработчик вызываемый при обнаружении откровенно неправильной
> работы программы.

try-catch в современных языках программирования никто не отменял. В блоке catch программа может определить неполадки и попытаться восстановить своё состояние до входа в блок try. В большинстве случаев такое поведение несмертельно для программы и позволяет продолжать её исполнение после выхода из обработчика исключительной ситуации.
Дебаты об исключениях: http://www.ibm.com/developerworks/ru/library/j-jtp05254/inde...

>> в рамках отведённых ей аппаратных ресурсов,
> Нюню. Если уж вы такой умный, то намекну: если система многозадачная, ресурсы
> в ней могут потреблять много программ сразу, прикиньте? И, кстати, это
> как билетная касса: у вас могут все разобрать перед самым носом.

Это — задача операционной системы и/или JVM. Пока что JVM показывает наилучшее управление ресурсами, чем, собственно, ядро ОС, глядя на то, как "текут картинки" и обваливается Xorg. :))

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

<...>
> А на яве так сможете вообще? Или предполагается что Единственно Правильной логики
> встроенного аллокатора - хватит всем? ("совковая касса без услуги бронирования").

В JVM есть разные стратегии распределения памяти и уборки мусора. Под разные задачи можно выбрать оптимальные.
Краткая история развития технологии утилизации памяти: http://www.ibm.com/developerworks/ru/library/j-jtp10283/inde...

Исправление модели памяти Java, часть 2: http://www.ibm.com/developerworks/ru/library/j-jtp03304/inde...

Сборка мусора и производительность: http://www.ibm.com/developerworks/ru/library/j-jtp01274/inde...


> На
> сях кстати возможны и иные варианты логики - например периодические повторы
> попытки выделить память до успеха или таймаута считаемого фатальным, например. А
> на яве так сможете вообще? :)

А зачем в программе на Java выделять себе память? Массив нужного размера создался — хорошо — можно использовать его под буфер. Сам по себе объект имеет небольшой оверхед около 80 байт служебной информации и живёт, пока на него есть хотя бы одна ссылка. Лично я предпочитаю работать с долгоживущими объектами, которые изменяют своё состояние, если это нужно, а не создавать новые и новые объекты-"однодневки", которых прибирает GC.

Ответить | Правка | Наверх | Cообщить модератору

168. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 19-Янв-11, 21:03 
> try-catch в современных языках программирования никто не отменял.

И что? В обработчике исключения далеко не все удосуживаются написать что-то осмысленное. А если уж хочется пообрабатывать ошибки осмысленно - даже на гольных сях это можно. Приколитесь? :)

> В блоке catch программа может определить неполадки

Даже на самых простых сях тоже можно заменить дефолтный обработчик на что-то свое, и когда случится жопа, управление получит не дефолтный обработчик а ваш код. А 10 отличий - они в чем состоят?  

>  и попытаться восстановить своё состояние до входа в блок try.

Попытаться... да... удачи в этом начинании. На сях ксати тоже можно попытаться. А почему нет? Напримре в *никсах программа может навесить свои кастомные обработчики сигналов. На SIGSEGV в частности. Чем это будет так уж сильно отличаться от того же try-catch на большой блок кода? Если вы этого вдруг не знали - наверное в этом не си все-таки виноват, а вы? :)

> В большинстве случаев такое поведение несмертельно для программы

Ну так я уже сказал что если на ошибку положили болт - есть ровно 2 варианта что будет дальше: можно глюк обнаружить и убить программу. А можно не убивать и предоставить ей работать дальше. Только дальнейшее ее поведение будет неопределено. При том мне подход с пристреливанием при обнаружении потенциально фатального глюка как-то более симпатичен: способствует фиксингу этих самых глюков, а не предоставляет глюкастику глюкавить себе дальше в надежде что авось пронесет.

>> как билетная касса: у вас могут все разобрать перед самым носом.
> Это — задача операционной системы и/или JVM.

Спасибо, Кэп. А я то и не подозревал что в роли кассы именно они.

> Пока что JVM показывает наилучшее управление ресурсами,

А JVM вааще является в этой нашей схеме с билетами всего лишь спекулянтом-перепродавцом билетиков, который получает билеты в той же кассе (у OS) и потом их вам перепродает. И, кстати, если вдруг спекулянта обломают в кассе с билетами - он и вас обломает при попытке купить у него билет, т.к. если у него нет билетов, взять ему их будет неоткуда. Плюс он может вас обломать если его лучший друг попросил придержать для него билетиков. Или если ему не нравится ваша морда лица. Или ... ну в общем ява может иметь свое мнение о том сколько вам память можно. Вторым уровнем, опосля мнения ОС на этот счет. Странно, правда? Утверждается что сие надежнее чем напрямую забронировать билет? Ну да, помечтайте :) В одном случае 1 точка отказа, в другом - 2, при том первая - такая же как в первом случае. С фига ли цепь из 2 звеньев лучше чем из одного по надежности? Вы жестоко прогуливали теорвер в инсте, или WTF? :)))

> чем, собственно, ядро ОС,

А ява, кончно же, совсем не через обосранное вами ядро этой самой ОС память выделяет, правда? Скажите, ну как можно настолько ламернуться то? В общем FAIL :)

> глядя на то, как "текут картинки" и обваливается Xorg. :))

Как будто софт на яве не течет, ага. Ява наверное методом телепатии узнает когда програмер больше не собирается работать с вон той сущностью и можно уже ее убить, освободив занимаемую сущностью память под что-то еще. Не, извините, но чудес не бывает. Бывают только дураки которые верят в чудеса :P.

> В JVM есть разные стратегии распределения памяти и уборки мусора.

А *свою* стратегию - возможно подсунуть? Или как обычно - 640 Кб хватит всем, потому что умные дяди из сан/оракл так за вас решили?

> Под разные задачи можно выбрать оптимальные.

А парни из сана и оракла обладают телепатией чтобы предвидеть ВСЕ возможные типы задач?

> Краткая история развития технологии утилизации памяти:

Да, термин "утилизация" применительно к яве неплохо описывает то что оно делает с памятью :D.

> Сборка мусора и производительность:

Мануал о том как сперва создать себе 100500 проблем а потом мужественно с ними бороться. По-моему, если уж волнует производительность, особенно гарантированная - нехрен связываться ни с явой, ни с гарбаж коллекторами.

> А зачем в программе на Java выделять себе память?

Да хоть горшком назовите. Созданием объекта, или как вам там угодно. В конечном итоге - это будет с точки зрения ОС трансформировано в выделение памяти, один хрен. Потоу что ядро не оперирует такими терминами. А как вы это там назовете - не так уж и интересно. Ну не malloc у вас сможет обломится, так new. И если скажем объект не создался и он был не для красоты - врядли получится корректно поработать дальше, правда? :) А 10 отличий - они в чем будут? Так, глобально? :)

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

Ну да, конечно. Ведь с new но без delete при активном создании объектов поиметь неочевидные утечки памяти - ни разу не проблема, правда? :))) Ведь достаточно оставить по недосмотру ссылку на какой-то временный объект, и GC его уже никогда не убьет. И будет .... утечка памяти! Та самая, которая якобы "невозможна" на яве, хи-хи ;).

Ответить | Правка | Наверх | Cообщить модератору

181. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от iZEN (ok), 20-Янв-11, 01:18 
>> В большинстве случаев такое поведение несмертельно для программы
> Ну так я уже сказал что если на ошибку положили болт -
> есть ровно 2 варианта что будет дальше: можно глюк обнаружить и
> убить программу. А можно не убивать и предоставить ей работать дальше.

Это только на сях имеют два выхода: segmentation fault или core dump — выбери из них лучшее. :)

> Только дальнейшее ее поведение будет неопределено. При том мне подход с
> пристреливанием при обнаружении потенциально фатального глюка как-то более симпатичен:
> способствует фиксингу этих самых глюков, а не предоставляет глюкастику глюкавить себе
> дальше в надежде что авось пронесет.

В своё время написал программу для обработки данных, которая пыталась несколько раз выполнить определённую функцию чтения и записи данные в базу данных. Операция чтения данных из файла была ненадёжна, так что с первого раза обычно не выполнялась, но выполнялась со второго-третьего-...-пятого раза, и данные в итоге записывались в базу данных за приемлемое время. Так как функция изначально работала с внешним файлом, который мог быть эксклюзивно занят на время обновления другой программой, то вероятность словить IOException была близка к 50%. Но моя программа просто обрабатывала это исключение, прогоняла заново операцию чтения и добивалась считывания данных из этого файла без каких-либо последствий для себя в режиме 24x7.

>> В JVM есть разные стратегии распределения памяти и уборки мусора.
> А *свою* стратегию - возможно подсунуть? Или как обычно - 640 Кб
> хватит всем, потому что умные дяди из сан/оракл так за вас
> решили?

Да, можно подсунуть свою реализацию GC. Код OpenJDK6 и API открыты. Если чувствуешь себя более умным, чем разработчики JVM, проблем не существует.

>Ну не malloc у вас сможет обломится, так new. И
> если скажем объект не создался и он был не для красоты
> - врядли получится корректно поработать дальше, правда? :) А 10 отличий
> - они в чем будут? Так, глобально? :)

Объекты в Java создаются атомарно. Если new не может создать объект, то вылетит исключение времени выполнения (или проверяемое исключение, если определено в сигнатуре конструктора) и его тоже можно обработать, можно корректно завершить программу.

>> предпочитаю работать с долгоживущими объектами, которые изменяют своё состояние, если
>> это нужно, а не создавать новые и новые объекты-"однодневки", которых прибирает GC.
> Ну да, конечно. Ведь с new но без delete при активном создании
> объектов поиметь неочевидные утечки памяти - ни разу не проблема, правда?
> :))) Ведь достаточно оставить по недосмотру ссылку на какой-то временный объект,
> и GC его уже никогда не убьет. И будет .... утечка
> памяти! Та самая, которая якобы "невозможна" на яве, хи-хи ;).

Какие мы глупые! У нас нет профилировщика, чтобы анализировать сколько и каких объектов создаётся и не убирается во время работы нашей программы! Хи-хи. :))

Ответить | Правка | Наверх | Cообщить модератору

187. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 20-Янв-11, 12:34 
> Это только на сях имеют два выхода: segmentation fault или core dump
> — выбери из них лучшее. :)

Повесь свой обработчик на SIGSEGV, мистер тормоз. И делай в нем все что твоей душе угодно. И чем это так уж принципиально отличается от catch? Да, кстати если я не говорил, у почти всех жабистов почему-то в try-catch в части которая catch - почему-то ... ничуть не менее пусто чем у типичных сишников. :)

> 50%. Но моя программа просто обрабатывала это исключение, прогоняла заново операцию
> чтения и добивалась считывания данных из этого файла без каких-либо последствий
> для себя в режиме 24x7.

Ой, надо же. На яве можно оказывается поймать I/O error. На сях тоже можно. И? Не догоняю, у кого и в каком месте наступает EPIC WIN :)

> Да, можно подсунуть свою реализацию GC. Код OpenJDK6 и API открыты. Если
> чувствуешь себя более умным, чем разработчики JVM, проблем не существует.

Это что, надо править сорц JVM? А более культурно из программы порулить - не катит? oO

> Объекты в Java создаются атомарно.

Круто. А malloc происходит не атомарно ли? Или опять же - В ЧЕМ ГЛОБАЛЬНОЕ ОТЛИЧИЕ? :)

> Если new не может создать объект, то вылетит исключение времени выполнения

А если malloc не сработает - или культурные люди поймают сразу, или, если они не культурные - вылетит SIGSEGV при попытке поработать с памятью там где ее не было. А 10 принципиальных отличий - они в чем? Если абстрагироваться от большей навороченности сущностей и их внутреннего устройства? :)

> (или проверяемое исключение, если определено в сигнатуре
> конструктора) и его тоже можно обработать, можно корректно завершить программу.

Неуспешный malloc тоже можно обработать. Более того, даже облажавшись это сделать, можно обработать хоть тот же SIGSEGV, информирующий нас о том что мы облажались. То что по дефолту реакция на него - просто выход, возможно, с коредампом - ну, круто. Это не значит что нельзя переопределить обработку этого сигнала. Просто, как многие жабисты вааще ничего осмысленного не пишут в catch, так что оно продолжает просто глюкать дальше, делая вид что вроде как работает, многие сишные програмеры не ловят SIGSEGV или ошибки выделения памяти, так что при обнаружении столь похабного бага прога просто сразу убивается.

> Какие мы глупые! У нас нет профилировщика, чтобы анализировать сколько и каких
> объектов создаётся и не убирается во время работы нашей программы! Хи-хи. :))

Ну, судя по тому как некоторые НЕДЕЛЯМИ корпят, пытаясь понять WTF, с довольно скромным результатом - не так уж этот Бэтмэн и крут... :)))

Ответить | Правка | Наверх | Cообщить модератору

155. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от JL2001 (ok), 19-Янв-11, 15:16 
> В сях, кстати, для повышения надежности работы программы можно хапнуть себе приличный
> кус памяти *заранее*, поюзать его и никому не отдавать, далее юзая
> уже его (можно выделять память более гранулярно уже из этого куска).

тота в линуксе бывает "выделено памяти 10 гигов, физической памяти 4 гига, свопа нет" - специально для таких умных кто запрашивает память но не использует - ОС память выделяет по факту использования а не по факту запроса

Ответить | Правка | К родителю #108 | Наверх | Cообщить модератору

159. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 19-Янв-11, 17:46 
> не использует - ОС память выделяет по факту использования а не
> по факту запроса

О, мне всегда было интересно - допрет ли кто до этого тонкого момента ;).

Я кстати тоже думал об этом. А это... сразу после выделения и используйте блок целиком, какие проблемы? :) Например, заполнив весь отхапанный массив чем-нибудь (рандомом, чтобы послать еще и дедупликаторы, если их вдруг на ваш зад внедрят). Кстати, если я правильно помню, такое поведение ОС можно запретить, если оно не нравится. В общем то оврекоммит - это некий поиск приключений на свою жопу (любая попытка декларировать большее количество ресурсов чем по факту есть и надеяться что по факту никто столько не поюзает - ненадежна по природе своей). ИМХО если волнует надежность работы при потенциально возможном душняке с памятью - пользоваться оверкоммитом врядли стоит.

Ответить | Правка | Наверх | Cообщить модератору

112. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от Crazy Alexemail (??), 18-Янв-11, 20:20 
А вот бороться в таких ситуациях свинство и есть. Не свинство - высыпать хорошую обильную диагностику чтобы было что разработчику отослать и вежливо сдохнуть, ничего больше не поломав.
Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

122. "Разработчики Firefox обратили внимание на проблемы с работой..."  +1 +/
Сообщение от iZEN (ok), 18-Янв-11, 21:55 
> А вот бороться в таких ситуациях свинство и есть.
> Не свинство -
> высыпать хорошую обильную диагностику чтобы было что разработчику отослать и вежливо
> сдохнуть, ничего больше не поломав.

Ну, так, Firefox4 написан на C++, у него нет стандартного стека исключений, который можно было бы вывести и сдохнуть, в отличие от Java-программ. Ничего не остаётся, как крошить Xorg.

Ответить | Правка | Наверх | Cообщить модератору

125. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от klalafuda (?), 18-Янв-11, 23:08 
> Ну, так, Firefox4 написан на C++, у него нет стандартного стека исключений, который можно было бы вывести и сдохнуть, в отличие от Java-программ. Ничего не остаётся, как крошить Xorg.

Вообще то, как IMHO не сложно догадаться прослушав хотя бы первый курс любого околоитешного ВТУЗа, виртуальная джава машина ни чем не отличается в указанном случае от firefox. Или любого другого пользовательского приложения. И если в результате его, возможно, некорректной работы вылетает критичный системный сервис.. Да, конечно, это джава виновата. И фокс. На пару с плюсами. Вне всяких сомнений.

Ответить | Правка | Наверх | Cообщить модератору

188. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 20-Янв-11, 12:40 
> Вообще то, как IMHO не сложно догадаться прослушав хотя бы первый курс
> любого околоитешного ВТУЗа, виртуальная джава машина ни чем не отличается в
> указанном случае от firefox.

Более того, JS выполняющийся в браузере ничем принципиально не отличается от байткода выполняющегося в JVM. Странно что изену слабо осознать столь тривиальный факт, это по-моему в состоянии понять любой неглупый школьник.

Ответить | Правка | Наверх | Cообщить модератору

192. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от iZEN (ok), 20-Янв-11, 14:22 
> Более того, JS выполняющийся в браузере ничем принципиально не отличается от байткода выполняющегося в JVM.

Ой, ну и бред же ты несёшь иногда. :))))


Ответить | Правка | Наверх | Cообщить модератору

200. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 20-Янв-11, 21:18 
> Ой, ну и бред же ты несёшь иногда. :))))

Да ну брось, какая нахрен глобальная разница: JVM JIT'ом перегонит байткод в нативный и выполнит, или движок в браузере перегонит JITом яваскрипт в нативный код и выполнит.

Принципиальных отличий не так уж и много. А то что языки разные и вообще в одном случае байткод а в другом скрипт - это уже детали. А общий смысл действа и результат будет достаточно похож. Или в случае браузерного JIT ты уже не хочешь верешать о том как это суперкруто и какие там возможны офигительные оптимизации, блаблабла? :)))

Ответить | Правка | Наверх | Cообщить модератору

202. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от iZEN (ok), 21-Янв-11, 10:31 
> Принципиальных отличий не так уж и много. А то что языки разные
> и вообще в одном случае байткод а в другом скрипт -
> это уже детали.

Это — действительно детали. Но языки JavaScript и Java ещё ведь отличаются смыслом: один динамический, а другой статически типизированный. Модульность и публичный API для взаимодействия с библиотеками, предоставляемый средой исполнения Java, вообще не присущи JavaScript'у. И в этом разница между этими языками — колоссальная.

> А общий смысл действа и результат будет достаточно похож.

Вообще все языки программирования могут реализовать тот же результат, что и машина Тьюринга. Да, в этом они "достаточно похожи". :))

> Или в случае браузерного JIT ты уже не хочешь верешать
> о том как это суперкруто и какие там возможны офигительные оптимизации,
> блаблабла? :)))

JavaScript убог по своей природе.

Ответить | Правка | Наверх | Cообщить модератору

203. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 21-Янв-11, 14:56 
> Это — действительно детали. Но языки JavaScript и Java ещё ведь отличаются
> смыслом: один динамический, а другой статически типизированный.

Опять же, это детали :).

> Модульность и публичный API для взаимодействия с библиотеками,
> предоставляемый средой исполнения Java, вообще не присущи JavaScript'у.

Да, кстати сие как бы некоторая проблема JS. С другой стороны, оно же и фича: если бы там было бы столько же всего понапихано как в яве, запускать JS из веба было бы столь же медленно, ресурсожорко и ссыкотно как и ява-апплеты. Чудес не бывает.

> И в этом разница между этими языками — колоссальная.

Но мы говорили не о языках. А о их средах исполнения. JVM - среда исполнения Java апплетов. Браузер - среда выполнения JS. Я нахожу как-то весьма двухстандартным заметить что браузер писан на сях и обосрать си, но технично "не заметить" то же самое для JVM.

> Вообще все языки программирования могут реализовать тот же результат, что и машина
> Тьюринга. Да, в этом они "достаточно похожи". :))

Спасибо, Кэп! :)

> JavaScript убог по своей природе.

А Java монструозна и как-то так оказалась нафиг не нужна ни в вебе, ни на десктопе. Ну кроме серверной стороны у всяких ынтерпрайзов, может быть :)

Ответить | Правка | Наверх | Cообщить модератору

156. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от JL2001 (ok), 19-Янв-11, 15:29 
>> если язык с лёгкостью позволяет писать неаккуратно - он фактически стимулирует ошибки
> Круто, оказывается это не програмер должен называться криворуким халтурщиком, это язык
> ему оказывается виноват. А потом мы еще удивляемся, когда в программах
> вылезают просто эпичные баги.

можно собирать машины ручной сборкой подгоняя детали напильником, а можно с помощью конвейера с полным ЧПУ и роботизацией с одним живым человеком - инженером разработавшим машинку
вы машинку авторства которой из этих двух сборочных линий предпочтёте ?


> P.S. кстати многие логические ошибки бывают куда суровее и опаснее чем технические.
> Обезьяны почему-то упорно кивают на умные языки которые за них подумают
> и им жопу подотрут, но игнорируют этот простой факт. Хотя наиболее
> жуткие и проблемные последствия вылезают как правило именно из-за логических ошибок,
> не привязаннх к языкам *вообще* *никак*. Из-за логических ошибок теряются/искажаются/утекают
> данные. Из-за логических ошибок попадают на деньги. Из-за логических ошибок сталкиваются
> поезда и падают самолеты.

поэтому язык обязан вынуждать писать максимально прозрачно для актуализации логики алгоритма

Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

169. "Разработчики Firefox обратили внимание на проблемы с работой..."  +/
Сообщение от User294 (ok), 19-Янв-11, 21:20 
> вы машинку авторства которой из этих двух сборочных линий предпочтёте ?

It depends. Роботы ведь могут управляться и бухим оператором, линия может обслуживаться бухим наладчиком, а технический контроль может быть спущен на тормозах, как это случается с всякими ТАЗами. С другой стороны, некоторые специалисты по тюнингу делают весьма крутые штуки, с отличным качеством исполнения, которые к тому же невозможно купить в магазине. Выбирая между продукцией автоТАЗа и крутым кастомным авто, я выберу ессно второе. Вот поделия от жабистов почти всегда отдают "автоТАЗовщиной".

> поэтому язык обязан вынуждать писать максимально прозрачно для актуализации логики алгоритма

Много умных слов ни о чем. Большая часть программ написанных на якобы хороших в этом плане языках на поверку обычно оказывается совершенно обычным дерьмецом. Запросто проигрывая программам на "кривом" и "неправильном" си, например. Наверное дело в том что как вы не запирайте обезьяну за печатной машинкой, а Толстым она не станет все-равно.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру