Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
mayton, Не сишник, а плюсовик-затейник, прошу не путать )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 12:54 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
CEMbegorychда как грязи ))) например VCL с TObject, или Qt с QObject - бери и пользуйся ))) Ненене, там если сказать new потом надо говорить delete.только самому главному. Остальное, что в него входит, он автоматически удалит. А для него надо shared_ptr, и усё. Никакой мусоросборник не сравнится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 18:16 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
SiemarglПётр Седовпропущено... Язык с garbage collection не может являться полноценной заменой C++. D может, там выборочно отключаемый GC. Кроме того, никого почему то не смущает то, что все ОС работают только с GC, еще и сваппируемым =) Последняя "стандартная" библиотека ( https://dlang.org/phobos/ ) D использует сборщик мусора. Надо полагать, ты не станешь доказывать, что вполне можно обойтись без нее? Модератор: Исправил ссылку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 19:58 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Товарищ ефрейтор, сдуру можно и муй сломать! https://dlang.org/spec/garbage.html Им можно управлять, можно понимать, где он применяется а где нет, а можно контролировать компилятором что ты его не используешь: @nogc Attribute https://dlang.org/spec/attribute.html#nogc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 23:09 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
SiemarglТоварищ ефрейтор, сдуру можно и муй сломать! ... Я не понимаю преимуществ наличия GC для языка, который позиционируется "вторым вашим ЯП", если первым языком был C++. После полного контроля над ситуацией начать надеяться на то, что все сделает какой-то GC и при этом не станет подвешивать вычислительный процесс в критически важные моменты времени? Хотя, если начать использовать D после питона или явы - то, наверное, сойдет: https://dlang.org/overview.html#not_for_d ... Ошибки, связанные с утечками памяти, чаще всего вовсе не в том, что созданный объект перестал быть доступен и при этом не освободил выделенную под него память (такие вещи программистом отслеживаются на автомате). А, например, в том, что объект был создан, на него создана ссылка из долгоживущего объекта-контейнера, а про созданный объект просто "забыли". Пример: хранишь ссылки на объекты в хэштэйбле. В процессе работы забываешь очистить табличку, ссылки на объекты физически есть, но они не доступны - например, потому, что у тебя уже нет ключей для доступа к элементам хэштейбла. GC ничего делать не станет, а память пухнет. ... Ну, ладно. А RAII? Ну вот, создал я класс, инкапсулирующий работу с разделяемыми (и ограниченными по объему) ресурсами операционной системы. Таких ресурсов в системе - немеряно. Обычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже. "Утечка" открытого файла ничуть не безопаснее для программы, чем утечка памяти. Ну да, костыли есть. Которые нужно не забыть применять. Но вопрос - вот нафига? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 02:08 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Товарищ ефрейтор, Вот RAII в D сделан просто великолепно. Без деструкторов. Не знаешь темы - лучше не влезай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 02:37 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
SiemarglВот RAII в D сделан просто великолепно. Без деструкторов. Не знаешь темы - лучше не влезай. То, что без деструкторов - это не RAII, по определению )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 03:13 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Товарищ ефрейторА тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет.Зачем вы приводите эти и другие подобные этому примеры? Ни какой супер язык программирования не решит проблему создания плохих алгоритмом и программ. Поэтому все ваши "доводы" можно перенести практически на любой существующий язык программирования. Но от этого они хуже не станут ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 09:21 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglВот RAII в D сделан просто великолепно. Без деструкторов. Не знаешь темы - лучше не влезай. То, что без деструкторов - это не RAII, по определению ))Ну не совсем без деструкторов, скажем, а не только с их помощью. Там прямой вызов RAII с помощью либо операнда scope, либо аттрибута scope (вот класс с аттрибутом это полный аналог с++ деструкции) https://dlang.org/comparison.html тут см раздел reliability ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 09:48 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Почитал https://dlang.org/phobos/ . Неплохо. Пока нет времени на эксперименты, но желание использовать D в связке с C++ определенно имеется. В связи с эти вопрос /скорее он затрагивает тематику эффективности D/. В STL к сожалению алгоритмы, использованные для создания объектов мягко говоря - слабенькие. Например https://code.google.com/archive/p/cpp-btree/wikis/UsageInstructions.wiki Насколько /например в сравнении C++/ эффективна к примеру https://dlang.org/phobos/? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 10:10 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Владимир2012Товарищ ефрейторА тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет.Зачем вы приводите эти и другие подобные этому примеры? Ни какой супер язык программирования не решит проблему создания плохих алгоритмом и программ. Поэтому все ваши "доводы" можно перенести практически на любой существующий язык программирования. Но от этого они хуже не станут ... Что за ботоподобный стиль общения? Я как раз говорю о врожденных недостатках именно D. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 12:50 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
SiemarglТам прямой вызов RAII с помощью либо операнда scope, либо аттрибута scope (вот класс с аттрибутом это полный аналог с++ деструкции) Суть RAII в том что его не надо явно вызывать. Что исключает утечки из-за ошибки программиста. Реализовать RAII можно только с помощью деструкторов. А scope(exit) можно и забыть поставить или опечатку в нем сделать. Это не RAII ни в каком виде. С учетом того что scope - рекомендованная техника взамен RAII, то это значит что D взял курс на массовое использование GC. Ну значит быстрее умрет )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 15:27 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Кроме того, семантику shared ресурса с помощью scope нельзя ни в каком виде реализовать. Все равно нужен счетчик ссылок и деструктор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 15:31 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Товарищ ефрейторЯ не понимаю преимуществ наличия GC для языка, который позиционируется "вторым вашим ЯП", если первым языком был C++. После полного контроля над ситуацией начать надеяться на то, что все сделает какой-то GC и при этом не станет подвешивать вычислительный процесс в критически важные моменты времени? Товарищ, твои сведения о GC устарели лет на 10. Уже есть новые типы GC которые регулируются по MaxGCPauseMillis и сам решаешь исходя из класса твоего приложения, что тебе нужно - low latency или максимум thoughput. Почитай пожалуйста статьи и обзоры того что уже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 15:36 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Товарищ ефрейторА, например, в том, что объект был создан, на него создана ссылка из долгоживущего объекта-контейнера, а про созданный объект просто "забыли". Пример: хранишь ссылки на объекты в хэштэйбле. В процессе работы забываешь очистить табличку, ссылки на объекты физически есть, но они не доступны - например, потому, что у тебя уже нет ключей для доступа к элементам хэштейбла. GC ничего делать не станет, а память пухнет. Ситуация которую ты смоделировал не является утечкой. Если долгоживующий объект-контейнер достижим из корневого объекта - то все ОК он никуда не утёк и он контролируется. После очистки долгоживущего контейнера все будет корректно убрано. Тоже самое касается хештабличек. Ситуацию с программистом у которого склероз мы рассматривать не будем т.к. это другой класс ошибок и он не имеет отношения ни к С++ ни к D ни к другим ЯП с уборкой мусора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 15:47 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Товарищ ефрейторОбычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже. в C# нужно своевременно звать Marshal.ReleaseComObject говнокод получается качественный, проще на c++ писать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 15:52 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Товарищ ефрейторНу, ладно. А RAII? Ну вот, создал я класс, инкапсулирующий работу с разделяемыми (и ограниченными по объему) ресурсами операционной системы. Таких ресурсов в системе - немеряно. Обычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже. "Утечка" открытого файла ничуть не безопаснее для программы, чем утечка памяти. Ну да, костыли есть. Которые нужно не забыть применять. Но вопрос - вот нафига? Тут - какая-то сборная солянка технологий. При чем тут COM-сервер? Если это Dlang - то там есть класс File и метод close. Императивно закрывай файл в тот момент когда он тебе уже не нужен и не будет проблем. И деструктор не нужен. Ситуацию брошенного exception в течение работы с файлом - в DLang я не знаю. Давай рассмотрим отдельно и смоделируем. Если там есть AutoClosable то опять-же должно-срабоать авто-закрытие ресурса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 15:57 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
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++, разработки забрасывались. Что-то там еще делается, но пик интереса к проекту давно позади. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 16:35 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
ИзопропилТоварищ ефрейторОбычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже. в C# нужно своевременно звать Marshal.ReleaseComObject говнокод получается качественный, проще на c++ писать Да, я в т.ч. и об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 16:37 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Товарищ ефрейтор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 своя ниша, не особо конкурирующая с С++. Он быстрее питона шарпа и явы, и безопаснее чем С++. Конечно, со своими недостатками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 19:04 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Непонятно, в чем ты усмотрел сходство D с go. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 20:39 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
SiemarglGo и Rust. Это вообще не взлетит )) Ну может Go продержится немного, но только благодаря большому баблу Гугла. Как только в Гугле проведут очередное закрытие убыточных проектов, про Go забудут. А Rust это вообще типа хаскеля по применимости. Все якобы зашибись, но знают как на нем писать только его разработчики )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 21:01 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНу может Go продержится немного, но только благодаря большому баблу Гугла. Как только в Гугле проведут очередное закрытие убыточных проектов, про Go забудут. Его закрытие невозможно без support. Тонна кода уже написана. А на что мигрировать? На Python? Так это шаг назад. Они от питона уходили. И что вернутся обратно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 21:47 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonЕго закрытие невозможно без support. Гугол это никогда не останавливало. Свои внутренние сервисы перепишут. А на остальных им наплевать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 21:52 |
|
||
|
|

start [/forum/topic.php?fid=57&startmsg=39261733&tid=2018487]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 164ms |

| 0 / 0 |
