Aleksandr
имеется в виду утиная типизация
Maksim (Ellrion)
Привет, а почему в golang не сделали явную реализацию интерфейса?
потму что это круче. связанность уменьшает
Vitalii
Нет никакой статьи, почему они решили именнто так делать?
Илья
ну, можно добавить constraint var _ MyInterface = (*Mytype)(nil)
Maksim (Ellrion)
тема в том что ты можешь использовать сторонние структуры из сторонних пакетов, которые ничего не знают о твоем приложении и при этом не привязываться именно к ним
Илья
если хочется чтобы была ошибка компиляции
Vitalii
Окей, всем спасибо
Alexander
зачем это нужно?
ну например ты сразу понимаешь что тебе нужно реализовать какие-то методы, тебе IDE скажет что твой класс не соответствует интерфейсу. для DI контейнеров надо. в джаве, например, в интерфейсе уже могут быть какие-то константы прямо в интерфейсе и даже быть некая реализация для методов.
Alexander
и там и там свои плюсы. вообще на го, после явы, использовать интерфейсы слегка непривычно
Aleksandr
https://talks.golang.org/2015/gophercon-goevolution.slide#1
сам нашел ответ на вопрос по ссылке? я нет
Alexander
там вроде была универсальная статья, типа "почему в го нет такой-то фичи"
Vitalii
сам нашел ответ на вопрос по ссылке? я нет
Нет, оставил на потом почитать
Aleksandr
Нет, оставил на потом почитать
я не тебе задал вопрос, а оставишему ссылку в качестве ответа, в котором ответа нет
Илья
Inspiration: Smalltalk
Artem
Привет, а почему в golang не сделали явную реализацию интерфейса?
https://www.reddit.com/r/golang/comments/40ukd6/what_is_the_purpose_of_implicit_implementation_of/
Aleksandr
Inspiration: Smalltalk
это не обоснование архитектурного решения - "сделал как там увидел"
Илья
это объяснение, почему так сделано
Nikita
Привет, а почему в golang не сделали явную реализацию интерфейса?
Чтобы не создавать явную зависимость между пакетами в рантайме
Aleksandr
нет, объяснение сделано как где, а не почему
Artem
нет, объяснение сделано как где, а не почему
вообще в FAQ есть Another important principle is to keep the concepts orthogonal. Methods can be implemented for any type; structures represent data while interfaces represent abstraction; and so on. Orthogonality makes it easier to understand what happens when things combine.
Artem
т.е. причина - ортогональность
Quet
так себе причина ) принудительное объявление какой интерфейс имплементится никакой ортогональности бы не помешало
Artem
так себе причина ) принудительное объявление какой интерфейс имплементится никакой ортогональности бы не помешало
на этот счет сть другое Syntax is clean and light on keywords Throughout its design, we have tried to reduce clutter and complexity
Quet
но мне кажется го это не тот язык где надо искать рациональное объяснение тому что есть что-то сделано так потому что не осилили лучше что-то притащили из plan9 и там было сделано так что-то рационально
Quet
и поди разберись где что
Artem
сомневаюсь, что не осилили, как бы ребята там серьезные. Просто это лишнее. Зачем имплементация, если основная задача -это композиция.
Quet
серьезные ребята игнорирующие последние лет 30 computer science да ну, вон с этими избитыми генериками даже итог: "мы не знаем как их сделать нормально"
Artem
серьезные ребята игнорирующие последние лет 30 computer science да ну, вон с этими избитыми генериками даже итог: "мы не знаем как их сделать нормально"
ну вот тже не знаю и не знаю зачем они мне, я ими толком и не пользовался, на java 5 писал, а так скрипты.. вообще не ощущаю проблемы )))
Quet
или с gc "мы заточим gc под один юзкейс (latency в ущерб throughput) и забьем на остальное потому что нормальный gc это сложно
Zver
сомневаюсь, что не осилили, как бы ребята там серьезные. Просто это лишнее. Зачем имплементация, если основная задача -это композиция.
Ребята серьезные, но возрастные, а в большом возрасте хочется попроще, чтобы меньше думать. И вот почти весь язык из этой парадигмы сделан.
Artem
Ребята серьезные, но возрастные, а в большом возрасте хочется попроще, чтобы меньше думать. И вот почти весь язык из этой парадигмы сделан.
мне нравится предельно простая философия Си и кажется, что Go тоже эт переростет, либо займет более узкую нишу. В конце концов живут люди без этого и на качестве продукта отсутсвие генериков никак не отражается
Artem
ждем Go++
Alexander
ждем Go++
раст в смысле ?)
Artem
боюсь пока раст будет окончательно готов я уже буду на пенсии )
Quet
ну если тебе через год-другой на пенсию то да
Alexander
"ща-ща, падажжи, будет готово"
Artem
угу, и в пещерах тоже жили )
ну вот как ни парадоксально но Go -это как раз язык нового поколения, это же произведение искусства, в котором просто отсечено все лишнее. :)
Quet
да и хз что такое "готов" для меня сейчас там не готова асинхронщина, остальное ок а кому-то и то что сейчас вполне норм
Quet
а кому-то и через 10 лет будет хотеться какого-нибудь gc из коробки который в раст не завезут и будет "не готов"
Anonymous
ждем Go++
Go с классами ЛОЛ
Quet
надо опросы делать: на чем писали люди которые так восхищаются го ) глоток чистого воздуха, вот это все..
Quet
c# как язык намного круче, но экосистема конечно печаль с джавой сложнее, после энтерпрайза какого-нибудь все что угодно будет глотком чистого воздуха
Мерль
Не то чтобы это было плохо
Илья
помоему, не такая уж и узкая
Artem
Ящитаю go как был так и останется в узкой нише
От гугла что угодно ждать можно они как убить могут самый успешный проект, так и притащить Go на мобилы (как бы не печально было всю java инфраструктуру переписать, но эти ребята отмороженные и вполне осилят.). Потому прогнозы дело не благодарное
Илья
ну то есть не первое есто работы, где я кроме Go не использую ничего
Anonymous
Лично мне не хватает GUI для, чтобы не возвращаться к другим языкам "для десктопа"
Илья
ютуб же не переписывали, только dl.youtube
Anonymous
ютуб же не переписывали, только dl.youtube
насколько мне известно, активно переписывают с пайтона на Go
Anonymous
Поставить один из самых, если не самый убыточный проект гугла на Go, а потом закопать язык... ну с трудом верится
Илья
подсистема стриминга видео
Artem
Ну прибить 9 летний проект, переписать тот-же ютуб на него.... И закопать? Вы серьезно?
бекенд ютуба C, C++, Python, Java, Go, я конечно не уверен, но они ту часть, которая на php была переписали на Go или что -то еще? )
Илья
поправлюсь, Several big user-facing services use it, including youtube.com and dl.google.com
Илья
https://talks.golang.org/2012/splash.article#TOC_1
Nastya
Программисты - точные ребята. Поздравлять будем завтра.
А пока давайте попробуем познакомиться. В параллельном канале, возможно, с кем-то уже говорили, надеюсь состав чатов не идентичен) Я сейчас работаю над созданием команды классных Go сеньоров, которым интересно разработать полезный продукт с "0". У нас есть CEO, CTO, деньги и амбициозная идея сделать такой протокол передачи видео, который обеспечит хорошее качество картинки и звука даже при слабом канале связи, мы будем использовать в работе ANN и я хочу познакомиться, в частности, тут, с Go разработчиками, кому интересны нейронные сети. Вы ведь тут есть?
Илья
тут только недавно угомонилась перепалка по поводу ML и Go
Zver
https://t.me/golangjob
Она там уже есть. )
Zver
Вообще для этих проектов надо каких-нибудь сишников искать.