powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / D дружит с C++ и неплохо
25 сообщений из 97, страница 1 из 4
D дружит с C++ и неплохо
    #39259949
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите в
D Programming Language Specification https://dlang.org/dlangspec.pdf
Chapter 33 Interfacing to C++
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39259968
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

Порадовал пятый пункт:
1. Support the COM interface (but that only works for Windows).
2. Laboriously construct a C wrapper around the C++ code.
3. Use an automated tool such as SWIG to construct a C wrapper.
4. Reimplement the C++ code in the other language.
5. Give up.

Ничего особенного, всё как и везде.
1. Старая, но проверенная годами технология, тянущая свои недостатки.
2. Геморно вручную это делать, особенно, если большой проект и много API нужно выставить в D.
3. Кодогенераторы -- вещь хорошая, но, дурная.
4. Ну клёво, ещё один слой программы для размножения багов и усложнения сопровождения.
5. Да, именно так я и поступлю ;-)
Сейчас хипстерская модная, современная и молодёжная замена плюсам -- это Go и Rust, у которых тоже имеются подобные фичи. P. S. Ни разу не видел вакансий для D разработчиков.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39259973
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZ1. Старая, но проверенная годами технология, тянущая свои недостатки.Не спешите делать выводы.
https://github.com/dlang/dub Package and build management system for D
Позволяет при сборке проекта включать и C# код /если правильно понял его последние фичи/.

NekZ2. Геморно вручную это делать, особенно, если большой проект и много API нужно выставить в D.Наверное ...
А вот возможность использовать в C++ /без особых усилий/ функционал некоторого динамического языка любопытен /тут фишка в том, что по идее это не сложно в использовании/.

См. также:
https://github.com/D-Programming-Language/visuald/releases VisualD - D Plugin for Visual Studio
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39259989
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39259993
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dlang.org/spec/abi.html Application Binary Interface

Так вот COM interface поддержан /может быть кому это и не интересно, но мне частенько бывает нужно/.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260050
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZСейчас хипстерская модная, современная и молодёжная замена плюсам -- это GoЯзык с garbage collection не может являться полноценной заменой C++.

NekZи Rust,Там надо мучаться , чтобы написать двусвязный список, простейшую вещь. Что уж говорить о серьёзных вещах. Можно написать на Rust распределитель памяти, чтобы alloc-ировать им Rust-объекты? (как свой operator new в C++) Можно в Rust-е делать структуры переменного размера, чтобы вдвое уменьшить количество alloc-ирований? (то, что в C++ делается так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
struct item_t {
  item_t* prev;
  item_t* next;
  int len;
  int elems[1]; // на самом деле длины len
};

item_t* create_item(int len) {
  item_t* item = static_cast<item_t*>(malloc(offsetof(item_t, elems) + len * sizeof(int)));
  item->len = len;
  for (int i = 0; i < len; i++) {
    item->elems[i] = 0;
  }
  return item;
}

) Я не знаток Rust-а, но пока берут сильные сомнения, что он станет полноценной заменой C++.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260089
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр СедовЯзык с garbage collection не может являться полноценной заменой C++.

Ну, учитывая современные требования к разработке и целевым ресурсам, ещё как заменяет. Самый яркий пример -- Яндекс, которые переписали бОльшую часть своих сервисов с крестов на Go.

Пётр СедовТам надо мучаться , чтобы написать двусвязный список, простейшую вещь. Что уж говорить о серьёзных вещах. Можно написать на Rust распределитель памяти, чтобы alloc-ировать им Rust-объекты? (как свой operator new в C++) Можно в Rust-е делать структуры переменного размера, чтобы вдвое уменьшить количество alloc-ирований? (то, что в C++ делается так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
struct item_t {
  item_t* prev;
  item_t* next;
  int len;
  int elems[1]; // на самом деле длины len
};

item_t* create_item(int len) {
  item_t* item = static_cast<item_t*>(malloc(offsetof(item_t, elems) + len * sizeof(int)));
  item->len = len;
  for (int i = 0; i < len; i++) {
    item->elems[i] = 0;
  }
  return item;
}

) Я не знаток Rust-а, но пока берут сильные сомнения, что он станет полноценной заменой C++.
Яс ржавкой тоже мало дела имел, но, скажу, что ответ на SO 2014-го года уже морально устарел, так как с того года его синтаксис очень сильно изменился с того момента.
Гуглинг выдал первые результаты такими тынц и тынц . Так что, там нет проблем с линкед-листами.

Насчёт аллокаторов тоже немало в документации написано. Вряд ли это когда либо кому-либо понадобится.

Моё мнение, что ржавка всё же займёт определённую нишу.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260099
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр СедовЯзык с garbage collection не может являться полноценной заменой C++Имеется большая область задач и алгоритмов где примененение скриптовых языков /в частности, использующих garbage collection/ вполне уместна.
Например - GUI.
Зачем бросаться в крайности и обязательно делать акцент на замену?
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260296
chritich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NekZПётр СедовЯзык с garbage collection не может являться полноценной заменой C++.

Ну, учитывая современные требования к разработке и целевым ресурсам, ещё как заменяет. Самый яркий пример -- Яндекс, которые переписали бОльшую часть своих сервисов с крестов на Go.

