@gogolang

Страница 1352 из 1630
Pawel
04.09.2018
09:30:32
враппер уменьшает mettal cost, ага... это реально стокгольмский синдром :(
так и const не уменьшает. Враперы - пассивный мазохизм, поскольку они по дефлту, const - активный, поиск дополнительных костылей. Разница не велика

да. шаг к чистым функциям
которых в голанге никогда не будет

Алексей
04.09.2018
09:48:12
Google
Алексей
04.09.2018
09:50:04
с чего такие выводы?
Со всего того что есть и чего нет в Go.

Никита
04.09.2018
09:50:18
Конкретно что не устраивает?

Алексей
04.09.2018
09:50:37
Да хоть те же слайсы.

Никита
04.09.2018
09:50:49
А что с ними не так?

Kirill
04.09.2018
09:51:14
Только вот без дженериков срачи

Астарожна

Алексей
04.09.2018
09:52:20
Ну Go это как бы принципиально concurrency язык. И в нём есть примитив, который позволяет любому желающему без зазрений совести мутировать нижележащий массив, который может лежать ещё под парочкой слайсов.

Что же тут может пойти не так? Да вообще всё.

Поэтому надо следить за собой и за коллегами, чтобы не мутировать то что не стоит мутировать.

Самому следить. Ведь возложить такую слежку на компилятор не представляется возможным.

Когда кода и программистов не очень много и программисты понимают суть проблемы, то всё в принципе норм.

Никита
04.09.2018
09:55:15
Ну изменять напрямую массив под слайсом никто не может

если вам нажна какая то синхронизация, используйте мьютексы например

Google
Алексей
04.09.2018
09:56:40
Ну изменять напрямую массив под слайсом никто не может
Ну вообще то вроде можно, когда я в последний раз проверял

И через сам массив, и через другие слайсы

Pawel
04.09.2018
09:57:09
да почитай его уже :)
таких пропозалов уже до хера было, ничего нового

Никита
04.09.2018
09:57:35
ну массив может меняться только в случае нехватки места, все

Алексей
04.09.2018
09:57:49
если вам нажна какая то синхронизация, используйте мьютексы например
Ну я вот считаю, что в Го то как раз мьютексы не стоит активно юзать, ибо есть более удобные примитивы синхронизации.

Никита
04.09.2018
09:58:09
Нет
А когда еще?

Kirill
04.09.2018
09:58:17
Ну вообще то вроде можно, когда я в последний раз проверял
И тут не может быть "в последний раз проверял"

Спеку читайте хоть перед срачами

Алексей
04.09.2018
09:58:52
ну массив может меняться только в случае нехватки места, все
Слайсы не обязаны быть созданы динамически.

Странно конечно, что это приходится объяснять гоферам в го чатике.

Kirill
04.09.2018
10:00:07
А когда еще?
Перевыделение да, может произойти при grow. А мутировать данные внутри может любой дурак, пока syscall соответствующий не дернешь

Хотя сентябрь, час дня, школоло набегают на чатики

Никита
04.09.2018
10:01:11
Как?

Kirill
04.09.2018
10:01:30
Да, бл*дь, три секунды подумав

&s[0]

Алексей
04.09.2018
10:01:56
Да даже не напрямую, а через другой слайс

Google
Kirill
04.09.2018
10:02:03
И это только один из тонны вариантов

Pawel
04.09.2018
10:02:24
с const два варианта есть реальных = сделать его неглубоким - и в этом случае он практически бесполезен. 2 - сделать всё неизменяемым по умолчанию как предлагал Даниель. И это будут ещё хуже чем питон 2/3, сломает простоту системы типов и превратит Голанг в говнораст - и тоже мало что даст, поскольку изначально язык мутабельный

Алексей
04.09.2018
10:03:00
Просто на самом деле все эти иммутабельные данные, чистые функции и прочая функциональная петушня не от хорошей жизни взялись.

И особенную роль они как раз начинают играть при появлении многопоточности

Daniel
04.09.2018
10:04:40
параллелизма в широком смысле

Алексей
04.09.2018
10:04:49
именно

Никита
04.09.2018
10:05:16
&s[0]
ну и как вы собираетесь менять массив ?

Pawel
04.09.2018
10:05:20
Просто на самом деле все эти иммутабельные данные, чистые функции и прочая функциональная петушня не от хорошей жизни взялись.
Роб превентивно сделал персистентные структуры данных, выложил на гитхаб и сказал, что использование вот такого функционального гейства discouraged.

Никита
04.09.2018
10:05:29
Никита
04.09.2018
10:06:11
или менять его елементы которые не входят в диапазон слайса

Kirill
04.09.2018
10:06:25
ну и как вы собираетесь менять массив ?
Ну блеадь, Никита. Ты сам придумал задачу "заменять". Хочешь заменить - gramework/runtimer в помощь.

Pawel
04.09.2018
10:06:33
А ну раз Роб сказал, то мы будем слепо ему следовать.
давай лучше будум верить местным сетлым головам, инфа 100%

Никита
04.09.2018
10:06:54
Что ты несёшь?
Окей, может мы говорим о разных вещах

давай определимся сначала

Алексей
04.09.2018
10:07:00
давай лучше будум верить местным сетлым головам, инфа 100%
Опять неверно. Нужно не слепо верить, а своей головой думать.

