Год не начался а я уже прилетел сюда с подгоревшим пердаком от ебучего камплюхтер сцаенса. С октября месяца я ебашил Golang стахановскими темпами, все выучил, вызубрил, попробовал, выкурил, высосал, и в процессе учебы особых вопросов не возникало, но когда дошел до многопоточности тут начался сущий кошмар...
Чтобы понять этот ваш блядский канкаренси мне пришлось задним числом разбираться в том а как наши деды писали до го, и почему все ссутся от его подхода к канкаренси.
И в чем суть, из того что я понял:
1. Деды писали на таких языках как C++/Java/C# и тд, которые используют концепцию Shared Memory, где взаимодействие между потоками реализовано через разделение памяти, и конкретно через такие механизмы как мьютексы, семафоры, атомики и тд
2. Другой дед (Тони Хоар) предложил альтернативную концепцию CSP, она описывает взаимодействие между независимыми процессами посредством передачи сообщений, а не через разделение памяти
3. И вот изучаю я каналы, потом перехожу к мьютексам, потом к событиям, потом к атомикам, к семафорам, к waitgroup и в процессе возник один очень неприятный блять вопрос, А НАХУЯ?
НУ ВОТ НАХУЯ БЛЯТЬ ВСЕ ЭТО КОГДА ЕСТЬ КАНАЛЫ НАХУЙ?
Ебвашумать а нахуй новый язык то нужен если каналы стали какой-то хуйней для передачи всякого кала между горутинами, а вся остальная манипуляция с синхронизацией сводится к дрочке к добрым мьютексам?!?!??!? Вы же специально язык сделали чтобы уйти от Shared Memory, но в итоге притащили его же механизмы синхронизации сделав каналы хер пойми чем...
Я лучше эти ебаные 3-4 месяца жоской долбежки потратил бы на какую-нибудь скуфскую джаву или C++
В общем, что по итогу:
1. ООП нет, вместо него ебанутый огрызок
2. Исключений нет, зато есть дрочка с ретурном и с IS/ASS
3. Дженерики есть, но по слухам самих пейсталей руками на этом Говне ОН И НАХУЙ НЕНУЖОН ИМ
4. Каналы есть, по ним рекомендуют передавать кал
5. Для того чтобы дождаться завершения горутин юзай sync.WaitGroup, люди для тебя специальный счетчик придумали прикинь...
6. Для того чтобы отменять операции юзай контекст, если ты жертва инцеста можешь даже данные передавать, тебе можно
7. А дальше блять даже сил не хватило расписать, в негатив свалился пока мысль собирал, вопрос свой озвучил выше.
В чем я не прав?
>Деды писали на таких языках как C++/Java/C#
На них и сейчас пишут все. Вакансии в рамках квот для лгбткплас пидеrustов погоды не делают.
>В чём вопрос-то?
В том что, непонятен этот восторг вокруг мнопоточности в го, все ссутся от каналов и горутин, а по факту юзают те же механизмы которые есть в Java/C++ и тд, и в чем прикол то ебана?
>все ссутся от каналов и горутин
Потому что тупые и некомпетентные вкатуны в модную профессию с курсов с магическим мышлением.
>которые есть в Java/C++
Чел, они везде есть, это СИСТЕМНЫЕ механизмы, да-да все эти пайпы, хуяйпы, очереди сообщений, сокеты, тхреады, это всё тебе доступно в обычной сишкепл факту.
Прикол в хайпе, но многие бигтех уже прозревают, что писать бизнес логику на говне это очень плохая идея. Вот микрокод на 200-300 строк, окай.
Неосилятор, хих
>Вы же специально язык сделали чтобы уйти от Shared Memory, но в итоге притащили его же механизмы синхронизации сделав каналы хер пойми чем...
Это твоя личная фантазия. Никто такого никогда не декларировал.
Го обычный язык с разделяемой памятью, а каналы это простые, копеечные, советские очереди.
А так да, серьезную задачу зачастую без мьютексов/атомиков и других примитивов синхронизации не решить, что логично. Но каналы и горутины сильно упрощают жизнь.
>В чем я не прав?
В том, что го, по скорости изучения самый быстрый язык, на изучение которого уходит месяца два. Там документация на один лист, в прямом смысле. Из го все, буквально выпилили так, чтобы ты мог делать все только одним, единственно верным, способом
Если ты с Го ебался 3-4 месяца, в джаве бы ты утонул, о плюсах не думай, пока не станешь сенькой
>Я лучше эти ебаные 3-4 месяца жоской долбежки потратил бы на какую-нибудь скуфскую джаву или C++
...и ровно так же охуел бы от той же java memory model. Про плюсы вообще молчу.
Ты пойми, перевари и прими одну простую вещь: конкарренси и параллелизм - это не хуй собачий. С конкарренси всегда сложно, особенно новичкам. Всегда, блять. А если смотреть на все эти терки о моделях памяти и параллелизма - это вообще древняя история полная драм и реваншей, продолжающаяся по сей день, и гоу здесь просто одна из сторон. Ни больше ни меньше.
И нет такой ботвы как уйти от shared memory. Я со свечкой рядом с апологетами го не стоял, но врядли они хотели прям УЙТИ совсем совсем от этого. Если они этого действительно хотели, гоу был бы тупо вторым хаскелем, а не второй джавой. Скорее всего они просто преследовали цель заложиться в зеленую многопоточку со старта, потому что это все таки гугл - хуйня обслуживающая миллиарды людей в секунду.
>ООП нет, вместо него ебанутый огрызок
На ООП мир не сошелся. Да и чего таить - ООП был спорной идеей. Уж кто только по ООП не прошелся за последние десятки лет, и есть за что.
>Исключений нет, зато есть дрочка с ретурном и с IS/AS
>Дженерики есть, но по слухам самих пейсталей руками на этом Говне ОН И НАХУЙ НЕНУЖОН ИМ
Вот здесь согласен с тобой, это чистой воды долбоебизм. Гоферы блять художники, они так себе это все видели. Вообще, вот сука что бесит в этом высере по настоящему, так это то, что сама история возникновения языка гоу - это буквально история васянов, которые с какого то перепугу решили, что если они просто все перепишут с нуля, бряцая в процессе лозунгами о простоте и поддерживаемости, их поделка уж точно не будет балансировать между абсурдной непоследовательной хуетой, на которой больно кодить, и легасятиной, херящей их же собственные принципы типа uniformity и ортогональности. Хули нам опыт предтеч? Мы же гоферы, любимые сыны гугла, мы точно не пройдемся по тем же граблям что и деды! Таким примитивным идеализмом обычно болеют новички блять - именно они часто пытаются продать своему лиду идею-фикс переписать продукт-дойную корову на мейнтенансе на какой нибудь условный раст с нуля, не отдавая себе никакого отчета о том, что это вообще значит - "переписать все".
Хуево то, что поделку свою эти васяны уже давно "продали" гуглу, а уж у гугла есть все средства чтобы "продать" это васянство миру.
>Я лучше эти ебаные 3-4 месяца жоской долбежки потратил бы на какую-нибудь скуфскую джаву или C++
...и ровно так же охуел бы от той же java memory model. Про плюсы вообще молчу.
Ты пойми, перевари и прими одну простую вещь: конкарренси и параллелизм - это не хуй собачий. С конкарренси всегда сложно, особенно новичкам. Всегда, блять. А если смотреть на все эти терки о моделях памяти и параллелизма - это вообще древняя история полная драм и реваншей, продолжающаяся по сей день, и гоу здесь просто одна из сторон. Ни больше ни меньше.
И нет такой ботвы как уйти от shared memory. Я со свечкой рядом с апологетами го не стоял, но врядли они хотели прям УЙТИ совсем совсем от этого. Если они этого действительно хотели, гоу был бы тупо вторым хаскелем, а не второй джавой. Скорее всего они просто преследовали цель заложиться в зеленую многопоточку со старта, потому что это все таки гугл - хуйня обслуживающая миллиарды людей в секунду.
>ООП нет, вместо него ебанутый огрызок
На ООП мир не сошелся. Да и чего таить - ООП был спорной идеей. Уж кто только по ООП не прошелся за последние десятки лет, и есть за что.
>Исключений нет, зато есть дрочка с ретурном и с IS/AS
>Дженерики есть, но по слухам самих пейсталей руками на этом Говне ОН И НАХУЙ НЕНУЖОН ИМ
Вот здесь согласен с тобой, это чистой воды долбоебизм. Гоферы блять художники, они так себе это все видели. Вообще, вот сука что бесит в этом высере по настоящему, так это то, что сама история возникновения языка гоу - это буквально история васянов, которые с какого то перепугу решили, что если они просто все перепишут с нуля, бряцая в процессе лозунгами о простоте и поддерживаемости, их поделка уж точно не будет балансировать между абсурдной непоследовательной хуетой, на которой больно кодить, и легасятиной, херящей их же собственные принципы типа uniformity и ортогональности. Хули нам опыт предтеч? Мы же гоферы, любимые сыны гугла, мы точно не пройдемся по тем же граблям что и деды! Таким примитивным идеализмом обычно болеют новички блять - именно они часто пытаются продать своему лиду идею-фикс переписать продукт-дойную корову на мейнтенансе на какой нибудь условный раст с нуля, не отдавая себе никакого отчета о том, что это вообще значит - "переписать все".
Хуево то, что поделку свою эти васяны уже давно "продали" гуглу, а уж у гугла есть все средства чтобы "продать" это васянство миру.