Re[7]: А вот если бы в C++ был встроен сборщик мусора
От: Xentrax Россия http://www.lanovets.ru
Дата: 01.09.04 17:53
Оценка: 6 (2) +5
Здравствуйте, rus blood, Вы писали:

RB>Возможно (только не бейте!!!), если бы в C++ изначально был встроен сборщик, возникла бы идея сделать ЕГО кроссплатформенным, а не городить с Джавой...


Я вот что вам хочу сказать, прежде чем начинать эту тему, надо было прочитать что-нибуль про историю создания С++, ну например "Дизйн и Эволюция С++".

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

Так вот, я расскажу, где бы был язык С++, если бы там "изначально был сборщик мусора". Тогда С++ бы так бы и остался чисто академическим проектом среди большого колчиества таких же никому не нужных в то время уродцев.

Что касается удобства программирования со сборкой мусора, то во всем есть свои плюсы и свои минусы.
Re[5]: А вот если бы в C++ был встроен сборщик мусора
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.09.04 21:42
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Просто есть мысля, что именно отсутствие сборщиков в C++ сподвигло создавать языки, где он встроен изначально. По крайней мере, вохможно это был один из движущих мотивов.


Поверь если бы это было так, то никто не городил бы огород, а просто приделал бы ЖЦ к С++. У МС на это точно ресурсов и смелости хватило бы.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: А вот если бы в C++ был встроен сборщик мусора
От: Sergey Россия  
Дата: 02.09.04 07:14
Оценка:
Hello, Xentrax!
You wrote on Wed, 01 Sep 2004 17:53:20 GMT:

X> Я вот что вам хочу сказать, прежде чем начинать эту тему, надо было

X> прочитать что-нибуль про историю создания С++, ну например "Дизйн и
X> Эволюция С++".

X> Язык С++ позиционировался как язык "С с классами", т.е. язык, такой же

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

X> Так вот, я расскажу, где бы был язык С++, если бы там "изначально был

X> сборщик мусора". Тогда С++ бы так бы и остался чисто академическим
X> проектом среди большого колчиества таких же никому не нужных в то время
X> уродцев.

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

With best regards, Sergey.
Posted via RSDN NNTP Server 1.9 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re: А вот если бы в C++ был встроен сборщик мусора
От: borisman2 Киргизия  
Дата: 02.09.04 07:45
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Что тогда было бы с современными языками программирования?

RB>Где тогда были бы Java или .Net, и были бы они вообще???

А вот насколько я помню есть такой gc который и есть сборщик мусора под С++ (на шаблонах писан). Где-то на сурсфордже лежит. ИМХО сборка мусора далеко не самое важное отличие С++ от С#
Re[6]: А вот если бы в C++ был встроен сборщик мусора
От: Кодт Россия  
Дата: 02.09.04 08:12
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Поверь если бы это было так, то никто не городил бы огород, а просто приделал бы ЖЦ к С++. У МС на это точно ресурсов и смелости хватило бы.


Просто к слову. Garbage Collection — это не ЖЦ, а, скорее, ГК. То есть Городская Канализация
Перекуём баги на фичи!
Re[8]: А вот если бы в C++ был встроен сборщик мусора
От: rus blood Россия  
Дата: 02.09.04 08:20
Оценка:
Здравствуйте, Xentrax, Вы писали:

X>Здравствуйте, rus blood, Вы писали:


RB>>Возможно (только не бейте!!!), если бы в C++ изначально был встроен сборщик, возникла бы идея сделать ЕГО кроссплатформенным, а не городить с Джавой...


X>Я вот что вам хочу сказать, прежде чем начинать эту тему, надо было прочитать что-нибуль про историю создания С++, ну например "Дизйн и Эволюция С++".


X>Язык С++ позиционировался как язык "С с классами", т.е. язык, такой же низкоуровневый, генерирующий код, такой же быстрый, такой же компактный, такой же не нуждающися в большом рантайме, язык, позволяющий контролировать все и вся, включая захват и освобождение ресурсов, как и язык С, на котором, вперемешку с ассемблером(!), в то время писалось фактически все, и который и по сей день составляет основу кода всех популярных операционных систем и многих известных программ.

Да я не о том, как и зачем создавался C++. Я о том, что было бы с остальными (не с С++!!!), если бы в него добавили еще и сборщик...


X>Так вот, я расскажу, где бы был язык С++, если бы там "изначально был сборщик мусора". Тогда С++ бы так бы и остался чисто академическим проектом среди большого колчиества таких же никому не нужных в то время уродцев.

Вот не факт. Пример с Джавой...


X>Что касается удобства программирования со сборкой мусора, то во всем есть свои плюсы и свои минусы.

Минусы автоматической сборки можно?
Имею скафандр — готов путешествовать!
Re[6]: А вот если бы в C++ был встроен сборщик мусора
От: rus blood Россия  
Дата: 02.09.04 08:28
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, rus blood, Вы писали:


