
Semyon
30.03.2017
17:33:05

Мерлин
30.03.2017
17:33:23

Semyon
30.03.2017
17:33:58
я чо, котаны, кто-то может рассказать про дженерики вне статической типизации?

Greg
30.03.2017
17:34:08
???

Google

Semyon
30.03.2017
17:34:17
меня так радует вот это вот бравирование статической типизацией у гоферов
котаны, в го система типов так-то говно сраное, если сравнить с чем угодно почти

Greg
30.03.2017
17:34:46
А вот про канал с датой и ошибкой в качестве опции это вещь

Sander
30.03.2017
17:34:53
вот что вы думаете о том чтоб писать игры на php ?)
так как на работе, у нас сениор разработчик сказал, что на php можно очень хорошие игры написать, что зачем писать игру на каком-нибудь другом языке, ведь зависит от того как хорошо ты знаешь язык и пишешь код.

Phil
30.03.2017
17:35:21

Greg
30.03.2017
17:35:32
Думаем, что нужно брать UE4 и не парить мозг :)

Semyon
30.03.2017
17:35:38

Мерлин
30.03.2017
17:35:49

Phil
30.03.2017
17:35:57

Мерлин
30.03.2017
17:36:00
Либо писать свои кодогенеарторы

Semyon
30.03.2017
17:36:03

Мерлин
30.03.2017
17:36:17
Но это адок в большинстве случаев, по сути делаешь работу компилятора

Phil
30.03.2017
17:36:31

Google

Phil
30.03.2017
17:36:43

Мерлин
30.03.2017
17:36:53

Semyon
30.03.2017
17:37:03
нечо переписывать

Phil
30.03.2017
17:37:56
Это читать потом сложно и переписывать
Читать сложно как раз дженерики и всякий ООП. Переписывать - ну да, есть некоторые особенности. Хотя вот возвращаясь к ООП - его тоже сложно переписывать. Иногда невозможно в адекватные объемы работ

Semyon
30.03.2017
17:38:09
филипп блеать
какое в жопу ООП?

Олег
30.03.2017
17:38:15
Напрашивается структура, как по мне
И не уверен, может стандартный способ обработки ошибок через nil прокатит.
А вообще, если ошибка отдельным типом, то отправитель в канал явно уже в курсе, что это ошибка, так что в канал её можно и не пихать.

Phil
30.03.2017
17:38:27

Мерлин
30.03.2017
17:39:23
Это читать потом сложно и переписывать
Потому что реализация например интерфейса
Message {
Type() MessageType
}
для скажем строки, числа и двух видов структур займёт два-три экрана
С опциональными типами заняло бы шесть строк
Тебе придётся переписывать КАЖДЫЙ тип, который удолетворяет интерфейсу
В случае например Бот АПИ телеграма - это с полтора десятка типов, Карл
Это адок
Кода на такое смотришь - хочется застрелиться
А вы пытались разбирать AST гошечки с помощью пакета go?
Это просто жесть

Google

Мерлин
30.03.2017
17:43:22
Сплошные тайп-касты без наличия адекватной документации (потому что без документации хуй поймешь какой тип какому интерфейсу удолетворяет)

Phil
30.03.2017
17:44:32

N
30.03.2017
17:44:46
Это просто жесть
Все познается в сравнении. Для меня самая жесть это разбор файлика c расширением vbs на 10к строк, в котором вначале стоит On Error Resume Next и без этой штуки просто не работает ибо ошибка каждые 50 строк какая-нибудь обнаруживается
Так что лучше бы я разбирал AST

Мерлин
30.03.2017
17:45:23
И писать его
А потом рефакторить

Phil
30.03.2017
17:46:00
Это просто жесть
Ну не знаю. Для меня всегда было жестью разбирать все эти перезагрузки, виртуальгные методы и прочую хрень. Которую голдову сломаешь разобрать. А по трем экранам пробежаться не проблема вообще

Мерлин
30.03.2017
17:46:09
В общем делать то, что в большинстве языков со статической типизацией делает компилятор

