
Dmitry
25.12.2017
14:44:12
В эрланге? Да ладно
mvar костыль не более, чем Rebindable

Evgeny
25.12.2017
14:44:44
в эликсире можно написать
a = 1
a = 2

Dmitry
25.12.2017
14:45:06
это создание нового значения, не изменение старого

Google

Evgeny
25.12.2017
14:45:22
ага, поэтому я и говорю ссылки мутабельные
данные иммутабельны
вот нужно такое же в D

Dmitry
25.12.2017
14:46:21
про эликсир не знаю, но в эрланге и других ФЯ новое объявление это не изменение старой ссылки, это не мутабельность
это shadowing

Evgeny
25.12.2017
14:46:41
в эликсире то же самое
понятно, что это не переменные в их истинном смысле, скорее имена, которые можно перебиндивать на разные объекты
в хаскеле можно перебиндить уже присвоенную "переменную"?
условно можно это приравнять к мутабельным указателям/ссылкам на иммутабельные объекты
но я понимаю твою мысль

Dmitry
25.12.2017
14:51:55
https://repl.it/repls/PointedFlawlessMeadowhawk
Что до С++, то там, получив конст ссылку на объект никогда не знаешь, иммутабельный он или это только в твоей ф-ии его нельзя менять, а другая тем временем может. К тому же есть mutable методы в const объектах, это вообще обоссаться.

Evgeny
25.12.2017
14:58:17
это понятно

Google

Evgeny
25.12.2017
14:58:33
а насчет mutable методов не согласен.
логическую иммутабельность никто не отменял
иммутабельность исключительно через неизменяемость физической памяти - примитивный подход
в дешке приходится касты применять
например для реализации immutable/const RC-объекта

Dmitry
25.12.2017
15:01:58
а что такое логическая иммутабельность? когда программист в уме ее держит, а компилятор ничего толком не гарантирует? ну это не серьезно. Это как "soft realtime", который тоже ни о чем, без гарантий.

Evgeny
25.12.2017
15:02:40
Я привел пример: reference counted объекты
сами объекты иммутабельны, а вот счетчики ссылок на них нет
мы же тут не на хаскеле пишем, а на достаточно низкоуровневом языке
сферическая иммутабельность в вакууме не всегда нужна

Dmitry
25.12.2017
15:05:16
да, я в ди ей и не пользуюсь обычно

Evgeny
25.12.2017
15:05:33
видимо многопоточное говно не приходилось писать
там иммутабельность самое оно

Dmitry
25.12.2017
15:05:55
У D система типов далека от консистентности и удобства по части модификаторов таких
многопоточность писал на std.concurrency обычно

Evgeny
25.12.2017
15:06:51
дык там тоже между потоками иммутабельные данные гоняются

Dmitry
25.12.2017
15:07:09
ну да, но это лишь небольшая часть всей программы

Evgeny
25.12.2017
15:09:00
у меня вот полно иммутабельных классов

Igor
25.12.2017
15:31:34
видимо многопоточное говно не приходилось писать
не обязательно многопоточное. например библиотечный код принимает из сети поток данных и отдаёт по ходу дела клиентскому коду доступ к принятым данным. Если библиотека отдаёт иммутабельные структуры она может не беспокоиться о целостности отданных данных и не должна хранить для сохранности копию

Google

Igor
25.12.2017
15:32:27
и не должн создавать копию, что важнее для производительности

Mike
25.12.2017
16:37:52
Товарищи! Кто-нить (из здесь присутствующих) юзает DlangIDE (github.com/buggins/dlangide)..? ?
Чот хрень наблюдаю: под линуксом стащил с гита, собрал дабом, запутсил - внё норм; открыл, собрал и запутсил экземпловый тетрис - работает. а потом смoтрю - одно ядро на 100% сама ИДЕ грузит..... после нескольких экспериментов суть такая:
1) от проекта это не зависит
2) от debug/release тоже не зависит
3) появляется в момент запуска проекта и "лечится" только закрытием IDE
?
И второй вопрос: кто в чём на Дшечке пишет? Небось Интелижди да мелкомягкий вижуал..?(

qwerty
25.12.2017
16:53:32
вим
=D

Oleg
25.12.2017
17:20:38


Mike
25.12.2017
17:42:34
вим
...он настолько крут, что умеет автодополнения? ???

Stepanos
25.12.2017
17:51:11
я использую иногда DlangIDE, чисто чтоб баги порепортить)) 0.8.6 - процессор не грузит
а так больше люблю IDEA+плагин или Eclipse+плагин = что то что то мне норм

Dmitry
25.12.2017
18:22:47


Maxim
25.12.2017
18:28:33
Я с Eclipse пересел на VS code, навигация по коду и автокомплит так себе, но, не смотря на электрон (или что там по капотом?) он более отзывчивый и менее прожорливый

