Home
Обсуждение программирования на любых платформах
codingteam@conference.jabber.ru
Четверг, 13 июня 2019< ^ >
O01eg установил(а) тему: C, C#, C++, Clojure, Cobol, Common Lisp, D, Erlang, F#, Go, Groovy, Haskell, Java, JavaScript, Julia, Kotlin, MATLAB, OCaml, PowerShell, Python, R, Racket, Refal, Ruby, Rust, Scala, Scheme, TypeScript
Telegram channel: https://t.me/codingteam
HQ, логи: https://codingteam.org.ru/
Код постить сюда: http://lpaste.net/
Юным погромцам сюда: http://e-maxx.ru/algo/ , а ещё читать Кнутца, Корменца, Седжвикца и др.
Let's Dev (когда Капитан на мостике): http://www.youtube.com/playlist?list=PLK6mcZkmN4QTusFvp_0GVtscQbCiIg81Y
Tsoding: https://tsoding.github.io/schedule.html
http://i.imgur.com/slnyI6a.jpg
Упоминания о Flash, PHP, Pascal/Delphi/Borland, Basic, 1С караются съедением поциента.
Конфигурация комнаты
Участники комнаты

GMT+3
[01:00:30] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[01:00:31] Orhideous вошёл(а) в комнату
[04:00:31] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[04:00:32] Orhideous вошёл(а) в комнату
[05:45:18] OKTAVIUS вошёл(а) в комнату
[05:56:25] uggur вышел(а) из комнаты: Replaced by new connection
[05:56:26] uggur вошёл(а) в комнату
[06:00:40] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[06:00:41] Orhideous вошёл(а) в комнату
[06:23:48] Orhideous вышел(а) из комнаты: Disconnected: closed
[06:42:28] portnov вошёл(а) в комнату
[07:01:56] O01eg вышел(а) из комнаты
[07:09:05] portnov вышел(а) из комнаты
[08:30:04] Orhideous вошёл(а) в комнату
[08:33:31] <tg> <@gsomix> Утро!
[09:01:30] <Orhideous> Гсомиксец!
[09:14:43] Orhideous вышел(а) из комнаты: Disconnected: closed
[09:14:55] Orhideous вошёл(а) в комнату
[09:39:55] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[09:40:03] Orhideous вошёл(а) в комнату
[10:01:06] <tg> <@gsomix> ето я
[10:23:26] <tg> <@winged_pegasus> Утра!
[10:27:35] <tg> <@ttldtor> бедные дети https://ohmy.disney.com/news/2019/06/11/monsters-at-work-and-new-chip-n-dale-shorts-coming-to-disney-in-2020/
[10:27:38] <tg> <@ttldtor> утро
[10:28:26] <tg> <@winged_pegasus> >> <ttldtor> бедные дети https://ohmy.disney.com/news/2019/06/11/monsters-at-work-and-new-chip-n-dale-shorts-coming-to-disney-in-2020/
Мне вот тоже что-то как-то непривычно с этого стиля.
[10:28:36] <tg> <@winged_pegasus> Но в тоже время утиные истории вышли хорошими.
[10:50:20] <tg> <@Devel29A> https://www.opennet.ru/opennews/art.shtml?num=50857
[12:01:51] <tg> <@Devel29A> https://youtu.be/V2B6de1Geks
[12:03:35] <tg> <@winged_pegasus> >> <Devel29A> https://youtu.be/V2B6de1Geks
О дыа.
[12:06:14] <tg> <@Devel29A> суровые ролики такие
[12:09:31] Orhideous вышел(а) из комнаты: Disconnected: closed
[12:35:25] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[12:35:26] Orhideous вошёл(а) в комнату
[13:26:31] Orhideous вышел(а) из комнаты: Disconnected: closed
[13:26:33] Orhideous вошёл(а) в комнату
[14:01:58] <tg> <@ttldtor> а покажите суровый код
[14:04:58] <tg> <@folexeyy> val grouped = (lastOrFirstBlock ++ subscriptionBlocks)
  .evalTap(b => log.info(s"processing block ${b.header.height}"))
  .evalScan[F, Either[Chain[Receipt], (Chain[Receipt], Block)]](Left(Chain.empty)) {
    case (Left(empties), block) if emptyBlock(block) => uploadEmpty(block).map(r => Left(empties :+ r))
    case (Left(empties), block) => F.pure((empties -> block).asRight)
    case (Right(_), block) if emptyBlock(block) => uploadEmpty(block).map(r => Left(Chain(r)))
    case (Right(_), block) => F.pure((Chain.empty -> block).asRight)
  }
