Size: a a a

Programming Offtop

2020 June 20

I

Igor in Programming Offtop
Кирилл Романенко
Я не понимаю, реально интересно читать кипы, которые вообще не факт что дойдут до прода, а ещё и помнить их по номерам??
https://i.gyazo.com/f4d8ad4c6891ebb2044b9f6da63f7a4f.png

Это не обычный кип, это самый долгожданный долгострой котлина, кип #1
источник

КР

Кирилл Романенко... in Programming Offtop
Igor
https://i.gyazo.com/f4d8ad4c6891ebb2044b9f6da63f7a4f.png

Это не обычный кип, это самый долгожданный долгострой котлина, кип #1
Я уже слышал такое мнение, но никогда не понимал, в чём состоит такая важность фичей кипа 87 и что делает его таким популярным. Имхо, там достаточно нишевые фичи, не могу даже особо придумать, где бы я их мог применить.
источник

(

( in Programming Offtop
Кирилл Романенко
Я уже слышал такое мнение, но никогда не понимал, в чём состоит такая важность фичей кипа 87 и что делает его таким популярным. Имхо, там достаточно нишевые фичи, не могу даже особо придумать, где бы я их мог применить.
Контракт конструктора в интерфейсе
источник

КР

Кирилл Романенко... in Programming Offtop
(
Контракт конструктора в интерфейсе
А зачем?
источник

QH

Quantum Harmonizer in Programming Offtop
Кирилл Романенко
Я уже слышал такое мнение, но никогда не понимал, в чём состоит такая важность фичей кипа 87 и что делает его таким популярным. Имхо, там достаточно нишевые фичи, не могу даже особо придумать, где бы я их мог применить.
+
источник

SG

Sergey Grushin in Programming Offtop
ExpressVPN, как вернуть деньги?
источник

AN

Alexander Nozik in Programming Offtop
Igor
https://i.gyazo.com/f4d8ad4c6891ebb2044b9f6da63f7a4f.png

Это не обычный кип, это самый долгожданный долгострой котлина, кип #1
Подеремся?
источник

AN

Alexander Nozik in Programming Offtop
(
Контракт конструктора в интерфейсе
Нет там такого вообще
источник

AN

Alexander Nozik in Programming Offtop
Кирилл Романенко
Я уже слышал такое мнение, но никогда не понимал, в чём состоит такая важность фичей кипа 87 и что делает его таким популярным. Имхо, там достаточно нишевые фичи, не могу даже особо придумать, где бы я их мог применить.
Потому что там было слово про тайпклассы. Сейчас уже нет, но это как бы не важно, главное, что было. На самом деле это важная штука. В том смысле, что контекстные расширения действительно нужны. Но это не единственный вариант их реализации.
источник

AN

Alexander Nozik in Programming Offtop
Это чтобы без фабрик. Хорошая штука. Но это hkt и этого нет в keep-87
источник

ML

Mikhail Levchenko in Programming Offtop
Кирилл Романенко
Я уже слышал такое мнение, но никогда не понимал, в чём состоит такая важность фичей кипа 87 и что делает его таким популярным. Имхо, там достаточно нишевые фичи, не могу даже особо придумать, где бы я их мог применить.
Применение простое. Сейчас ты можешь написать функцию, работающую с объектом какого то интерфейса. С кипом компилятор сможет находить и подставлять реализацию этого интерфейса для объектов, которые его изначально не реализуют
источник

ML

Mikhail Levchenko in Programming Offtop
Но там путанные правила выведения
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
Но там путанные правила выведения
Да, ключевой момент - это подстановка.
источник

ML

Mikhail Levchenko in Programming Offtop
Мне нравится комба множественные ресиверы + file-wide ресиверы
источник

ML

Mikhail Levchenko in Programming Offtop
Или class-wide
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
Мне нравится комба множественные ресиверы + file-wide ресиверы
🤗
источник

AN

Alexander Nozik in Programming Offtop
Я назвал это file-level, но не важно
источник

ML

Mikhail Levchenko in Programming Offtop
Но я против того, чтобы любой ресивер мог быть контекстом, и любой - именно ресивером в текущем понимании.
Т.е. если для foo ресиверы A и B, то можно было бы писать как


with (A) { B.foo() }

так и

with (B) { A.foo() }
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
Но я против того, чтобы любой ресивер мог быть контекстом, и любой - именно ресивером в текущем понимании.
Т.е. если для foo ресиверы A и B, то можно было бы писать как


with (A) { B.foo() }

так и

with (B) { A.foo() }
Ну там иначе не получается консистентные правила разрешения написать. Посмотрите обсуждение, там один из вариантов был с упорядоченным списком. На самом деле перестановка порядка весьма полезная вещь. Можно динамические пересечения строить
источник

ML

Mikhail Levchenko in Programming Offtop
Всё таки подстановка контекста и создание синтаксисной красоты экстеншнами – разные хотелки. Для создания DSL это может нарушить всю историю
источник