powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / D дружит с C++ и неплохо
25 сообщений из 97, страница 3 из 4
D дружит с C++ и неплохо
    #39261733
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Не сишник, а плюсовик-затейник, прошу не путать ))
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262068
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbegorychда как грязи ))) например VCL с TObject, или Qt с QObject - бери и пользуйся ))) Ненене, там если сказать new потом надо говорить delete.только самому главному. Остальное, что в него входит, он автоматически удалит. А для него надо shared_ptr, и усё. Никакой мусоросборник не сравнится.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262105
Фотография Товарищ ефрейтор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglПётр Седовпропущено...
Язык с garbage collection не может являться полноценной заменой C++.

D может, там выборочно отключаемый GC.

Кроме того, никого почему то не смущает то, что все ОС работают только с GC, еще и сваппируемым =)

Последняя "стандартная" библиотека ( https://dlang.org/phobos/ ) D использует сборщик мусора.
Надо полагать, ты не станешь доказывать, что вполне можно обойтись без нее?

Модератор: Исправил ссылку
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262149
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ ефрейтор, сдуру можно и муй сломать!

https://dlang.org/spec/garbage.html

Им можно управлять, можно понимать, где он применяется а где нет,
а можно контролировать компилятором что ты его не используешь: @nogc Attribute
https://dlang.org/spec/attribute.html#nogc
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262178
Фотография Товарищ ефрейтор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglТоварищ ефрейтор, сдуру можно и муй сломать!
...

Я не понимаю преимуществ наличия GC для языка, который позиционируется "вторым вашим ЯП", если первым языком был C++.
После полного контроля над ситуацией начать надеяться на то, что все сделает какой-то GC и при этом не станет подвешивать вычислительный процесс в критически важные моменты времени?

Хотя, если начать использовать D после питона или явы - то, наверное, сойдет:
https://dlang.org/overview.html#not_for_d
...
Ошибки, связанные с утечками памяти, чаще всего вовсе не в том, что созданный объект перестал быть доступен и при этом не освободил выделенную под него память (такие вещи программистом отслеживаются на автомате).
А, например, в том, что объект был создан, на него создана ссылка из долгоживущего объекта-контейнера, а про созданный объект просто "забыли".
Пример: хранишь ссылки на объекты в хэштэйбле. В процессе работы забываешь очистить табличку, ссылки на объекты физически есть, но они не доступны - например, потому, что у тебя уже нет ключей для доступа к элементам хэштейбла. GC ничего делать не станет, а память пухнет.
...
Ну, ладно. А RAII? Ну вот, создал я класс, инкапсулирующий работу с разделяемыми (и ограниченными по объему) ресурсами операционной системы. Таких ресурсов в системе - немеряно.
Обычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже.
"Утечка" открытого файла ничуть не безопаснее для программы, чем утечка памяти.
Ну да, костыли есть. Которые нужно не забыть применять.
Но вопрос - вот нафига?
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262181
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ ефрейтор,

Вот RAII в D сделан просто великолепно. Без деструкторов.
Не знаешь темы - лучше не влезай.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262186
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglВот RAII в D сделан просто великолепно. Без деструкторов.
Не знаешь темы - лучше не влезай.
То, что без деструкторов - это не RAII, по определению ))
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262195
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ ефрейторА тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет.Зачем вы приводите эти и другие подобные этому примеры?
Ни какой супер язык программирования не решит проблему создания плохих алгоритмом и программ.
Поэтому все ваши "доводы" можно перенести практически на любой существующий язык программирования.
Но от этого они хуже не станут ...
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262202
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySiemarglВот RAII в D сделан просто великолепно. Без деструкторов.
Не знаешь темы - лучше не влезай.
То, что без деструкторов - это не RAII, по определению ))Ну не совсем без деструкторов, скажем, а не только с их помощью.
Там прямой вызов RAII с помощью либо операнда scope, либо аттрибута scope (вот класс с аттрибутом это полный аналог с++ деструкции)

https://dlang.org/comparison.html тут см раздел reliability
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262212
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал https://dlang.org/phobos/ .
Неплохо.