[14:05:00] <tg> <@folexeyy> norm?
[14:17:14] <tg> <@ttldtor> хм
[14:36:00] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[14:36:01] Orhideous вошёл(а) в комнату
[15:16:46] <tg> <@ttldtor> я тут название GUI либе придумал
[15:16:55] <tg> <@ttldtor> YAQt
[15:17:01] <tg> <@ttldtor> надо читать как якут
[15:17:55] <tg> <@winged_pegasus> Тыкут
[15:18:13] <tg> <@ttldtor> а вообще, либы должны быть скромными и имена классов в ней не начинаться на Q, например
[15:21:14] <tg> <@Devel29A> А почему Якут?
[15:24:24] <tg> <@ttldtor> ещё один кут
[15:24:56] <tg> <@ttldtor> так, я не знаю, куда это запостить...
[15:24:59] <tg> <@ttldtor> сюда, короче
[15:25:01] <tg> <@ttldtor> https://arxiv.org/pdf/1904.09828.pdf
[15:25:08] <tg> <@ttldtor> @Devel29A ^^^
[15:25:29] <tg> <@Devel29A> Ящо Адын Кут
[15:28:54] <tg> <@a1batross> >> <ttldtor> а вообще, либы должны быть скромными и имена классов в ней не начинаться на Q, например
Будут начинаться с Ya?
[15:29:00] <tg> <@a1batross> Смотри чтобы яндекс не засудил.
[15:29:15] <tg> <@ttldtor> БУДУТ НАЧИНАТЬСЯ С  НИЧЕГО!
[15:29:45] <tg> <@ttldtor> И ВГЛЯДЫВАЯСЬ В ЭТО НИЧТО, ТЫ БУДЕШЬ ЗАДУМЫВАТЬСЯ О СМЫСЛЕ ЖИЗНИ!
[15:30:21] <tg> <@a1batross> А анонимные классы можно?
[15:30:23] <tg> <@Devel29A> >> <ttldtor> https://arxiv.org/pdf/1904.09828.pdf
Интересный папир!
[15:31:02] <tg> <@ttldtor> >> <a1batross> А анонимные классы можно?
НО БОЛЬШЕ ТРЁХ НЕ СОБИРАТЬСЯ!
[15:31:07] <tg> <@ttldtor> ой, не туда
[15:31:36] <tg> <@winged_pegasus> Не больше трёх анонимных классов это хорошо.
[15:31:45] <tg> <@winged_pegasus> ПОтому что хуй потом разберёшься, что за говно в коде.
[15:34:22] <tg> <@ttldtor> а неймспейсы?
[15:35:05] <tg> <@ttldtor> ой, а покажите говно в коде на анонимных классах
[15:35:15] <tg> <@ttldtor> такое, опенсорсное чтобы
[15:35:26] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[15:35:26] <tg> <@ttldtor> а то я прям говная на анонимных классах не видел
[15:35:27] Orhideous вошёл(а) в комнату
[15:36:54] <tg> <@winged_pegasus> >> <ttldtor> а то я прям говная на анонимных классах не видел
У меня боль от кучи туплей в коде, так что несколько опасаюсь и за анонимные классы.
[15:37:07] <tg> <@winged_pegasus> Хотя  они и сильно лущ: там хоть имена полей есть.
[15:37:55] <tg> <@Devel29A> >> <winged_pegasus> У меня боль от кучи туплей в коде, так что несколько опасаюсь и за анонимные классы.
А я вот так и не понял, зачем тупли сделали такими ебанутыми
[15:38:07] <tg> <@Devel29A> Стреляй по ногам - нихачю
[17:57:17] Птичка:D вышел(а) из комнаты
[18:13:14] Птичка:D вошёл(а) в комнату
[18:35:26] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[18:35:27] Orhideous вошёл(а) в комнату
[18:38:16] nightmare вошёл(а) в комнату
[18:38:49] <tg> <@ttldtor> вон в дишке теггированные туплы даже https://dlang.org/phobos/std_typecons.html#tuple
[18:38:56] portnov вошёл(а) в комнату
[18:39:48] <tg> <@ttldtor> или вот норм тайпдэф https://dlang.org/phobos/std_typecons.html#Typedef
[18:41:06] <tg> <@ttldtor> хотя там самому надо уникальность делать
[18:42:13] <tg> <@gsomix> @ttldtor Какой тип у теггированной туплы?
[18:44:42] <tg> <@ttldtor> https://dlang.org/phobos/std_typecons.html#Tuple
[18:46:14] <tg> <@ttldtor> ну там сахар, создаётся структурка с полями с именами или без, в зависимости от параметров
[18:49:01] <tg> <@gsomix> То есть у теггированной и нетеггированной тупли типы разные?
[18:52:57] <tg> <@ttldtor> очевидно, что в ди - да. Потому что тег - это части гетерогенного списка, которым параметрируется тупля
[18:53:05] <tg> <@ttldtor> часть*
[18:56:33] <tg> <@ttldtor> эммм... адовый компил-тайм код там...
[19:02:52] <nightmare> есть безумная идея для стартапа
[19:03:40] <tg> <@ttldtor> https://wandbox.org/permlink/lYRLWEa8G2jxIrrG
[19:03:47] <tg> <@ttldtor> в общем, да - разные
[19:08:27] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[19:09:03] Orhideous вошёл(а) в комнату
[19:09:25] <nightmare> Сервис, который бы генерировал картинки нейросетью в духе работ стрит-арт художников вроде Banksy. Каждому юзеру - уникальный стиль (как будто сам придумал). Далее за подписку юзер будет получать по почте наборы стикер-бомбы для расклейки везде. Люди будут соревноваться и выкладывать фотографии - кто где умудрился приклеить (так соревнуются граффити художники). Люди в топе получают вознагрождение. Далее на стикерах появляется реклама мелким шрифтом. Потом крупнее.
[19:34:24] <tg> <@ttldtor> NPM мне прислал  ❤️🧡💛💚💙💜
[19:34:38] m4n71k0r вошёл(а) в комнату
[19:36:03] Minoru вошёл(а) в комнату
[19:37:20] Orhideous вышел(а) из комнаты: Disconnected: closed
[19:46:08] Orhideous вошёл(а) в комнату
[19:51:44] portnov вышел(а) из комнаты: Replaced by new connection
[19:51:45] portnov вошёл(а) в комнату
[19:53:49] <tg> <@folexeyy> >> <ttldtor> NPM мне прислал  ❤️🧡💛💚💙💜
на выбор?
[19:54:28] <tg> <@ttldtor> когда этот прайдохайп закончиццо?
[19:54:49] <tg> <@folexeyy> Когда все люди начнут воспринимать всех остальных людей такими какие они есть?
[19:54:51] <tg> <@folexeyy> (никогда)
[19:55:10] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[19:55:11] Orhideous вошёл(а) в комнату
[19:55:43] <tg> <@ttldtor> когда к нам начнут прилитать инопланетяне и от количества полов, рас будут плавиться мозги, а вбазах енумы и булины заменят на строки
[19:55:54] <tg> <@ttldtor> прилетать*
[19:55:58] Orhideous вышел(а) из комнаты: Disconnected: Replaced by new connection
[19:55:59] Orhideous вошёл(а) в комнату
[19:56:02] <nightmare> Смотрю на квадратики и думаю - когжа же проблемы с несовпадением кодировок решат
[19:56:42] <tg> <@ttldtor> у тебя квадратики, а у меня в PSI просто куча сердечек, часть из которых разного фона и размера
[19:57:42] <nightmare> у меня одно сердечков и квадратики дальше
[20:12:06] Orhideous вышел(а) из комнаты: Disconnected: closed
[20:12:12] Orhideous вошёл(а) в комнату
[20:14:03] <tg> <@ttldtor> интересно, а на что они поменяют skype for business ? http://www.opennet.ru/opennews/art.shtml?num=50864
[20:14:57] <tg> <@sarakerrigan> >> <ttldtor> интересно, а на что они поменяют skype for business ? http://www.opennet.ru/opennews/art.shtml?num=50864
на что угодно, нет ничего хуже линка
[20:15:13] <tg> <@ttldtor> слэк такой же
[20:15:18] <tg> <@ttldtor> и он не бесплатный
[20:15:28] <tg> <@ttldtor> точнее, не открытый
[20:15:59] <tg> <@ttldtor> вот реально, если тебе нужен воис, иногда видео и шарить рабочий стол, то что само елучшее?
[20:16:07] Orhideous вышел(а) из комнаты: Disconnected: closed
[20:16:09] Orhideous вошёл(а) в комнату
[20:16:17] <tg> <@ttldtor> скайп для бизнеса ещё тыгрировался в эксчейндж
[20:16:35] <tg> <@ttldtor> то есть, планирование митингов, календарики
[20:17:02] <tg> <@ttldtor> лично я не знаю ничего опенсорсного, что могло бы всё сразу
[20:18:53] <tg> <@sarakerrigan> у нас рокетчят
[20:20:06] <tg> <@ttldtor> он такой же хреновый как и слэк?
[20:20:53] <tg> <@ttldtor> помню, в рокете не взлетело что-то и забили там сидеть
[20:26:37] unclechu вошёл(а) в комнату
[20:30:13] Orhideous вышел(а) из комнаты: Disconnected: closed
[20:30:20] Orhideous вошёл(а) в комнату
[20:57:03] uggur вышел(а) из комнаты
[20:57:16] Orhideous вошёл(а) в комнату
[21:12:55] O01eg вошёл(а) в комнату
[21:41:24] Orhideous вышел(а) из комнаты
[21:41:43] Orhideous вошёл(а) в комнату
[21:49:18] <tg> <@ttldtor> это неявное противостояние китайских и индийских программистов? https://www.ixbt.com/news/2019/06/13/huawei-60-android.html
[21:49:51] <tg> <@ttldtor> всё равно ж говно проприетарное)
[21:52:26] <tg> <@ttldtor> омг https://www.asiatimes.com/2019/06/article/say-hello-to-the-russia-china-operating-system/
[22:13:56] uggur вошёл(а) в комнату
[22:17:12] uggur вышел(а) из комнаты: Replaced by new connection
[22:17:13] uggur вошёл(а) в комнату
[22:29:40] <Minoru> @ttldtor: ты вчера ANSI в виндовых терминалах спрашивал. Тебе не помогли, но, может, ты вот этому человеку сможешь помочь? https://unix.stackexchange.com/questions/524527/what-does-it-mean-if-a-process-has-an-o-or-an-i-at-the-start-of-the-line
[22:30:06] portnov вышел(а) из комнаты
[22:38:33] <tg> <@gsomix> >> <ttldtor> очевидно, что в ди - да. Потому что тег - это части гетерогенного списка, которым параметрируется тупля
Нам просто тоже недавно завезли теггированые тупли в F# (и назвали анонимными записями).
[22:42:15] nightmare вышел(а) из комнаты
[22:43:19] <tg> <@gsomix> Но там свои заморочки со сборками. Например, две одинаковые с вида записи в двух разных сборках будут иметь разные типы.
[22:43:49] <Minoru> о, это страшно и прикольно одновременно
[22:44:04] <tg> <@gsomix> Это нужно для того, чтобы иметь все метаданные.
[22:44:13] <Minoru> в F# есть алиасы типов? type NewName = (Int, Int) например
[22:44:25] <tg> <@gsomix> По сути это действительно просто анонимные типы (номинальные, но без названия), а не структурные как кортежи.
[22:44:47] <tg> <@gsomix> >> <Minoru> в F# есть алиасы типов? type NewName = (Int, Int) например
Есть алиасы, но это не newtype.
[22:44:49] <Minoru> можно в неком модуле вместо ADT объявлять просто анонимные тупли и давать им названия. И с точки зрения системы типов это будут уже полноценные, различающиеся типы, а не просто алиасы
[22:45:09] <Minoru> ну вот получается, что вместе с разными сборками это уже newtype
[22:45:17] <Minoru> только я не знаю, что такое сборки ._. Это пакеты?
[22:45:20] <tg> <@gsomix> Для анонимных записей? Да.
[22:46:20] <tg> <@gsomix> Minoru, считай, что сборка — это бинарник с кодом, типами и метаданными.
[22:47:16] <Minoru> а что в неё попадает? Отдельный модуль? Некая группа модулей? Целый пакет (или как там это в F# может называться)?
[22:48:18] <tg> <@gsomix> С точки зрения .NET — это просто библиотека классов.
[22:48:29] <tg> <@gsomix> В пакете может быть несколько сборок.
[22:48:59] <tg> <@gsomix> Например, модуль F# — это просто класс с точки зрения .NET
[22:49:09] <tg> <@gsomix> И просто типы тоже. :)
[22:49:19] <tg> <@gsomix> То есть сборка — это набор модулей и типов.
[22:49:35] <Minoru> ага, ок, то есть сборка — это как статическая или динамическая библиотека в мире Си
[22:49:53] <tg> <@gsomix> Да, наверное.
[22:50:03] <tg> <@gsomix> F# туда еще свои дополнительные метаданные пихает.
[22:50:40] <tg> <@gsomix> И вот если мы хотим нормальную рефлексию по этим анонимным типам, то мы должны их при компиляции номинализировать.
[22:50:51] <tg> <@gsomix> И превратить в какие-то классы с невыговариваемыми названиями.
[22:51:11] <tg> <@gsomix> Зачем нужна рефлексия? Ну, чтобы в JSON сериализовать, например.
[22:51:11] Orhideous вышел(а) из комнаты: Disconnected: closed
[22:51:15] Orhideous вошёл(а) в комнату
[22:51:41] <tg> <@gsomix> Это прям юзкейс номер один.
[22:51:42] <Minoru> ну с рефлексией понятно. Как и с метаданными
[22:52:03] <tg> <@gsomix> Если бы эти типы были структурные, то уже никакой полезной информации не получилось бы извлечь.
[22:53:50] <tg> <@gsomix> В C# уже давно были анонимные объекты, играющие ту же роль.
[22:53:56] <tg> <@gsomix> А недавно добавили кортежи.
[22:54:11] <tg> <@gsomix> И теггирование кортежи. Но они структурные, а все обращения по имени — просто сахарок.
[22:55:51] <tg> <@gsomix> Поэтому я у @ttldtor поинтересовался, как в дишечке сделали.
[23:02:06] <Minoru> если они структурные, то как обращение по имени убеждается, что я не пытаюсь обратиться по имени третьего элемента к кортежу, в котором всего два элемента?
[23:03:52] <tg> <@ttldtor> эээ... в дишечке не будет двух элементов
[23:04:10] <tg> <@ttldtor> сколько объявишь, столько и будет
[23:04:39] <tg> <@ttldtor> там можно обратиться по индексу и есть поименованные алиасы
[23:04:50] <tg> <@ttldtor> это если потроха изучать
[23:05:37] <Minoru> @ttldtor: то есть два кортежа одинакового размера имеют разные типы?
[23:07:38] <tg> <@gsomix> Minoru, ты про C#? Компилятор трекает. А в сборке имена стираются.
[23:08:06] <tg> <@gsomix> Структурные они не с точки зрения всяких структурных манипуляций и полиморфизма.
[23:08:14] <tg> <@gsomix> А лишь то, что они имеют одинаковое представление везде.
[23:08:23] <tg> <@ttldtor> что значит одинакового размера? Кортеж уникален набором типов. Вот в ди "теги" для типов будут выступать как типы (это суть параметризации алиасами), поэтому тип кортеж с типами A B C будет отличаться от типа A+tag B+tag C+tag
[23:09:06] <Minoru> @gsomix: да, про C#. Теперь понятно
[23:09:15] <tg> <@ttldtor> а, про сишарп
[23:10:32] <tg> <@ttldtor> стирать типы, когда это не надо
[23:10:56] <tg> <@gsomix> Почему не надо?
[23:12:13] <Minoru> @ttldtor: я ещё чуток подумал и пришёл к выводу, что спросил ерунду. Можешь забыть мой вопрос :)
[23:12:52] <tg> <@ttldtor> а  я перепутал имена  и типы
[23:13:25] <tg> <@ttldtor> я подумал, что тупли как-то там стираются до набора объектов
[23:13:33] <tg> <@ttldtor> хотя это вполне может быть
[23:13:50] <tg> <@ttldtor> в шарпе же только рантайм
[23:14:27] <tg> <@ttldtor> вообще, я не понимаю всё это притворство. F# строит из себя строготипизированный язычок
[23:14:53] <tg> <@ttldtor> хотя под ним .... "болотце"
[23:15:10] <tg> <@ttldtor> притворимся, что я знаю о типах
[23:15:17] <tg> <@ttldtor> хотя в джаве всё ещё хуже
[23:15:50] <tg> <@ttldtor> я тут тоже гоню, не обращайте внимания
[23:19:35] <tg> <@gsomix> >> <gsomix> Почему не надо?
Просто в .NET нельзя одновременно иметь богатые метаданные и структурную эквивалентность типов.
[23:19:48] <tg> <@gsomix> Поэтому в C# просто есть и то, и другое. :)
[23:20:03] <tg> <@gsomix> И анонимные объекты, и тупли с липовыми тегами.
[23:20:51] <tg> <@ttldtor> гм, в дишке всё по-честному как-то. Проблема с упаковкой вот этого всего барахла
[23:22:00] <tg> <@gsomix> >> <ttldtor> в шарпе же только рантайм
Не понял мысль.
[23:22:13] <tg> <@ttldtor> ладно, это я так теоретизирую. Мне надо взять серьёзный проект и запилить его на ди
[23:23:00] <tg> <@ttldtor> >> <gsomix> Не понял мысль.
ну не статическая типизация. То есть она же только кажется статической?
[23:23:07] <tg> <@ChronosX> >> <ttldtor> ладно, это я так теоретизирую. Мне надо взять серьёзный проект и запилить его на ди
Зочем
[23:23:25] <tg> <@ttldtor> >> <ChronosX> Зочем
а зачем люди живут?
[23:23:36] <tg> <@gsomix> >> <ttldtor> ну не статическая типизация. То есть она же только кажется статической?
Обыкновенная статическая типизация. 🤷‍♂️
[23:23:38] <tg> <@ChronosX> >> <ttldtor> а зачем люди живут?
Зачем на дишке то
[23:23:56] <tg> <@ChronosX> Не перспективный язык какой-то
[23:23:58] <tg> <@ChronosX> Имхо
[23:24:04] <tg> <@gsomix> Вот тебе типы, вот тебе компилятор, который их проверяет. 🤔
[23:24:22] <tg> <@ttldtor> >> <ChronosX> Зачем на дишке то
потому что мне нравится язык и я хочу вылить себе на голову ведро холодной воды, чтобы честно и правдиво говорить про ди как про плюсы
[23:24:29] <tg> <@ttldtor> >> <ChronosX> Неперспективный язык какой-то
хуета
[23:24:45] <tg> <@ttldtor> хотя, это же имхо
[23:24:50] <tg> <@ttldtor> ок, раз имхо
[23:25:12] <tg> <@ChronosX> >> <ttldtor> хуета
Особой суеты вокруг него нету (точнее вообще нету)
[23:25:24] <tg> <@ChronosX> >> <ChronosX> Особой суеты вокруг него нету (точнее вообще нету)
Я про него почти нигде не слышу.
[23:25:31] <tg> <@ttldtor> >> <gsomix> Вот тебе типы, вот тебе компилятор, который их проверяет. 🤔
а когда он их проверяет? Тьфу...я перепутал. А вот в р антайме они такими же остаются типами?
[23:26:16] <tg> <@ttldtor> >> <ChronosX> Я про него почти нигде не слышу.
ну это потому что ты не ищешь о нём инфу, не ходишь на сайт, не смотришь записи с конференций, не мониторишь изменения, не  следишь за эмбедщиками итд итп?
[23:26:31] <tg> <@gsomix> >> <ttldtor> а когда он их проверяет? Тьфу...я перепутал. А вот в р антайме они такими же остаются типами?
Можеь лучше на примере?
[23:26:49] <tg> <@gsomix> А то я после завода плохо соображаю. :)
[23:27:31] <tg> <@ChronosX> >> <ttldtor> ну это потому что ты не ищешь о нём инфу, не ходишь на сайт, не смотришь записи с конференций, не мониторишь изменения, не  следишь за эмбедщиками итд итп?
Я не знаю. Так то я и про раст особо не ищу, но в новостях на различных ресурсах про него проскакивает. Ну да ладно.
[23:28:48] <tg> <@ttldtor> >> <gsomix> Может лучше на примере?
вот есть List<T>. В Плюсах и в ди это T подставится для разных типов. Это шаблоны, понятно. Но в шарпе происходит стирание и мы имеем уже object, так? Потом где-то есть проверки, что вот тут мы с object работаем как с чиселками, вот тут как с некоторыми объектами классов, так? Насколько это всё строго?
[23:30:56] Minoru вышел(а) из комнаты
[23:33:57] <tg> <@ttldtor> >> <ChronosX> Я не знаю. Так то я и про раст особо не ищу, но в новостях на различных ресурсах про него проскакивает. Ну да ладно.
ну ты взял мазилу, которая поднялась на деньгах от поисковых сайтах, запилила язычок, нашумела в тырнетиках и всё так громко с пафосом, на него набросились. Реклама была уровня Java, когда говорили, что текущие языки ненадёжны и небезопасныв, но быстры, а мы вам предлагаем джаву - она надёжная, безопасная и не очень быстрая.
или взять ди, который пилил Брайт, который был похож на си сначала, а потом примерно с приходом Александреску был перелопачен. Вокруг собралось немножко людей, соображающих в ЯП, немножко в компиляторах, потом даже примкнуло немножко прикладников, которые устали от питона. Ди дружит с си, плюсами, обжект си, имеет вменяемые спеки, аби и почему-то аж три компилятора
[23:35:06] <tg> <@gsomix> >> <ttldtor> вот есть List<T>. В Плюсах и в ди это T подставится для разных типов. Это шаблоны, понятно. Но в шарпе происходит стирание и мы имеем уже object, так? Потом где-то есть проверки, что вот тут мы с object работаем как с чиселками, вот тут как с некоторыми объектами классов, так? Насколько это всё строго?
Вряд ли я напишу лучше. :)
https://stackoverflow.com/a/31876747
[23:36:01] <tg> <@ttldtor> Reification - это про марксизм)))
[23:37:39] <tg> <@gsomix> tl;dr В .NET информация о дженериках не стирается, а остается в метаданных.
[23:37:46] <tg> <@ingvarjackal> @fvnever слухни-ка северного шлягера :)
https://youtu.be/ZpGvQBeYi7A
[23:37:49] <tg> <@gsomix> Это, например, позволяет использовать рефлексию.
[23:38:06] <tg> <@gsomix> Или, например, JIT может специализировать код для примитивных типов.
[23:38:26] <tg> <@ingvarjackal> >> <gsomix> tl;dr В .NET информация о дженериках не стирается, а остается в метаданных.
yay
[23:38:34] <tg> <@ingvarjackal> жаль, что дотнет и сишарп -- мертвы
[23:39:08] <tg> <@ingvarjackal> лучше бы умерла джава и все перешли на шарп, освободившийся от гнёта M$
[23:39:10] <tg> <@ttldtor> >> <gsomix> tl;dr В .NET информация о дженериках не стирается, а остается в метаданных.
но это в рантайме
[23:39:23] <tg> <@ttldtor> а как происходит проверка в компилтайме?
[23:39:25] <tg> <@ingvarjackal> но увы :)
[23:39:36] <tg> <@gsomix> >> <ttldtor> а как происходит проверка в компилтайме?
Компилятор трекает.
[23:39:44] <tg> <@ingvarjackal> >> <ttldtor> а как происходит проверка в компилтайме?
так же, как проходит проверка во время кастования классов, ну
[23:39:50] <tg> <@gsomix> Вот с проверками в компил-тайме я никаких проблем не вижу. :)
[23:40:04] <tg> <@gsomix> Так же как и в джаве.
[23:40:13] <tg> <@ingvarjackal> а я -- вижу
[23:40:18] <tg> <@gsomix> А вот в риалтайме в джаве у тебя уже никакой инфы о дженериках нет.
[23:40:21] <tg> <@ingvarjackal> я хочу зависимые классы
[23:40:24] <tg> <@ingvarjackal> а не как в джаве
[23:40:29] <tg> <@ingvarjackal> нулл-безопасность
[23:40:32] <tg> <@ingvarjackal> а не как в джаве
[23:40:42] <tg> <@ttldtor> ага
[23:40:45] <tg> <@ingvarjackal> короче, всё печально
[23:40:50] <Orhideous> <@gsomix> tl;dr В .NET информация о дженериках не стирается, а остается в метаданных.
В скалке тоже можно протащить в рантайм
[23:41:04] <tg> <@ttldtor> у меня обсиралась скалка
[23:41:21] <tg> <@gsomix> Кстати, о скалке. Именно из-за того, что в джаве дженерики стираются, там можно делать всякие трюки типа реализации HKT.
[23:41:30] <tg> <@gsomix> В .NET уже не прокатит без перепиливания рантайма.
[23:41:35] <tg> <@ingvarjackal> что такое НКТ
[23:42:13] <tg> <@ttldtor> я хочу по полной юзать трейты в скалке, а она говорит - сорь м ытут типы стёрли, я не уверена,ч то хуй - это хуй
[23:43:11] <tg> <@ttldtor> ну выставить требование к типу, чтобы в нём был метод foo, который берёт инт и возвращает инт я не могу
[23:43:15] <tg> <@ttldtor> заматчить тоже
[23:43:53] <Orhideous> Тебе структурные типы в компилтайме подавай.
[23:44:10] <tg> <@ttldtor> где-то у меня был пример дерьмокода на скалке....
[23:44:36] <Orhideous> Жги.
[23:45:43] <tg> <@gsomix> >> <Orhideous> Тебе структурные типы в компилтайме подавай.
Чистов в компил-тайме это не очень сложно сделать же.
[23:46:51] <tg> <@gsomix> В F# есть, например (но никак не причешут к приличному виду).
[23:47:15] <tg> <@gsomix> Другое дело, что там просто код инлайнится и никакой инфы в рантайме.
[23:50:52] <tg> <@ttldtor> гм, не могу найти....
[23:51:02] <tg> <@ttldtor> и в истории чата тоже нет
[23:51:13] <tg> <@ttldtor> а я помню, что уже ныл сюда
[23:57:22] <tg> <@gsomix> @ttldtor Лучше бы код писал!
Powered by ejabberd - robust, scalable and extensible XMPP server Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!