Maxim
25.12.2017
18:29:00
Плюс, плагины на любые случаи жизни
Ну и да, это всё под Linux происходит)

Ned Ogl
25.12.2017
18:38:28


Mike
25.12.2017
20:53:24
а так больше люблю IDEA+плагин или Eclipse+плагин = что то что то мне норм
Затестил эклипс+плагин
остался один вопрос: бинарь создаётся прям в корне проекта, а хотелось бы его в папку bin/ "перенаправить" — указываю это в настройках сборки (Build targets/(default)), однако файл упорно появляется в корне..... получается, плагин просто не допилен и нужно ручками добаить в dub.json указание куда складывать выхлоп...??

Stepanos
25.12.2017
20:54:55
ну dub.json всегда надо конфигурить :)

Mike
25.12.2017
20:57:12
Кстати! А кто-нибудь знает предысторию - почему отказались от MakeFile и запилили dub?

Andrey
25.12.2017
20:59:01
потому же почему и другие современные языки

Google

Oleg
25.12.2017
20:59:08

Mike
25.12.2017
20:59:41
dub же не только система сборки, но и управления пакетами
"управление" подразумевает нечто большее чем "в этой проге я юзаю вот такие-то либы" ? зачем вообще это надо?) до этого вон сколько лет жили на С/С++ и чот никто не изобретал "систему управления пакетами" (к слову - про какие "пакеты" речь? чо уж тогда было не заюзать тот же aptitude? ?)

Oleg
25.12.2017
21:03:02
1. под С++ было много попыток, но ребята, которые стандарт делают не одобрили
2. пакеты == библиотеки

Stepanos
25.12.2017
21:04:13
makefile = говнище доисторическое :)

Oleg
25.12.2017
21:04:53
там даже версионный контроль продуманный

Mike
25.12.2017
21:05:17

Oleg
25.12.2017
21:05:48

Admin
ERROR: S client not available

Pavel
25.12.2017
21:05:59
в cmd наша сила

Mike
25.12.2017
21:06:35

Oleg
25.12.2017
21:07:08
это не к dub вопрос
да и "цирк" этот нужен потому что большинству людей удобно
по сути то да, но нет
заметил тенденцию странных вопросов
типа "а нахер вообще в D исключения сделали? я вот не пользуюсь, а в языке X так их и вообще нет и всё ок"

Google

Oleg
25.12.2017
21:13:10
ну и вместо "исключений" любую фишку
и усиленная аргументация, что это не нужно
я так то не против в целом обсуждения, но чёт не могу понять откуда такие вопросы

Mike
25.12.2017
21:19:47
я так то не против в целом обсуждения, но чёт не могу понять откуда такие вопросы
ну тут всё просто: чтобы что-то принять это что-то должно быть востребованным, должно решать некую проблему - отвечать на некий вопрос. И, посколь, сама эта причина далеко не у всех возникает - вот и приходится расспрашивать о ней других)
Пример:
- А почему нельзя грабли по двору разбрасывать?
- Потому что однажды наступишь и держаком по лбу получишь!
- Аааа...
?
Такова моя субъективно объективная точка зрения)

Oleg
25.12.2017
21:23:13

Pavel
25.12.2017
21:23:43
Проблема быстрой доустановки библиотек и их апдейта существует, глупо ее отрицать. Поэтому и появились менеджеры пакетов.
aptitude не подходит потому что он специфичен для дистрибутива.

Oleg
25.12.2017
21:24:47
@chebotarevp спасибо за качественную аргументацию
а то я чёт лох)
голова не варит совершенно)

Pavel
25.12.2017
21:25:24
Наверно мало общаешься с троллями )
Кстати сейчас же сделали новый универсальный менеджер пакетов

Oleg
25.12.2017
21:29:34

Pavel
25.12.2017
21:30:02
Не, какой то межлинуксовый
А то и того шире
Попылались в нем учесть все потребности всех менеджеров и экосистем. Забыл название.
https://snapcraft.io

Oleg
25.12.2017
21:33:21
интересно

qwerty
25.12.2017
22:54:00
Ну там свои минусы есть. Он помогает если хочешь поставить пакет отдельно без системных зависимостей. Все зависимости с собой тащит

Stepanos
25.12.2017
23:25:30
Quantum Break is an AAA video game developed by Remedy Entertainment (2016).
Is it written in C++ with D as the scripting language. Available on Xbox One and Windows
интерестно что имеется ввиду под scripting language

Dmitry
26.12.2017
02:06:53
https://dconf.org/2016/talks/watson.html
Вместо того чтобы скрипты (AI, логика уровней) писать на каком-нибудь lua, они писали на D, быстренько компилили в DLL и из игры ее загружали без перезапуска самой игры.