Пока нет времени на эксперименты, но желание использовать D в связке с C++ определенно имеется.
В связи с эти вопрос /скорее он затрагивает тематику эффективности D/.
В STL к сожалению алгоритмы, использованные для создания объектов мягко говоря - слабенькие.
Например https://code.google.com/archive/p/cpp-btree/wikis/UsageInstructions.wiki

Насколько /например в сравнении C++/ эффективна к примеру https://dlang.org/phobos/?
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262247
Фотография Товарищ ефрейтор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Товарищ ефрейторА тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет.Зачем вы приводите эти и другие подобные этому примеры?
Ни какой супер язык программирования не решит проблему создания плохих алгоритмом и программ.
Поэтому все ваши "доводы" можно перенести практически на любой существующий язык программирования.
Но от этого они хуже не станут ...
Что за ботоподобный стиль общения?
Я как раз говорю о врожденных недостатках именно D.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262286
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglТам прямой вызов RAII с помощью либо операнда scope, либо аттрибута scope (вот класс с аттрибутом это полный аналог с++ деструкции)
Суть RAII в том что его не надо явно вызывать. Что исключает утечки из-за ошибки программиста.
Реализовать RAII можно только с помощью деструкторов.

А scope(exit) можно и забыть поставить или опечатку в нем сделать. Это не RAII ни в каком виде.
С учетом того что scope - рекомендованная техника взамен RAII, то это значит что D взял курс на массовое использование GC.
Ну значит быстрее умрет ))
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262288
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того, семантику shared ресурса с помощью scope нельзя ни в каком виде реализовать.
Все равно нужен счетчик ссылок и деструктор.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262290
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ ефрейторЯ не понимаю преимуществ наличия GC для языка, который позиционируется "вторым вашим ЯП", если первым языком был C++.
После полного контроля над ситуацией начать надеяться на то, что все сделает какой-то GC и при этом не станет подвешивать вычислительный процесс в критически важные моменты времени?

Товарищ, твои сведения о GC устарели лет на 10. Уже есть новые типы GC которые регулируются
по MaxGCPauseMillis и сам решаешь исходя из класса твоего приложения, что тебе нужно - low latency
или максимум thoughput.

Почитай пожалуйста статьи и обзоры того что уже есть.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262296
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ ефрейторА, например, в том, что объект был создан, на него создана ссылка из долгоживущего объекта-контейнера, а про созданный объект просто "забыли".
Пример: хранишь ссылки на объекты в хэштэйбле. В процессе работы забываешь очистить табличку, ссылки на объекты физически есть, но они не доступны - например, потому, что у тебя уже нет ключей для доступа к элементам хэштейбла. GC ничего делать не станет, а память пухнет.

Ситуация которую ты смоделировал не является утечкой. Если долгоживующий объект-контейнер достижим
из корневого объекта - то все ОК он никуда не утёк и он контролируется. После очистки долгоживущего
контейнера все будет корректно убрано.

Тоже самое касается хештабличек.

Ситуацию с программистом у которого склероз мы рассматривать не будем т.к. это другой
класс ошибок и он не имеет отношения ни к С++ ни к D ни к другим ЯП с уборкой мусора.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262300
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ ефрейторОбычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже.
в C# нужно своевременно звать Marshal.ReleaseComObject
говнокод получается качественный, проще на c++ писать
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262302
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ ефрейторНу, ладно. А RAII? Ну вот, создал я класс, инкапсулирующий работу с разделяемыми (и ограниченными по объему) ресурсами операционной системы. Таких ресурсов в системе - немеряно.
Обычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже.
"Утечка" открытого файла ничуть не безопаснее для программы, чем утечка памяти.
Ну да, костыли есть. Которые нужно не забыть применять.
Но вопрос - вот нафига?
Тут - какая-то сборная солянка технологий. При чем тут COM-сервер?
Если это Dlang - то там есть класс File и метод close. Императивно
закрывай файл в тот момент когда он тебе уже не нужен и не будет проблем.
И деструктор не нужен. Ситуацию брошенного exception в течение
работы с файлом - в DLang я не знаю. Давай рассмотрим отдельно и смоделируем.
Если там есть AutoClosable то опять-же должно-срабоать авто-закрытие ресурса.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262313
Фотография Товарищ ефрейтор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySiemarglТам прямой вызов RAII с помощью либо операнда scope, либо аттрибута scope (вот класс с аттрибутом это полный аналог с++ деструкции)
Суть RAII в том что его не надо явно вызывать. Что исключает утечки из-за ошибки программиста.
Реализовать RAII можно только с помощью деструкторов.