Pawel
04.09.2018
10:07:46
Опять неверно. Нужно не слепо верить, а своей головой думать.
это ты сказал верить, не я. Я всего то сослался на материал с аргументами

Никита
04.09.2018
10:07:59
Человек выше говорил что мы можем менять массив под слайсом, верно? Я это понял так, что он говорит о том, что мы можем напрямую менять елементы всего массива

Google
Никита
04.09.2018
10:08:20
Мутировать, пусть будет так

Kirill
04.09.2018
10:08:54
Не заменять подлежащий массив (хотя это тоже можем через unsafe)

Pawel
04.09.2018
10:09:33
Кому я говорил верить?
"слепо ему следовать"

хотя я такого не предлагал ведь

Алексей
04.09.2018
10:09:59
"слепо ему следовать"
Это был сарказм

Алексей
04.09.2018
10:11:50
Человек выше говорил что мы можем менять массив под слайсом, верно? Я это понял так, что он говорит о том, что мы можем напрямую менять елементы всего массива
Берём массив, берём от него два слайса, которые пересекаются ещё к тому же. И распихиваем эти слайсы по разным горутинам. И всё, собственно. Если одна горутина будет менять один слайс, то другая горутина также увидит эти изменения. Если это будет делаться без мьютекса, то всё резко может стать очень плохо.

Admin
ERROR: S client not available

Pawel
04.09.2018
10:12:48
ничего страшного, race детектор же выдали

Kirill
04.09.2018
10:13:07
Pawel
04.09.2018
10:13:27
в смысле, небо не рухнет на землю.

Алексей
04.09.2018
10:13:47
Да действительно, жаль не существует таких структур данных, для которых вообще не требуется синхронизация.

Kirill
04.09.2018
10:13:54
Видел, как чел запускал -race с gomaxprocs=1

"потому что если больше, то оно ругается много"

Pawel
04.09.2018
10:14:36
Алексей
04.09.2018
10:15:38
существуют. Иммутабельные персистентны DS. Даже в голанге можно
Но они же не нужны. Ведь Роб Пайк сказал что discouraged. Как и [запрещённое слово в этом чатике].

Pawel
04.09.2018
10:16:59
Но они же не нужны. Ведь Роб Пайк сказал что discouraged. Как и [запрещённое слово в этом чатике].
конечно же не нужны. они только в хаскиле работают. А учитывая, что хаскиль ни кому не нужен - не работают ни где

Алексей
04.09.2018
10:18:15
конечно же не нужны. они только в хаскиле работают. А учитывая, что хаскиль ни кому не нужен - не работают ни где
А ну да. Ведь нигде, ни в одном языке кроме хаскеля нельзя сделать такие штуки.

Google
Pawel
04.09.2018
10:20:38
А ну да. Ведь нигде, ни в одном языке кроме хаскеля нельзя сделать такие штуки.
можно всё что угодно, но есть понятие целесообразности

Алексей
04.09.2018
10:22:02
можно всё что угодно, но есть понятие целесообразности
А я понял, да. Действительно, зачем накладывать ответственность за целостность и непротиворечивость данных на компилятор, типы, структуры данных, когда это можно делать руками?

Pawel
04.09.2018
10:22:38
ты ничего не понял и слышишь только себя

Алексей
04.09.2018
10:22:45
конечно

А я понял, да. Действительно, зачем накладывать ответственность за целостность и непротиворечивость данных на компилятор, типы, структуры данных, когда это можно делать руками?
Но кстати го в этом отношении пошёл даже ещё дальше. То есть программисту даже выбора такого не предоставили: вот тебе исключительно мутабельные структуры данных, а про функциональную петушню вообще забудь, ведь тебе даже инструментов для создания такой петушни не выдали.

Pawel
04.09.2018
10:33:46
Что те не выдали? Тебе надо - ты и делай, Как сделаешь - позови. А до тех пор это у тебя не более чем пустое нытьё

Алексей
04.09.2018
10:37:24
Причём из аргументов против я услышал лишь "хаскиль никто не юзает" (чего я не отрицаю) и "Робу Пайку не зашло"

Artem
04.09.2018
10:42:14
всякие map, filter итд над слайсами и мапами было бы удобно иметь

Alexander
04.09.2018
10:42:28
? еретики!

Алексей
04.09.2018
10:42:42
Artem
04.09.2018
10:42:54
ну почему

Alexander
04.09.2018
10:43:03
сначала мап с фильтром, а потом что ? монады тебе подавай ?

Алексей
04.09.2018
10:43:10
вот именно

Artem
04.09.2018
10:43:16
их реально не хватает. for range каждый раз писать это ебала какая-то. даже вон в жс есть

Алексей
04.09.2018
10:45:51
Чёт я прям поднял оппозиционные настроения в чатике

Kirill
04.09.2018
10:46:32


Artem
04.09.2018
10:46:51
про иммутабельность кстати я хз. у меня есть мнение что ее полезность и необходимость в большинстве случаев преувеличена

Алексей
04.09.2018
10:47:48
Я вообще считаю, что программист должен решать когда и что юзать.

Где-то иммутабельность прям отлично зайдёт, где-то будет очень сильно мешать

Страница 1352 из 1630