Пётр СедовТам надо мучаться , чтобы написать двусвязный список, простейшую вещь. Что уж говорить о серьёзных вещах. Можно написать на Rust распределитель памяти, чтобы alloc-ировать им Rust-объекты? (как свой operator new в C++) Можно в Rust-е делать структуры переменного размера, чтобы вдвое уменьшить количество alloc-ирований? (то, что в C++ делается так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
struct item_t {
  item_t* prev;
  item_t* next;
  int len;
  int elems[1]; // на самом деле длины len
};

item_t* create_item(int len) {
  item_t* item = static_cast<item_t*>(malloc(offsetof(item_t, elems) + len * sizeof(int)));
  item->len = len;
  for (int i = 0; i < len; i++) {
    item->elems[i] = 0;
  }
  return item;
}

) Я не знаток Rust-а, но пока берут сильные сомнения, что он станет полноценной заменой C++.
Яс ржавкой тоже мало дела имел, но, скажу, что ответ на SO 2014-го года уже морально устарел, так как с того года его синтаксис очень сильно изменился с того момента.
Гуглинг выдал первые результаты такими тынц и тынц . Так что, там нет проблем с линкед-листами.

Насчёт аллокаторов тоже немало в документации написано. Вряд ли это когда либо кому-либо понадобится.

Моё мнение, что ржавка всё же займёт определённую нишу.
зачем для присвоения они сделали ещё один лишний keyword?
ещё один придурошный яп,
хочеццо прикрепить демотиватор с проф. преображенским но лень искать
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260328
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chritichзачем для присвоения они сделали ещё один лишний keyword?

А можно немного поточнее что имеется в виду?
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260360
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZСамый яркий пример -- Яндекс, которые переписали бОльшую часть своих сервисов с крестов на Go.
Ну, мало ли упоротых.
Вот Л.Торвалдс вообще считает что все должно на С писаться, а С++ хуже и вообще не годится.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260383
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Торвальдс не пишет прикладное ПО. Он кодит свой kernel уже более 20 лет. Поэтому его мнение следует
принимать в контексте.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260414
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТорвальдс не пишет прикладное ПО. Он кодит свой kernel уже более 20 лет. Поэтому его мнение следует
принимать в контексте.
Пишет.
git - это не ядро ))
Да и конкретно прикладное тоже пишет см. Subsurface.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260429
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не хочу спорить на тему Торвальдса. Просто лишний раз подчеркну насколько наши
с ним задачи различаются по способу организации процесса.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260496
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр СедовNekZСейчас хипстерская модная, современная и молодёжная замена плюсам -- это GoЯзык с garbage collection не может являться полноценной заменой C++.

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

Кроме того, никого почему то не смущает то, что все ОС работают только с GC, еще и сваппируемым =)
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260500
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglКроме того, никого почему то не смущает то, что все ОС работают только с GC, еще и сваппируемым =)
Что за фантазии ? ))
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260515
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно Зяма имеет в виду что ОС подчищает мусор как после корректного exit так и по киллу.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260522
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySiemarglКроме того, никого почему то не смущает то, что все ОС работают только с GC, еще и сваппируемым =)
Что за фантазии ? ))
А как подсистема виртуальной памяти реализована и разделение между процессами? Точно так же.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260526
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВозможно Зяма имеет в виду что ОС подчищает мусор как после корректного exit так и по киллу.Да просто после освобождения памяти
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260543
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филососфский спор у нас получается. Я-бы просто акцентировал что само понятие
память в наше время усложнилось и имеет много "уровней услуг" со стороны ОС
и железа. И управляемой памяти будет вокруг нас больше и больше независимо
от наших личных пожеланий или консервативных позиций. И надо с этим как-то
дальше жить.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260584
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonФилососфский спор у нас получается. Я-бы просто акцентировал что само понятие
память в наше время усложнилось и имеет много "уровней услуг" со стороны ОС
и железа. И управляемой памяти будет вокруг нас больше и больше независимо
от наших личных пожеланий или консервативных позиций. И надо с этим как-то
дальше жить.
Компромисс такой:
- в прикладной области GC и автоматическая и управляемая память удобнее и безопаснее
- в системах РВ и системах повышенной надежности (это разные понятия) после инициализации _запрещено_ пользоваться перераспределением динамической памяти
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260676
chritich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NekZchritichзачем для присвоения они сделали ещё один лишний keyword?

А можно немного поточнее что имеется в виду?

Код: sql
1.
2.
3.
let x = 5;

let y = if x == 5 { 10 } else { 15 }; // y: i32
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260678
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чортовы англо-саксы. Вечно они язык под себя подкручивают...
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260715
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chritich
Код: sql
1.
2.
3.
let x = 5;

let y = if x == 5 { 10 } else { 15 }; // y: i32


Слово let напрягает? Это как auto const в C++, а let mut -- просто как auto в данном случае. Заметьте, по-дефолту всё константно. Profit.
...
Рейтинг: 0 / 0
D дружит с C++ и неплохо
    #39260824
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglА как подсистема виртуальной памяти реализована и разделение между процессами? Точно так же.
Не надо путать ваш грязный GC и счетчики ссылок
GC в ОС не нужен, там все ресурсы под контролем.
...
Рейтинг: 0 / 0
25 сообщений из 97, страница 1 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / D дружит с C++ и неплохо
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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