Anonymous
Возвратный сложный тип?
Daniel
для каких целей надо возвращать константные типы?
aadz
Благодяря тебе, мне есть хоть кому сказать что надо иметь декларативную иммутабельность
Anonymous
Я хочу ознакомиться что это вообще
Roman
В с++ такое есть?
это есть в любом уважающем себя языка, AFAIK 🙂
Anonymous
Возврат результата же через return?
Anonymous
Зачем такие сложности?
Roman
не тупи
я не туплю, просто всё надо называть своими именами. константы != иммутабельные типы // true значения констант определяются во время компиляции. А иммутабельные типы это лишь read-only типы, немутабельные, защищённые от записи ссылки на мутабельную память
Anonymous
Роман, поможете мне разобраться?
Anonymous
Это то , что после скобок?
Anonymous
Возвратный сложный тип?
Anonymous
Я хочу ознакомиться что это вообще
Anonymous
Возврат результата же через return?
Anonymous
Зачем такие сложности?
Roman
Зачем такие сложности?
"mutable shared state is the root of all evil, especially in concurrent environments" 🙂
Daniel
Роман, поможете мне разобраться?
есть подозрение, что пропозал, к которому остаются такие вопросы у даже поверхностного читателя, не примут с гарантией (и правильно)
Roman
о, и копирования при implicit кастах не понадобится? защищаться будем как?
ну написано же прямо в Introduction)) These rules can be enforced by making the compiler scan all objects of immutable types for modification attempts such as assignments and calls to mutating methods and fail the compilation if any illegal mutation attempts were identified. The compiler would also need to check, whether types correctly implement immutable interface methods. https://github.com/romshark/Go-2-Proposal---Immutability#1-introduction
Daniel
мне кажется (я уже говорил) надо выкинуть примерно 2/3 кейсов, оставив только те, которые нас реально анноят
Roman
Роман, поможете мне разобраться?
конечно помогу, но как?)
Anonymous
конечно помогу, но как?)
Может статью подкинете?
aadz
с литералом все понятно. важно, чт нетипизованная константа тлже преобразуется по месту
мы уже об этом говорили. Или я не понял правильно, или константы в Go - это обычно просто #define. Я правильно понял?
Co(n)stantine👨‍🔬
неплох http://henrikeichenhardt.blogspot.com/2013/06/why-shared-mutable-state-is-root-of-all.html
Anonymous
Или словами
Daniel
а анноит нас возможность модификации того, что мы передаем в функцию и глобальных переменных. все
Anonymous
анноит?
aadz
блин, надо было выбрать себе ник "Рай будды Амитабы"
Anonymous
Коллега, это немножко чушь
Это не чушь, у glibc нету forward compatible
Daniel
анноит?
https://www.multitran.ru/c/m.exe?CL=1&s=annoying&l1=1
Daniel
Это не чушь, у glibc нету forward compatible
у меня на маке вообще нет glibc, а под линукс я бинарники успешно собираю. ЧЯДНТ?
Anonymous
у меня на маке вообще нет glibc, а под линукс я бинарники успешно собираю. ЧЯДНТ?
Если ты эту проблему не встречал, это не значит, что её нет. Не надо генерализировать
Roman
неплох http://henrikeichenhardt.blogspot.com/2013/06/why-shared-mutable-state-is-root-of-all.html
однако concurrency лишь часть причины почему иммутабельные типы нужны, они нужны и для более точных API https://github.com/romshark/Go-2-Proposal---Immutability#111-ambiguous-code-and-dangerous-bugs
aadz
нетипизованные - да. а типизованные - не совсем
литералы - всегда не типизированные, а контекстно зависимые на этапе компиляции. Или я чего-то не понял в этом обсуждении и в изначальном вопросе
Daniel
еще раз - автоматически кастятся не тольео литералы, но и нетипизованные константы
aadz
а чел-то про литеральную надпись спрашивал? или я просто ничего не понял
Daniel
чел хотел разобраться
Daniel
и разобрался, кстати
aadz
ну, умничка!
Daniel
но, вообще, вполне безопасно думать о литералах как о нетипизованных константах. их поведение не отличается (видимо, потому, что нетипизованные константы компилятор заменяет на соответствующие литералы, ровно как препроцессор)
aadz
в Go - да, видимо
aadz
хотя, все это уже схоластика какая-то
Daniel
а вот думать о константах как о литералах нельзя, потому, что у у нас есть iota
Daniel
хотя, все это уже схоластика какая-то
у меня в голове еще такого много :) go же концептуально неконсистентен, и его реаьно приходится или запоминать, или осознавать
aadz
или просто знать много других языков, запомнить их и осознать :)
Daniel
ну я знаю десяток
aadz
В общем, нету счастья студентке первого курса с экономического :)
Roman
я в Go только по причине встроенного scheduler’а и компиляции)) Всё остальное так себе реализовано… но tooling ещё конечно крут, почти соответствует современным стандартам
aadz
рутинами рулить :)
Daniel
И зачем тебе встроенный шедулер?
нужен не он, а тредпул под ним
Anonymous
Тредпул можно почти везде и самому юзать
aadz
Daniel
Ты серьёзно?
абсолютно
Anonymous
У джавы то получше будет, идея работает всяко лучше
Daniel
тулинг - это не ide
Anonymous
Профилировщики там тоже лучше
Daniel
и у джавы неплохой тулинг, но тяжеловесный очень
aadz
еще понедельник, а философия уже такая пошла, как в пятницу
Anonymous
Тяжеловесный?
Daniel
ага
Anonymous
А вот у Хаскеля вообще есть вкусный stack
aadz
дети малые
Anonymous
Сомнительно, что у гошечки тулинг лучший
Anonymous
а у раста там вообще Крейты
Daniel
вот толко никакого хаскеля нет (и раста нет, на всякий случай)
aadz
правда?
Anonymous
Да? И джавы тоже нет?