RB>>Просто есть мысля, что именно отсутствие сборщиков в C++ сподвигло создавать языки, где он встроен изначально. По крайней мере, вохможно это был один из движущих мотивов.


VD>Поверь если бы это было так, то никто не городил бы огород, а просто приделал бы ЖЦ к С++. У МС на это точно ресурсов и смелости хватило бы.


Угу. "Взять C++, добавить сборщик, добавить кроссплатформенное исполнение, убрать всякие непонятные, а потому, наверно, ненужные вещи". И что получим? Наверно, Джава... (ну все, точно в "войны" перенесут... )

Ну а если бы сборщик был бы изначально?
Имею скафандр — готов путешествовать!
Re[7]: А вот если бы в C++ был встроен сборщик мусора
От: Кодт Россия  
Дата: 02.09.04 08:34
Оценка: 1 (1) :)))
Здравствуйте, Кодт, Вы писали:

К>Просто к слову. Garbage Collection — это не ЖЦ, а, скорее, ГК. То есть Городская Канализация


Кстати, если пользоваться этой метафорой, то в С++ельской местности канализацию не прокладывают, обходясь более или менее обустроенными индивидуальными удобствами — во дворе (Си) или в пристройке, возможно, "био" (С++).
А вот в городе без центральной канализации (включающей не только сортиры, но и водосборники, и ливневую канализацию) была бы не жизнь.
Перекуём баги на фичи!
Re[7]: А вот если бы в C++ был встроен сборщик мусора
От: adb Россия  
Дата: 02.09.04 09:24
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Угу. "Взять C++, добавить сборщик, добавить кроссплатформенное исполнение, убрать всякие непонятные, а потому, наверно, ненужные вещи". И что получим? Наверно, Джава... (ну все, точно в "войны" перенесут... )


Это вряд ли. Java сильна единым стандартом, который все разработчики разных JVM поддреживают.А про несоответствие стандарту того или иного C++ компилятора можно писать целые тома.
Таким образом, если я напишу библиотеку на Java, она будет гарантированно работать под все поддерживаемые платформы. А на С++ попробуйте тот же boost запихать под EVC3.0/PPC 2002? Хотя казалось бы просто библиотека шаблонов. А что будет с чем-то посеръезнее аля мультиплатформенный GUI или CORBA? Горы ненужной работы, только для того, чтобы она хотя бы компилировалась где нужно.

Так, что не сравнивайте. Java — это единое сообщество, а в С++ каждый сам за себя.
Re[8]: А вот если бы в C++ был встроен сборщик мусора
От: Sergey Россия  
Дата: 02.09.04 10:02
Оценка:
Hello, adb!
You wrote on Thu, 02 Sep 2004 09:24:39 GMT:

a> Это вряд ли. Java сильна единым стандартом, который все разработчики

a> разных JVM поддреживают.А про несоответствие стандарту того или иного
a> C++ компилятора можно писать целые тома. Таким образом, если я напишу
a> библиотеку на Java, она будет гарантированно работать под все
a> поддерживаемые платформы.

Сказки только не надо рассказывать про то, что все JVM одинаковые

With best regards, Sergey.
Posted via RSDN NNTP Server 1.9 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[9]: А вот если бы в C++ был встроен сборщик мусора
От: adb Россия  
Дата: 02.09.04 10:45
Оценка:
Здравствуйте, Sergey, Вы писали:

S>Сказки только не надо рассказывать про то, что все JVM одинаковые


По сравнению с _популярными_ компиляторами С++, все JVM можно считать одинаковыми.
Re[10]: А вот если бы в C++ был встроен сборщик мусора
От: Sergey Россия  
Дата: 02.09.04 11:24
Оценка:
Hello, adb!
You wrote on Thu, 02 Sep 2004 10:45:16 GMT:

S>> Сказки только не надо рассказывать про то, что все JVM одинаковые


a> По сравнению с _популярными_ компиляторами С++, все JVM можно считать

a> одинаковыми.

Разве что по сравнению. Однако фраза "Таким образом, если я напишу
библиотеку на Java, она будет гарантированно работать под все поддерживаемые
платформы" правильней от этого не станет.

With best regards, Sergey.
Posted via RSDN NNTP Server 1.9 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[5]: А вот если бы в C++ был встроен сборщик мусора
От: LaptevVV Россия  
Дата: 02.09.04 11:30
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Здравствуйте, Gaperton, Вы писали:


RB>Еще раз. Флейм не про то, что их можно сделать.

RB>Флейм про то, что было бы, если бы эти сборщики были бы встроены в язык изначально.
RB>В стандарт, так сказать...
Погодите, в третьей версии будут отдельные части (так как слишком большой станет стандарт), и одна из частей явно будет стандартизировать схему сборки мусора для С++
RB>Просто есть мысля, что именно отсутствие сборщиков в C++ сподвигло создавать языки, где он встроен изначально. По крайней мере, вохможно это был один из движущих мотивов.
Да, конечно! Задолбали всех нулевые указатели.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: А вот если бы в C++ был встроен сборщик мусора
От: Зверёк Харьковский  
Дата: 02.09.04 13:20
Оценка: +1
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Кодт, Вы писали:


