Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Посмотрите в D Programming Language Specification https://dlang.org/dlangspec.pdf Chapter 33 Interfacing to C++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 21:23 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Владимир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 разработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 22:09 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 22:25 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
http://dlang.org/spec/iasm.html Inline Assembler ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 23:06 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
http://dlang.org/spec/abi.html Application Binary Interface Так вот COM interface поддержан /может быть кому это и не интересно, но мне частенько бывает нужно/. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 23:19 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
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. ) Я не знаток Rust-а, но пока берут сильные сомнения, что он станет полноценной заменой C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 02:57 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Пётр СедовЯзык с 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. ) Я не знаток Rust-а, но пока берут сильные сомнения, что он станет полноценной заменой C++. Яс ржавкой тоже мало дела имел, но, скажу, что ответ на SO 2014-го года уже морально устарел, так как с того года его синтаксис очень сильно изменился с того момента. Гуглинг выдал первые результаты такими тынц и тынц . Так что, там нет проблем с линкед-листами. Насчёт аллокаторов тоже немало в документации написано. Вряд ли это когда либо кому-либо понадобится. Моё мнение, что ржавка всё же займёт определённую нишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 08:18 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Пётр СедовЯзык с garbage collection не может являться полноценной заменой C++Имеется большая область задач и алгоритмов где примененение скриптовых языков /в частности, использующих garbage collection/ вполне уместна. Например - GUI. Зачем бросаться в крайности и обязательно делать акцент на замену? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 08:44 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
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. ) Я не знаток Rust-а, но пока берут сильные сомнения, что он станет полноценной заменой C++. Яс ржавкой тоже мало дела имел, но, скажу, что ответ на SO 2014-го года уже морально устарел, так как с того года его синтаксис очень сильно изменился с того момента. Гуглинг выдал первые результаты такими тынц и тынц . Так что, там нет проблем с линкед-листами. Насчёт аллокаторов тоже немало в документации написано. Вряд ли это когда либо кому-либо понадобится. Моё мнение, что ржавка всё же займёт определённую нишу. зачем для присвоения они сделали ещё один лишний keyword? ещё один придурошный яп, хочеццо прикрепить демотиватор с проф. преображенским но лень искать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 12:51 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
chritichзачем для присвоения они сделали ещё один лишний keyword? А можно немного поточнее что имеется в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 13:17 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
NekZСамый яркий пример -- Яндекс, которые переписали бОльшую часть своих сервисов с крестов на Go. Ну, мало ли упоротых. Вот Л.Торвалдс вообще считает что все должно на С писаться, а С++ хуже и вообще не годится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 13:47 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Торвальдс не пишет прикладное ПО. Он кодит свой kernel уже более 20 лет. Поэтому его мнение следует принимать в контексте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 14:28 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonТорвальдс не пишет прикладное ПО. Он кодит свой kernel уже более 20 лет. Поэтому его мнение следует принимать в контексте. Пишет. git - это не ядро )) Да и конкретно прикладное тоже пишет см. Subsurface. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 15:01 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Я не хочу спорить на тему Торвальдса. Просто лишний раз подчеркну насколько наши с ним задачи различаются по способу организации процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 15:18 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Пётр СедовNekZСейчас хипстерская модная, современная и молодёжная замена плюсам -- это GoЯзык с garbage collection не может являться полноценной заменой C++. D может, там выборочно отключаемый GC. Кроме того, никого почему то не смущает то, что все ОС работают только с GC, еще и сваппируемым =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 15:53 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
SiemarglКроме того, никого почему то не смущает то, что все ОС работают только с GC, еще и сваппируемым =) Что за фантазии ? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 15:55 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Возможно Зяма имеет в виду что ОС подчищает мусор как после корректного exit так и по киллу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 16:03 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglКроме того, никого почему то не смущает то, что все ОС работают только с GC, еще и сваппируемым =) Что за фантазии ? )) А как подсистема виртуальной памяти реализована и разделение между процессами? Точно так же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 16:06 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonВозможно Зяма имеет в виду что ОС подчищает мусор как после корректного exit так и по киллу.Да просто после освобождения памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 16:07 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Филососфский спор у нас получается. Я-бы просто акцентировал что само понятие память в наше время усложнилось и имеет много "уровней услуг" со стороны ОС и железа. И управляемой памяти будет вокруг нас больше и больше независимо от наших личных пожеланий или консервативных позиций. И надо с этим как-то дальше жить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 16:21 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonФилососфский спор у нас получается. Я-бы просто акцентировал что само понятие память в наше время усложнилось и имеет много "уровней услуг" со стороны ОС и железа. И управляемой памяти будет вокруг нас больше и больше независимо от наших личных пожеланий или консервативных позиций. И надо с этим как-то дальше жить. Компромисс такой: - в прикладной области GC и автоматическая и управляемая память удобнее и безопаснее - в системах РВ и системах повышенной надежности (это разные понятия) после инициализации _запрещено_ пользоваться перераспределением динамической памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 17:04 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
NekZchritichзачем для присвоения они сделали ещё один лишний keyword? А можно немного поточнее что имеется в виду? Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 18:28 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Чортовы англо-саксы. Вечно они язык под себя подкручивают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 18:33 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
chritich Код: sql 1. 2. 3. Слово let напрягает? Это как auto const в C++, а let mut -- просто как auto в данном случае. Заметьте, по-дефолту всё константно. Profit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 19:26 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
SiemarglА как подсистема виртуальной памяти реализована и разделение между процессами? Точно так же. Не надо путать ваш грязный GC и счетчики ссылок GC в ОС не нужен, там все ресурсы под контролем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2016, 22:42 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
NekZПётр СедовЯзык с garbage collection не может являться полноценной заменой C++. Ну, учитывая современные требования к разработке и целевым ресурсам, ещё как заменяет.Представьте: вы пишите на Go библиотеку для работы с png-файлами, аналог libpng. Go-шный garbage collector сразу сходу резервирует 768 мб виртуального адресного пространства (в 32-битном режиме). Как вы думаете, разработчики browser-ов будут использовать вашу библиотеку? (если она окажется быстрее libpng) Сможет Go стать полноценной заменой C++? NekZСамый яркий пример -- Яндекс, которые переписали бОльшую часть своих сервисов с крестов на Go. У них же наверняка миллионы строк кода. Они зачем-то их начали на Go переписывать? Сильно сомневаюсь. Есть какие-нибудь официальные заявления на этот счёт? NekZЯс ржавкой тоже мало дела имел, но, скажу, что ответ на SO 2014-го года уже морально устарел, так как с того года его синтаксис очень сильно изменился с того момента.Добавили ещё пару-тройку разновидностей указателей? NekZГуглинг выдал первые результаты такими тынц И где там метод, который удаляет элемент из середины списка? (аналог C++-ного std::list::erase) NekZи тынц .Так там односвязный список. С этим как раз в Rust всё просто: каждый node владеет следующим node-ом. А вот когда пытаемся сделать двусвязный список, то получается, что соседние node-ы циклически ссылаются друг на друга, и начинается борьба с Rust-ом, которая требует хорошего знания языка. NekZТак что, там нет проблем с линкед-листами.С двусвязными -- есть. NekZНасчёт аллокаторов тоже немало в документации написано.И где там распределитель памяти на Rust-е? Там просто написано про два варианта: alloc_system (C-шные malloc/free) и alloc_jemalloc (написан на C). NekZВряд ли это когда либо кому-либо понадобится.А если я хочу, чтобы в каждом thread-е был свой heap? (чтобы не тратить время на синхронизацию) А если мне нужен heap, который перемещает блоки памяти? (чтобы бороться с фрагментацией) NekZМоё мнение, что ржавка всё же займёт определённую нишу.Rust-ление несовершеннолетних программистов? Есть мнение, что написание чего-то нетривиального на Rust-е -- это борьба с языком. Так что, подозреваю, ждёт его судьба Haskell: станет игрушкой программистов-интеллектуалов, а вот рабочей лошадкой миллионов -- вряд ли. Владимир2012Зачем бросаться в крайности и обязательно делать акцент на замену?Я отвечал на сообщение NekZ, в котором были слова «замена плюсам». SiemarglПётр Седовпропущено... Язык с garbage collection не может являться полноценной заменой C++. D может, там выборочно отключаемый GC.D пытался усидеть на двух стульях (ручное управление памятью, автоматическое управление памятью), но в конечном счёте скатился к GC, потому что так все библиотеки написаны. Но на территории GC-языков, D конкурирует с титанами -- Java и C#, а это почти безнадёжное дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 12:52 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Пётр СедовПредставьте: вы пишите на Go библиотеку для работы с png-файлами, аналог libpng. Go-шный garbage collector сразу сходу резервирует 768 мб виртуального адресного пространства (в 32-битном режиме). Как вы думаете, разработчики browser-ов будут использовать вашу библиотеку? (если она окажется быстрее libpng) Сможет Go стать полноценной заменой C++? Так... Давайте сразу разграничим ху-из-ху. У меня нет опыта с Go, но, я полагаю, что раз уж в его разработке принимал участие дедушка Керниган, то там есть средства для работы в низкоуровневом режиме. Откуда данный про 768 МБ? Для 32-бит пишите на плюсах, учитывая, что это скоро отвалится. Кстати... Пётр Седов У них же наверняка миллионы строк кода. Они зачем-то их начали на Go переписывать? Сильно сомневаюсь. Есть какие-нибудь официальные заявления на этот счёт? https://events.yandex.ru/lib/talks/2222/ Пётр СедовДобавили ещё пару-тройку разновидностей указателей? Нет, значительно улучшили механизм заимствований и безопасность. Там в ногу себе выстрелить можно только в unsafe-mode. Пётр СедовИ где там метод, который удаляет элемент из середины списка? (аналог C++-ного std::list::erase) Блин, ну всё, теперь нельзя использовать язык из-за того, что ещё не добавили что-то в стандартную библиотеку. Пётр СедовТак там односвязный список. С этим как раз в Rust всё просто: каждый node владеет следующим node-ом. А вот когда пытаемся сделать двусвязный список, то получается, что соседние node-ы циклически ссылаются друг на друга, и начинается борьба с Rust-ом, которая требует хорошего знания языка. Это пример. В стандартной библиотеке https://doc.rust-lang.org/std/collections/struct.LinkedList.html это двусвязный список. Пётр СедовС двусвязными -- есть. Ок Пётр СедовИ где там распределитель памяти на Rust-е? Там просто написано про два варианта: alloc_system (C-шные malloc/free) и alloc_jemalloc (написан на C). Честно скажу, вот сколько писал на крестах (6 лет) в продакшне -- ни разу не понадобился кастомный аллокатор. Язык нацелен на безопасность. Хотите супер-кастомный аллокатор и пушку стрелять себе в ноги -- используйте C/C++. Ну, или, опять же, никто не запрещает реализовать их на C/C++ в отдельной либе и в unsafe-mode дёргать из ржавки, обмазав ржавыми макросами. Пётр СедовА если я хочу, чтобы в каждом thread-е был свой heap? (чтобы не тратить время на синхронизацию) А если мне нужен heap, который перемещает блоки памяти? (чтобы бороться с фрагментацией) Слишком специфично. Выносите такой код в C/C++. Пётр СедовRust-ление несовершеннолетних программистов? Есть мнение, что написание чего-то нетривиального на Rust-е -- это борьба с языком. Так что, подозреваю, ждёт его судьба Haskell: станет игрушкой программистов-интеллектуалов, а вот рабочей лошадкой миллионов -- вряд ли. Не, язык наоборот приучает писать безопасный код и всегда тыкает носом в какие-то мелкие оплошности. По-началу, да, это покажется борьбой с языком. В дальнейшем уже будете благодарить его за это ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 14:00 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Выше было остроумно подмечено что ОС заменяет GC. Это хорошая аналогия но не забываем про protected mode. У каждого процесса свой кусочек памяти. И любой спор на тему GC КМК должен начинаться с определений. Что мы называем памятью. Какая она. e.t.c. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 14:36 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
NekZТак... Давайте сразу разграничим ху-из-ху.Расставим точки над ё-моё :). NekZУ меня нет опыта с Go,У меня тоже. NekZно, я полагаю, что раз уж в его разработке принимал участие дедушка Керниган, то там есть средства для работы в низкоуровневом режиме.И на Go можно написать распределитель памяти? NekZОткуда данный про 768 МБ?// https://github.com/cztomczak/cef2go/issues/6#issuecomment-34934674 It turns out that Go requires 768 MB of continous memory space for its garbage collector to work on Windows.// https://habrahabr.ru/post/141722/#comment_4739665 На самом деле, да реально резервируются 512 + 256 = 768 мегов. NekZДля 32-бит пишите на плюсах, учитывая, что это скоро отвалится.Не скоро. NekZ Кстати... Написать загрузчик png-картинок можно на любом языке. Но вот разработчики серьёзных программ будут использовать ту библиотеку, которая выставляет C-шный API и потребляет мало памяти. То есть libpng. NekZПётр Седов У них же наверняка миллионы строк кода. Они зачем-то их начали на Go переписывать? Сильно сомневаюсь. Есть какие-нибудь официальные заявления на этот счёт? https://events.yandex.ru/lib/talks/2222/ Насколько я понял из презентации, у Яндекса есть сервис Cocaine, в котором код был написан на C++ и Python, и Python-овскую часть переписали на Go: презентация Внедрение Go в Cocaine. ... Выводы. Плюсы. ... Питонщики с радостью переходят на Go ... Выводы. Минусы. ... Плюсовики переходят на Go с трудом Выводы. Результаты. В 2 раза медленнее C++ и в 8-15 раз быстрее python * ... * на наших задачах Насколько я понял, речь не идёт о том, что «Яндекс ... переписали бОльшую часть своих сервисов с крестов на Go.». NekZПётр СедовИ где там метод, который удаляет элемент из середины списка? (аналог C++-ного std::list::erase) Блин, ну всё, теперь нельзя использовать язык из-за того, что ещё не добавили что-то в стандартную библиотеку.Стандартный контейнер, который реализует двусвязный список, но не даёт возможности удалить элемент из середины, -- это как-то подозрительно. Может я просто не нашёл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 15:47 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Пётр СедовПредставьте: вы пишите на Go библиотеку для работы с png-файлами, аналог libpng. Go-шный garbage collector сразу сходу резервирует 768 мб виртуального адресного пространства (в 32-битном режиме). Как вы думаете, разработчики browser-ов будут использовать вашу библиотеку? (если она окажется быстрее libpng) Сможет Go стать полноценной заменой C++? Я вобщем-то не понял этот тезис. При чем здесь 768 мб? Это что разработчик написал? Зачем написал? Пусть перепишет. Или здесь звучит какой-то фундаментальный тезис о том что Go-шный GC что то не может сделать в принципе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 16:55 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
mayton, не знаю как сейчас, но раньше у Go была такая проблема, и о ней в Интернете достаточно широко писали. // https://groups.google.com/d/msg/golang-dev/wFW_ppyLZTM/4fJXzuROV1IJ In "32-bit mode", Go allocates 768 MB via mmap -- 256MB of this is a bitmap, enough to track 2 GB, and 512MB is the initial heap. // https://github.com/golang/go/issues/9311#issue-51920811 On 32-bit ARM, Go initially reserves a single block of 768 MB of virtual memory (runtime/malloc1.go:146). // http://stackoverflow.com/questions/20234919/go-runtimepanic-before-malloc-heap-initialized As the runtime currently does not handle memory limits it always attempts to reserve 768MB of virtual address space on 32 bit machines. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 17:34 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Ну не знаю. Эта #issue-51920811 закрыта в 2014 году. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 17:50 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
NekZchritich Код: sql 1. 2. 3. Слово let напрягает? Это как auto const в C++, а let mut -- просто как auto в данном случае. auto , в основном, используются быдлокодерами NekZЗаметьте, по-дефолту всё константно. Profit. этого мало для профита) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 18:41 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Пётр СедовНаписать загрузчик png-картинок можно на любом языке. Но вот разработчики серьёзных программ будут использовать ту библиотеку, которая выставляет C-шный API и потребляет мало памяти. То есть libpng. Я-бы отдельным топиком еще обсудил размер бинарника. Но не С а С++. КМК большинство С++ кодеров толком не знают что у него внутри. А ведь размер впечатляет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 18:55 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
mayton... КМК большинство С++ кодеров толком не знают что у него внутри. А ведь размер впечатляет. То же, что и C Если активно пользоваться шаблонами, которые AFAIK реализованы в C++ почти просто как макросы - удивляться размеру кода достаточно странно ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 19:06 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonКМК большинство С++ кодеров толком не знают что у него внутри. А ведь размер впечатляет. Это фиолетово. Код не грузится целиком в память, а подкачивается страницами. Т.к. это страницы readonly, то одна и таже подсовывается в разные процессы. Т.е. в памяти только то что работает, а если в EXE/DLL есть куча того что не работает, то это на диске так и живет, есть-пить не просит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 19:53 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Ну если я закодил OVER 9000 консольных утилит на С++ (static link) и люблю часто и много их юзать то насколько рационально я расходую память? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 19:57 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonНу если я закодил OVER 9000 консольных утилит на С++ (static link) и люблю часто и много их юзать то насколько рационально я расходую память? Давай видео как все 9000+ запускаешь, звездой ютуба будешь А если серьезно, то чего на спичках экономить, ну сколько твои 9000 займут? 100-200 кб на каждую, 0,9-1,8 Гб всего лишь. PS по штуке в день - это 25 лет непрерывного кодинга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 20:04 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonНу если я закодил OVER 9000 консольных утилит на С++ (static link) и люблю часто и много их юзать то насколько рационально я расходую память? Специально для таких извращенцев придумали busybox ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 20:09 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЕсли активно пользоваться шаблонами, которые AFAIK реализованы в C++ почти просто как макросы - удивляться размеру кода достаточно странно )))удивительно живучий миф, что шаблоны раздувают код. Ведь если не пользоваться шаблонами, то придётся всё то же самое написать руками для каждого типа. Это, конечно, код не раздует ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 21:12 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
egorychLeonid KudryavtsevЕсли активно пользоваться шаблонами, которые AFAIK реализованы в C++ почти просто как макросы - удивляться размеру кода достаточно странно )))удивительно живучий миф, что шаблоны раздувают код. Ведь если не пользоваться шаблонами, то придётся всё то же самое написать руками для каждого типа. Это, конечно, код не раздует ))) Егорыч ... ну всё таки. Существует кейс когда нам будет не наплевать на размер бинаря? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 21:58 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonСуществует кейс когда нам будет не наплевать на размер бинаря?пока да, но с каждым годом число таких кейсов стремительно уменьшается. Если ты пишешь на десктоп, или сервер-сайд, то давно уже нет, дисковое пространство дёшево, как и плашки памяти )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2016, 23:42 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonКМК большинство С++ кодеров толком не знают что у него внутри. А ведь размер впечатляет. Это фиолетово. Код не грузится целиком в память, а подкачивается страницами. Т.к. это страницы readonly, то одна и таже подсовывается в разные процессы. Т.е. в памяти только то что работает, а если в EXE/DLL есть куча того что не работает, то это на диске так и живет, есть-пить не просит.AFAIK так только в винде. А размер большой, т.к. приходится и неиспользуемые классы линковать. egorychmaytonСуществует кейс когда нам будет не наплевать на размер бинаря?пока да, но с каждым годом число таких кейсов стремительно уменьшается. Если ты пишешь на десктоп, или сервер-сайд, то давно уже нет, дисковое пространство дёшево, как и плашки памяти )) Кэш дорогой. И маленький, если его поделить на полсотни живых процессов в системе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 02:58 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
egorychВедь если не пользоваться шаблонами, то придётся всё то же самое написать руками для каждого типа. Это, конечно, код не раздует ))) Забегая в сторону: Можно шаблоны заменить на иерархию с интерфейсами, а тип, соответственно, на интерфейс. Получим меньше конечного кода, зато меньше производительности(динамическая типизация) и больше исходного запутанного кода. В общем-то, в этом и прелесть, возможность управлять балансом "добра и зла" :) Чего нам больше хочется: меньше конечного кода или меньше кодить? Ява хорошо стартанула, потому что у них скорость разработки выше за счёт того, что много чего отдано на заботу в JVM, но они не дают нам выбора, как С++, они обречены Кстати, а кто-нить догадался на сяхх написать библиотеку, эмулирующую иерархию явы с её gc? Т.е. если наследуемся от какого-то базового JObject, можем не греть голову про освобождение памяти. И почему они назвали шаблоны какими-то генериками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 06:34 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
CEMbКстати, а кто-нить догадался на сяхх написать библиотеку, эмулирующую иерархию явы с её gc? Т.е. если наследуемся от какого-то базового JObject, можем не греть голову про освобождение памяти.да как грязи ))) например VCL с TObject, или Qt с QObject - бери и пользуйся ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 07:56 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
egorychда как грязи ))) например VCL с TObject, или Qt с QObject - бери и пользуйся ))) Ненене, там если сказать new потом надо говорить delete. А мне интересно именно есть ли что с gc на борту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 08:28 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
CEMbИ почему они назвали шаблоны какими-то генериками? Потому что они не работают так как шаблоны с С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 08:49 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonCEMbИ почему они назвали шаблоны какими-то генериками? Потому что они не работают так как шаблоны с С++. Вот же блин. Не быть мне великим джавером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 11:32 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
chritichNekZпропущено... Слово let напрягает? Это как auto const в C++, а let mut -- просто как auto в данном случае. auto , в основном, используются быдлокодерами NekZЗаметьте, по-дефолту всё константно. Profit. этого мало для профита) Очень толсто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 11:55 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
CEMbВот же блин. Не быть мне великим джавером Будь великим сишником. Следуй советам старика Бьярне ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 12:27 |
|
||
|
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 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
mayton, Дело не в поддержке. Гугл просто "пробивает" идеи по коммунити и смотрит, что взлетит. На чем делать бабки. Это уже далеко не первая инкарнация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2016, 21:55 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonCEMbВот же блин. Не быть мне великим джавером Будь великим сишником. Следуй советам старика Бьярне я уже и так великий сишник, я на работе уже всё, что на сяхх было, написал, осталась только ява :] egorychCEMbНенене, там если сказать new потом надо говорить delete.только самому главному. Остальное, что в него входит, он автоматически удалит. А для него надо shared_ptr, и усё. Никакой мусоросборник не сравнится.Что-то я не уверен, что какие-нибудь контейнеры в VCL автоматом уничтожают все свои объекты по закрытию :[ Раньше такого не было, может сейчас всё изменилось, я давно билдер не видел. Товарищ ефрейторОбычно я пишу в деструкторе код освобождения таких ресурсов. А тут деструктор будет вызван фиг знает когда. Вот красота-то. То ли закроется файл, то ли нет. То ли COM сервер завершит работу сейчас, то ли попозже. "Утечка" открытого файла ничуть не безопаснее для программы, чем утечка памяти. Ну да, костыли есть. Которые нужно не забыть применять. Но вопрос - вот нафига?(в яве) с++-ный минимализм тут присутствует: в 99.9% людям всё равно, когда будет уничтожен объект, поэтому такой интерфейс для отлова момент, когда объект перестаёт быть используемым, не идёт по умолчанию. Хотя у меня по прежнему вопрос к яве: зачем gc звать потом 1 раз чтобы освободить кучу объектов, нежели каждый раз звать деструктор. Неужто там такая адова экономия получается? Или дело в другом? Но скорее всего этот момент уже где-то сто раз обсудили, ответ известен, но искать лень :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 06:32 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskymaytonЕго закрытие невозможно без support. Гугол это никогда не останавливало. Свои внутренние сервисы перепишут. А на остальных им наплевать. Я прошу прощения. На что перепишут? Нужна какая-то глобальная цель. В разработке Go - цель была четко обозначена. Создание аналога Си с такой-же эффективностью но со сборкой мусора. +Много мелких плюшек которые важны для текстовой обработки информации и создания гугло-сервисов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 11:06 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonЯ прошу прощения. На что перепишут? Нужна какая-то глобальная цель. В разработке Go - цель была четко обозначена. Все было не так. Сначала был создан Го (для развлечения), потом создатели, пользуясь служебным положением, убедили Гугл на него мигрировать, а потом в него уже было добавлено все что нужно для настоящей работы, а не hello world. Таких итераций в Гугле будет еще очень много, когда пет-проект берется в коммерческую работу и доводится до ума. Когда упрутся в концептуальную проблему развития Го (а это обязательно произойдет, т.к. ограничения заложены в дизайн языка) - его выкинут точно так же как и предыдущие проекты. А на что перепишут - неважно. В любой момент времени есть десятки кандидатов на замену. Но скорее всего перепишут на С++, потому что переход на Го стал возможен из-за застоя в С++ в те года, а сейчас у С++ совершенно другая динамика развития, и все то что добавили в Го можно реализовать (или уже реализовано) и в С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 13:43 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyСначала был создан Го (для развлечения), потом создатели, пользуясь служебным положением, убедили Гугл на него мигрировать, а потом в него уже было добавлено все что нужно для настоящей работы, а не hello world. Ну вы прям инсайдер.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 13:54 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
mayton, То что я написал это общеизвестные факты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 14:17 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
CEMbХотя у меня по прежнему вопрос к яве: зачем gc звать потом 1 раз чтобы освободить кучу объектов, нежели каждый раз звать деструктор. Неужто там такая адова экономия получается? Или дело в другом? Но скорее всего этот момент уже где-то сто раз обсудили, ответ известен, но искать лень :) Batch/Bulk operations ... не? Хотя это не про GC а про организацию алгоритмов и структур в целом.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 14:33 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonЧитаю фак https://golang.org/doc/faq#history И что там противоречит моим словам? Чуваки за полгода написали поделку. Потом один из них пользуясь своим именем убедил выделить им бабла и программистов. Которые довели проект до ума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 14:38 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskymayton, То что я написал это общеизвестные факты Ну... что я могу сказать. https://talks.golang.org/2012/splash.article Go is a programming language designed by Google to help solve Google's problems, and Google has big problems. ...... The goals of the Go project were to eliminate the slowness and clumsiness of software development at Google, and thereby to make the process more productive and scalable. The language was designed by and for people who write—and read and debug and maintain—large software systems. Вот как-то так вобщем. Не могу согласиться что это создавалось "развлеченья ради".... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 14:41 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonВот как-то так вобщем. Не могу согласиться что это создавалось "развлеченья ради".... Там прямо сказано, что проектом на начальном этапе занимались параллельно с другими задачами. Т.е. это было просто хобби. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 14:46 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Ну ладно. Хобби так хобби. Вернемся в D/C++ а то автор затаит злобу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 14:52 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyТам прямо сказано, что проектом на начальном этапе занимались параллельно с другими задачами. Т.е. это было просто хобби.у них там есть такая штука, как 20%проект. То есть любому работнику официально позволено 20% рабочего времени заниматься любым другим проектом, как промышленным, так и изобретательским. Иногда из этого вырастает что-то полезное, а иногда получается пшик типа гугловэйв. У богатых свои причуды )) Сведения почерпнуты из издания "Как тестируют в гугл" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 15:01 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonВернемся в D/C++Меня интересуют вопросы типа ... Насколько /например в сравнении C++/ эффективна к примеру https://dlang.org/phobos/? PS: На мой взгляд принцип обсуждения темы топика в виде "влево вправо" не приемлем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 15:04 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Владимир2012PS: На мой взгляд принцип обсуждения темы топика в виде "влево вправо" не приемлем."за шаг влево вправо ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 15:06 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
egorychу них там есть такая штука, как 20%проект. Самый экономный путь решить вопрос - объвить конкурс с призовым фондом бюджетом до 500$. И все! Что ныне часто и густо наблюдается ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 15:14 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
У японцев тоже существует процесс обязательной подачи рац-предложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 15:24 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
... который (по итогу) вырождается в череду "перестановок слева-направо и обратно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 18:05 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Владимир2012Насколько /например в сравнении C++/ эффективна к примеру https://dlang.org/phobos/? Сильно сомневаюсь что существует сравнение С++ и какого-там Марсианского фобоса. Уж слишком она обширная и громоздкая. Это какие должны быть условия тестирования? Это вам - не зеркальные шарики рендерить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 18:17 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Она эффективна, насколько я смотрю "что фиксят". По сложности - нечто промежуточное между STL и boost. Но за счет языка, внутренности выглядят не так ублюдски, а вполне читаемый код. Даже больше - в язык вносят/внесли нужные для библиотеки возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 18:29 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
maytonСильно сомневаюсь что существует сравнение С++ и какого-там Марсианского фобоса.Повторю ранее сказанное /но с уточнением/. В STL к сожалению алгоритмы, использованные для создания объектов мягко говоря - слабенькие. Например https://code.google.com/archive/p/cpp-btree/wikis/UsageInstructions.wiki Насколько эффективна к примеру https://dlang.org/phobos/ в сравнении с STL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 18:35 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Вопрос считаю глупым. А что если один контейнер быстрее другого? Прикручивать квадратные колеса вместо стандартной библиотеки? Или полпрограммы писать на другом языке? Можно конечно потестить, но нужно понимать отличие парадигм библиотек - они не везде совпадают. В D такой же компилятор, оптимизатор и подобные же шаблоны. И библиотеку пишет Александреску. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2016, 22:57 |
|
||
|
D дружит с C++ и неплохо
|
|||
|---|---|---|---|
|
#18+
Владимир2012maytonСильно сомневаюсь что существует сравнение С++ и какого-там Марсианского фобоса.Повторю ранее сказанное /но с уточнением/. В STL к сожалению алгоритмы, использованные для создания объектов мягко говоря - слабенькие. Например code.google.com/archive/p/cpp-btree/wikis/UsageInstructions.wiki Насколько эффективна к примеру https://dlang.org/phobos/ в сравнении с STL? Спасибо очень, помогло! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2016, 19:38 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2018487]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
109ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
117ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 279ms |

| 0 / 0 |