А scope(exit) можно и забыть поставить или опечатку в нем сделать. Это не RAII ни в каком виде.
С учетом того что scope - рекомендованная техника взамен RAII, то это значит что D взял курс на массовое использование GC.
Ну значит быстрее умрет ))
D lang, можно сказать - уже умер. Поначалу было много энтузиастов, начаты работы по портирование известных библиотек, строились IDE наподобие известных RAD, начинались новые проекты на D. А потом - бабах, разработчик решил, что D это больше не D, а D1 с потерей совместимости, теперь все будет по-другому, с GC, старая библиотека Tango больше не развивается, будет Phobos, потеряна совместимость.
В итоге народ просто ушел, проекты, начатые на D, спешно переписывались на C++, разработки забрасывались.
Что-то там еще делается, но пик интереса к проекту давно позади.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262314
Фотография Товарищ ефрейтор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилТоварищ ефрейторОбычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже.
в C# нужно своевременно звать Marshal.ReleaseComObject
говнокод получается качественный, проще на c++ писать
Да, я в т.ч. и об этом.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262351
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ ефрейторD lang, можно сказать - уже умер. Поначалу было много энтузиастов, начаты работы по портирование известных библиотек, строились IDE наподобие известных RAD, начинались новые проекты на D. А потом - бабах, разработчик решил, что D это больше не D, а D1 с потерей совместимости, теперь все будет по-другому, с GC, старая библиотека Tango больше не развивается, будет Phobos, потеряна совместимость.
В итоге народ просто ушел, проекты, начатые на D, спешно переписывались на C++, разработки забрасывались.
Что-то там еще делается, но пик интереса к проекту давно позади.
Это устаревшая информация.
Развивается, интересуются. Движение на трекерах есть.

http://www.tiobe.com/tiobe_index?page=D

Далеко впереди чем сходные Go и Rust.

Из интересного недавно - зарезилился LDC (LLVM-основанный компилятор).
Собственно, GDC и LDC решили достаточно больную проблему производительности. Ну и 64-бит.

Вот последние движение Dconf2016 https://habrahabr.ru/post/303658/

IMHO, у D своя ниша, не особо конкурирующая с С++.

Он быстрее питона шарпа и явы, и безопаснее чем С++.
Конечно, со своими недостатками.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262373
Фотография Товарищ ефрейтор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, в чем ты усмотрел сходство D с go.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262381
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglGo и Rust.
Это вообще не взлетит ))
Ну может Go продержится немного, но только благодаря большому баблу Гугла.
Как только в Гугле проведут очередное закрытие убыточных проектов, про Go забудут.
А Rust это вообще типа хаскеля по применимости. Все якобы зашибись, но знают как на нем писать только его разработчики ))
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262403
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНу может Go продержится немного, но только благодаря большому баблу Гугла.
Как только в Гугле проведут очередное закрытие убыточных проектов, про Go забудут.

Его закрытие невозможно без support. Тонна кода уже написана. А на что
мигрировать? На Python? Так это шаг назад. Они от питона уходили. И что вернутся
обратно?
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262406
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕго закрытие невозможно без support.
Гугол это никогда не останавливало.
Свои внутренние сервисы перепишут. А на остальных им наплевать.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39262408
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Дело не в поддержке. Гугл просто "пробивает" идеи по коммунити и смотрит, что взлетит.

На чем делать бабки.

Это уже далеко не первая инкарнация.
...
Рейтинг: 0 / 0
25 сообщений из 97, страница 3 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / D дружит с C++ и неплохо
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]