К>>Просто к слову. Garbage Collection — это не ЖЦ, а, скорее, ГК. То есть Городская Канализация


К>Кстати, если пользоваться этой метафорой, то в С++ельской местности канализацию не прокладывают, обходясь более или менее обустроенными индивидуальными удобствами — во дворе (Си) или в пристройке, возможно, "био" (С++).

К>А вот в городе без центральной канализации (включающей не только сортиры, но и водосборники, и ливневую канализацию) была бы не жизнь.

Кодт, Вы прелесть!

Ушло в мой сборник цитат.
FAQ — це мiй ай-кью!
Re[9]: А вот если бы в C++ был встроен сборщик мусора
От: Stepkh  
Дата: 02.09.04 13:58
Оценка:
Здравствуйте, rus blood, Вы писали:

ния со сборкой мусора, то во всем есть свои плюсы и свои минусы.
RB>Минусы автоматической сборки можно?

Можно, Д.Кнут. Том 1. Раздел 2.5 "Динамическое выделение памяти". Очень популярно все описано
Re[9]: А вот если бы в C++ был встроен сборщик мусора
От: LaptevVV Россия  
Дата: 02.09.04 13:59
Оценка: :)
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Кодт, Вы прелесть!

А вот этого не надо!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: О сборщиках мусора для C/C++
От: Gaperton http://gaperton.livejournal.com
Дата: 02.09.04 14:04
Оценка:
Вдогонку к теме — небольшой материалец.
http://www.iecc.com/gclist/GC-faq.html#GC,%20C,%20and%20C++

What do you mean, garbage collection and C?
Rather than using malloc and free to obtain and reclaim memory, it is possible to link in a garbage collector and allow it to reclaim unused memory automatically. This usually even works if malloc is replaced with the garbage collector's allocator and free is replaced with a do-nothing subroutine. This approach has worked with the X11 library, for instance.
It is also possible to program in a style where free still reclaims storage, but the garbage collector acts as a backstop, preventing leaks that might otherwise occur. This style has also been tested with many applications, and it works well. The advantage here is that where it is easy for the programmer to manage memory, the programmer manages the memory, but where it is not, the garbage collector does the job. This doesn't necessarily run any faster than free-does-nothing, but it may help keep the heap smaller.

How is this possible?
C-compatible garbage collectors know where pointers may generally be found (e.g., "bss", "data", and stack), and maintain heap data structures that allow them to quickly determine what bit patterns might be pointers. Pointers, of course, look like pointers, so this heuristic traces out all memory reachable through pointers. What isn't reached, is reclaimed.

Re: А вот если бы в C++ был встроен сборщик мусора
От: Gaperton http://gaperton.livejournal.com
Дата: 02.09.04 14:19
Оценка:
Хм, прикольно. Все веселее и веселее
Выдержка из инфы к первому GC для С/С++ из списка — The Boehm-Weiser Conservative Collector.

Performance of the nonincremental collector is typically competitive with malloc/free implementations. Both space and time overhead are likely to be only slightly higher for programs written for malloc/free (see Detlefs, Dosser and Zorn's Memory Allocation Costs in Large C and C++ Programs.) For programs allocating primarily very small objects, the collector may be faster; for programs allocating primarily large objects it will be slower. If the collector is used in a multithreaded environment and configured for thread-local allocation, it may in some cases significantly outperform malloc/free allocation in time.

Вот так . Так что это вдобавок и не так медленно, как кажется на первый взгляд . Особенно в многопоточных приложениях .
Re[9]: А вот если бы в C++ был встроен сборщик мусора
От: rus blood Россия  
Дата: 02.09.04 14:48
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Кодт, Вы прелесть!


ЗХ>Ушло в мой сборник цитат.


Когда ждать это в сентенциях Голубицкого?

ЗЫ
Я злой.

Флейм задумывался как пародия на соседний "А вот не было бы Билла...", а ушло все в какие-то заумные дебри...
Имею скафандр — готов путешествовать!
Re[8]: А вот если бы в C++ был встроен сборщик мусора
От: rus blood Россия  
Дата: 02.09.04 15:04
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Кодт, Вы писали:


К>>Просто к слову. Garbage Collection — это не ЖЦ, а, скорее, ГК. То есть Городская Канализация


К>Кстати, если пользоваться этой метафорой, то в С++ельской местности канализацию не прокладывают, обходясь более или менее обустроенными индивидуальными удобствами — во дворе (Си) или в пристройке, возможно, "био" (С++).

К>А вот в городе без центральной канализации (включающей не только сортиры, но и водосборники, и ливневую канализацию) была бы не жизнь.

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

Можно строить все по кирпичикам, по гвоздикам, заранее прокладывая водопровод и канализацию...
А можно строить блочной (подомной, поквартальной, ...) застройкой, пытаясь их состыковать ...
Имею скафандр — готов путешествовать!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.