corpix
30.03.2017
17:46:22
И тесты на "общую реализацию" чего-либо не напишешь, потому что копипаст везде

Phil
30.03.2017
17:47:09

Мерлин
30.03.2017
17:47:16

Semyon
30.03.2017
17:47:17
и ты идешь и делаешь это в 20 местах
стараясь не проебать

Slava
30.03.2017
17:48:10
чем меньше аргументов - тем больше матов?

Semyon
30.03.2017
17:48:24
ну либо тайпкасты и привет, "статическая типизация"

Phil
30.03.2017
17:48:26

Semyon
30.03.2017
17:48:42

Google

Мерлин
30.03.2017
17:48:51
И ты смотришь такой на экран, забитый одинаковыми, одинаковыми методами, в которых отличаются исключительно названия типов
И думаешь

Phil
30.03.2017
17:48:54

Semyon
30.03.2017
17:48:55
называй языки со статической типизацией по очереди

Мерлин
30.03.2017
17:49:02
"Ну пайк, ну ёоп твою мать"

Semyon
30.03.2017
17:49:09
а мы будем говорить, есть там дженерики или нет
я знаю два, где их нет
это C и Go

Phil
30.03.2017
17:49:30

Semyon
30.03.2017
17:49:32
во всех остальных, которые мне на ум приходят они есть

corpix
30.03.2017
17:49:53
Кажется просто большинство гоферов аффектит http://wiki.c2.com/?BlubParadox
Вот они и не понимаю "зачем мне эти сложности"

Phil
30.03.2017
17:50:01

Semyon
30.03.2017
17:50:13
дженерики это свойство статической системы типов, в динамической системе типов они не имеют смысла

Phil
30.03.2017
17:50:57
со СТАТИЧЕСКОЙ типизацией, филипп
я не понимаю как в психологию разработки влезает технический термин "статическая типизация", поэтому я его уже несколько раз проигнорировал

Semyon
30.03.2017
17:51:23
какую психологию? ты о чем?

Phil
30.03.2017
17:51:24

Мерлин
30.03.2017
17:51:28

Phil
30.03.2017
17:51:59
какую психологию? ты о чем?
эээ... о нужности или ненужности дженериков? эффективно и комфортно с ними работать или нет? это же чисто у нас в голове и нигде больше

Google

Semyon
30.03.2017
17:52:10
а оптимизирующие компиляторы, которые на эти самые дженерики опираются — они типа воображаемые?

Phil
30.03.2017
17:52:35

Semyon
30.03.2017
17:52:36
или что?

Phil
30.03.2017
17:53:08
мы забыли про каке такие языки ещё есть со статической типизации, где эти дженерики нужны :)))

Semyon
30.03.2017
17:53:09
не во всех языках даже type erasure есть, то есть эти самые дженерики реально существуют в рантайме, а не только в компайл тайме

Phil
30.03.2017
17:53:53
Просто есть C. И go. Остальное - там вроде как не нужно :)

Semyon
30.03.2017
17:54:12

corpix
30.03.2017
17:54:31

Semyon
30.03.2017
17:55:32
Java, C#, Scala, Kotlin, Haskell, OCaml, Nim

corpix
30.03.2017
17:55:58

Semyon
30.03.2017
17:56:01
Rust, блеать
даже PONY LANG!

Egor
30.03.2017
17:56:46
Пацаны, сделайте себе канал "Срач по поводу Go" и там говорите на эту тему. Ну правда, на каждом углу о Go эта тема поднимается

Phil
30.03.2017
17:56:59
Кросме C#, C++ и Java это всё хорошо видно в микроскоп. C#, C++ и Java - это кровавый ынтырпрайз.

Slava
30.03.2017
17:58:00

Мерлин
30.03.2017
17:58:13
java, cpp, С#, rust, pascal, scala, haskell

Semyon
30.03.2017
17:58:23

Phil
30.03.2017
17:58:25
В pascal нет дженериков
В Fortran тоже