Size: a a a

2020 June 17

KK

Kirill (Cykooz) Kuzm... in rannts
Только почему скобки круглые? Я первый раз глянул и подумал что это такие аргументы у функции
func Print(type T)(s []T)
источник

RB

Roman Bolkhovitin in rannts
чтобы не как джава, ну )
источник

KK

Kirill (Cykooz) Kuzm... in rannts
А, хотя знаю почему - что бы было меньше проблем у парсера, и он не путал дженерик параметры с операциями сравнения больше-меньше
источник

KK

Kirill (Cykooz) Kuzm... in rannts
В Rust такая же фигня есть, но там проблему решили с помощью турбо-рыбы (::<>). Но это только при вызове дженериков, когда надо явно указать тип, если он не автоопределяется. При декларации же нормально используются угловые скобки.
pub fn size_of<T>() -> usize {
}
...
size_of::<u8>()
источник

A🌚

Al 🌚l in rannts
Kirill (Cykooz) Kuzminykh
А, хотя знаю почему - что бы было меньше проблем у парсера, и он не путал дженерик параметры с операциями сравнения больше-меньше
В дизайне про это написано, ты прав: https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-contracts.md
источник

A🌚

Al 🌚l in rannts
Kirill (Cykooz) Kuzminykh
О, всё таки прогнулись и решили сделать дженерики
Так уже давно идут разговоры про дженерики, просто очень постепенно к ним подходят
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Читал давно, что дженерики специально не были завезены в Go. Типа это было частью его "идеологии".
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Поэтому и написал что "прогнулись" под требования комьюнити
источник

SA

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

KK

Kirill (Cykooz) Kuzm... in rannts
Всегда надо чем-то жертвовать. Питон медленный, зато его не надо компилять супер долго. C++, Rust, будущий Go и др. - быстрые языки, но приходится платить скоростью компиляции, что бы они заодно были ещё и удобными.
источник

SA

Sergey Arkhipov in rannts
Go еще да, довольно консервативный язык, поскольку разумно сделан так, чтобы возможностей был необходимый минимум. Я с тревогой смотрю за тем, как туда ввозят генерики, если честно
источник

A🌚

Al 🌚l in rannts
Ну щас допилят линкер новый, а потом можно и замедлять генерацией кода для дженериков
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Sergey Arkhipov
Go еще да, довольно консервативный язык, поскольку разумно сделан так, чтобы возможностей был необходимый минимум. Я с тревогой смотрю за тем, как туда ввозят генерики, если честно
Т.е. ты считаешь, что дженерики совсем немного проблем решают, нежели создают? А как же, например, возможность добавлять поддержку своих типов данных в стороннюю библиотеку? Читал что это как раз решалось бы дженериками. А без них приходится копипасить код из чужой либы, что бы сделать имплементацию для своего типа данных.
источник

A🌚

Al 🌚l in rannts
Kirill (Cykooz) Kuzminykh
Т.е. ты считаешь, что дженерики совсем немного проблем решают, нежели создают? А как же, например, возможность добавлять поддержку своих типов данных в стороннюю библиотеку? Читал что это как раз решалось бы дженериками. А без них приходится копипасить код из чужой либы, что бы сделать имплементацию для своего типа данных.
Ну для библиотек хорошим тоном считается принимать на вход интерфейсы, а не конкретные типы. Так что этой проблемы и не нужно решать, для хорошо написанных библиотек
источник

A🌚

Al 🌚l in rannts
Ну хотя для базовых типов наверное да, только копипаста
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Ну вот желание "хорошо написанных библиотек" несколько конфликтует с исходными целями создания языка. А именно что бы программы на нём могли писать и поддерживать вчерашние студенты, которых Google будет нанимать за копейки.
источник

in

ildar nizamov in rannts
Kirill (Cykooz) Kuzminykh
Ну вот желание "хорошо написанных библиотек" несколько конфликтует с исходными целями создания языка. А именно что бы программы на нём могли писать и поддерживать вчерашние студенты, которых Google будет нанимать за копейки.
s/студенты/ИИ/
источник

SA

Sergey Arkhipov in rannts
Не конфликтует. На мой взгляд, дженерики чаще всего противоречат нормально написанному коду. На практике в Го очень-очень мало случаев, когда нужны генерики: либо когда пишешь библиотеку, которая делает нечто такое, где тип объектов не очень важен (а такие на практике можно по пальцам одной руки пересчитать), либо когда микрооптимизируешь узкое место. Если ты пишешь приложение, что там чаще всего можно (и нужно) использовать интерфейсы

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

SZ

Sergey Z in rannts
Все же видели?
источник

SZ

Sergey Z in rannts
Купить робособаку Spot от Boston Dynamics смогут все желающие — но пока только в США. Робот стоит $74 500 — это около 5,2 млн рублей: vc.ru/tech/134510
источник