170 похожих чатов

Всем привет, прочитал тут недавний холивар перетекший из di в

ООП в го. Назрел вопрос. Я вот пришел в Го с питона, а в питон с шарпов. Мало мальски разбираться в подкапотке начал как раз с ГО(иначе я так понял только вешаться).

Кто нибудь может сказать, почему например самую часто юзаемую фичу - слайсы, они сделали не интуитивно работающими? Настолько, что каждый собес по Го в какой то момент превращается в жонглирование слайсами и аппендами и гаданием на гуще - что выведется. Была ли какая то причина у умных людей из гугла делать именно так?

51 ответов

12 просмотров

слайсы и в шарп завезли в общем-то

Не знаю про жонглирование, тоже свитчнулся с питона два года назад(до питона писал на си), как изначально изучил как работает, так и отвечал на собесах. Этот вопрос вообще никак не загонял в тупик

Рустам-Нафиков Автор вопроса
Dmitry
слайсы и в шарп завезли в общем-то

ну я дилетант в шарпах, в школе игрался. Скорее не конкретно к чему то придирка, а к тому, что именно в Go очень часто приходится держать в уме то, чего явно в коде нет. Не получается, скажем так, доверять инструменту.

Слайсы в Go - самая удобная штука для меня. Постоянно пользуюсь всеми возможностями слайсов и не могу нарадоваться, как все классно продумано. Что конкретно вам не нравится в слайсах?

Aliaksandr Valialkin
Зачем?

Чтобы передал и не думаешь насрет кто в него или нет

Dmitry
Чтобы передал и не думаешь насрет кто в него или н...

Согласен, это была бы удобная фича. Но любая фича приносит не только удобство, но и добавляет проблем вроде усложнения кода. Похоже, что в данном случае проблемы перевешивают удобства, поэтому в го нет read-only slices - https://github.com/golang/go/issues/20443

Aliaksandr Valialkin
Согласен, это была бы удобная фича. Но любая фича ...

Срач пока там идёт. А потом они узнают что в це шарп завезли ещё и спаны и мемеори (одна на стеке , вторая на куче ).... Ух

Aliaksandr Valialkin
Зачем?

для того же, для чего и в С можно передавать const T[] - дать дополнительную подсказку компилятору и читающему код программисту

Павло Побуджувач
а, тут немного о другом речь идет

хотя, я не вижу других вариантов это сделать. В любом случае функция должна явно обозначать то, что принимает она иммутабельный слайс

Павло Побуджувач
для того же, для чего и в С можно передавать const...

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

Рустам-Нафиков Автор вопроса
Aliaksandr Valialkin
Слайсы в Go - самая удобная штука для меня. Постоя...

Как минимум чудаковатый аппенд. Как максимум, передавая его куда то по значению, хочется действительно отправлять копию, а не «копию» у которой все тот же массив. Я в курсе про copy() но как то мудрено это по сравнению с другими языками.

Рустам Нафиков
А что там?

А там все передается по ссылке

Aliaksandr Valialkin
Ок, а что делать, если переданный в функцию иммута...

Ну, вот по поводу «передать конст слайс в другую функцию, принимающую мутабелтеый, уже не получится» - я не согласен, что это плохо. Поскольку будь такое разрешено, это ломало бы напрочь идею - передал вроде как конст, а вроде как обезьяну обманули

Гамлет Avetikyan
Не знаю про жонглирование, тоже свитчнулся с питон...

Я вот тоже хочу свичнуться с ПэХэПэ. Никак не могу определиться в Питухон или в Го податься. Питухон вроде также как ПХП весь сахаром обмазанный и не особо быстрый получается шило на мыло. А в го как понимаю сахара нет и все нужно с нуля велосипедить или я ошибаюсь?

Олег
Я вот тоже хочу свичнуться с ПэХэПэ. Никак не могу...

в чем вопрос? оба языка популярны, пайтон более популярный

Олег
Я вот тоже хочу свичнуться с ПэХэПэ. Никак не могу...

Не особо быстрый для чего Что вы быстрое такое собираетесь писать

Олег
Я вот тоже хочу свичнуться с ПэХэПэ. Никак не могу...

>сахара нет да >все нужно с нуля велосипедить на полшишки

Олег
Я вот тоже хочу свичнуться с ПэХэПэ. Никак не могу...

Насчёт сахара - смотря с чем сравнивать. Насчёт выбора - выбирайте то, что больше по душе и в чём есть желание развиваться)

0x3d
Не особо быстрый для чего Что вы быстрое такое соб...

Допустим сервис для форекс брокера ~1000 RPS

Олег
Я вот тоже хочу свичнуться с ПэХэПэ. Никак не могу...

Ну в твоем сообщении уже предвзятое отношение к одному из языков. Видимо начитался где-то или кто подсказал. Для тебя выбор очевиден из этих двух

Mark Maxwell
Такое пишется на плюсах

Можешь обосновать почему так?

Denis
Можешь обосновать почему так?

Почему брокеры и биржи работают на плюсах?

Mark Maxwell
Почему брокеры и биржи работают на плюсах?

Так это ты видимо знаешь. Зачем вопрос на вопрос? Я кстати про это пока не слышал, что оно на плюсах. Не видел исходников

Mark Maxwell
Такое пишется на плюсах

Да так есть, но плюсы это же ещё дольше чем на го по времени разработки)

Denis
Так это ты видимо знаешь. Зачем вопрос на вопрос? ...

Работа с железом. + Язык супербыстрый. + нагрузки. Все это не вывезут другие языки. Источник: Я, работаю в Хэдж фонде. Стек: С/С++

Mark Maxwell
Такое пишется на плюсах

Да хоть на js. 1000 rps ни о чем

Mark Maxwell
Прямая

Тебе точно не 12?

Олег
Допустим сервис для форекс брокера ~1000 RPS

охренеть вот это мощь, питон конечно 1к рпс не магет -_-

Batyr TokenEcho.com
Да хоть на js. 1000 rps ни о чем

Ну, я про РПС ничего не писал.

Mark Maxwell
Нет, 13

Оно и видно. Обосновывать так - тоже уметь надо

Batyr TokenEcho.com
Да хоть на js. 1000 rps ни о чем

а язык становится лучше, если он веб-пр ложусь ния написанные на нем выдают большой рпс?

Олег
Допустим сервис для форекс брокера ~1000 RPS

так 1000rps я тебе на жс могу устроить

Denis
Оно и видно. Обосновывать так - тоже уметь надо

Ну а что за странные вопросы у тебя?

Mark Maxwell
Ну а что за странные вопросы у тебя?

Ты утверждаешь, а я уточняю. Если не можешь объяснить, чего ляпаешь?

не ошибаешься. Но скорости и на питоне хватает

Павло Побуджувач
не ошибаешься. Но скорости и на питоне хватает

Тогда точно Питухон, для меня больше подходит, спасибо)

append() - это самое гениальное, что было придумано в Go. Он позволяет писать простой и эффективный код, когда нужно минимизировать выделения памяти путем переиспользования уже выделенной памяти

Aliaksandr Valialkin
append() - это самое гениальное, что было придуман...

векторы/динамические массивы в других языках: "ну да, ну да, пошли мы нахер"

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Карта сайта