LINUX.ORG.RU

История изменений

Исправление zaz, (текущая версия) :

Вот представте себе програмный продукт (крупное монолитное ПО вроде браузера, или оффиса, или что другое с сотнями мегабайт кода). И над этим продуктом трудится 100+ програмистов.

При таком штате будет явная текучка кадров (ктото умер, ктото подался в буддисты, ктото ушел в запой на год). Подобрать супер пупер профисионалов - задача не простая. Тоесть есть вероятность что в команде разработчиков появится вася который напишет чтото типа:

MyStruct *m = malloc( sizeof(MyStruct) );
....
free( m );
sleep( 3600 );
m->counter1 ++;
Ну или там какое переполнение буфера в хипе сотварит или еще чего.

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

Так вот основная выгода языков с «Safe Memomy Model» это не мистическое избавление от ошибок а локализация оных. Тоесть если програмист сделал ошибку, то она будет проявлятся именно там (в том модуле) где она живет а не портит жизнь случайно выбраному нормально работающемому модулю.

Как следствие требование к качеству кадров и верификации кода резко понижается что очень заманчиво как и для бизнеса (разработка удешевляется) так и для опенсорса (можно смелее принимать комиты от старонних девелоперов).

Исправление zaz, :

Вот представте себе програмный продукт (крупное монолитное ПО вроде браузера, или оффиса, или что другое с сотнями мегабайт кода). И над этим продуктом трудится 100+ програмистов.

При таком штате будет явная текучка кадров (ктото умер, ктото подался в буддисты, ктото ушел в запой на год). Подобрать супер пупер профисионалов - задача не простая. Тоесть есть вероятность что в команде разработчиков появится вася который напишет чтото типа:

MyStruct *m = malloc( sizeof(MyStruct) );
....
free( m );
sleep( 3600 );
m->counter1 ++;
Ну или там какое переполнение буфера в хипе сотварит или еще чего.

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

Так вот основная выгода языков с «Safe Memomy Model» это не мистическое избавление от ошибок а локализация оных. Тоесть если програмист сделал ошибку, то она будет проявлятся именно там (в том модуле) где она живет а не портит жизнь случайно выбраному нормально работающемому модулю.

Как следствие требование к качеству кадров и верификации кода резко что очень заманчиво как и для бизнеса (разработка удешевляется) так и для опенсорса (можно смелее принимать комиты от старонних девелоперов).

Исходная версия zaz, :

Вот представте себе програмный продукт (крупное монолитное ПО вроде браузера, или оффиса, или что другое с сотнями мегабайт кода). И нат этим продуктом трудится 100+ програмистов.

При таком штате будет явная текучка кадров (ктото умер, ктото подался в буддисты, ктото ушел в запой на год). Подобрать супер пупер профисионалов - задача не простая. Тоесть есть вероятность что в команде разработчиков появится вася который напишет чтото типа:

MyStruct *m = malloc( sizeof(MyStruct) );
....
free( m );
sleep( 3600 );
m->counter1 ++;
Ну или там какое переполнение буфера в хипе сотварит или еще чего.

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

Так вот основная выгода языков с «Safe Memomy Model» это мистическое избавление от ошибок а локализация оных. Тоесть если програмист сделал ошибку, то она будет проявлятся именно там (в том модуле) где она живет а не портит жизнь случайно выбраному нормально работающемому модулю.

Как следствие требование к качеству кадров и верификации кода резко что очень заманчиво как и для бизнеса (разработка удешевляется) так и для опенсорса (можно смелее принимать комиты от старонних девелоперов).