@kotlin_lang

Страница 828 из 982
Mikhail
25.08.2018
13:03:04
AleksanderSh
25.08.2018
13:03:48
Google
Mikhail
25.08.2018
13:06:02
Вот это вбросил
Не нуачо, отсутсвие raw типов, generic variance, data class, final by default, var/val, лямбды. Это все штуки, которые давным давно надо было добавить в java

Quantum Harmonizer
25.08.2018
13:07:13
Это кодогенерация и сахар же ну
Язык программирования — это кодогенерация и сахар.

Quantum Harmonizer
25.08.2018
13:10:17
Поэтому java 2.0?
это не моё утверждение

Roman
25.08.2018
13:10:37
Всё так. Kotlin это Java 2.0 _by design_, хоть ему так никогда и не суждено называться. Кому интересна история, можете почитать как в 2010 в community обсуждалось что пора бы делать Java 2.0 и какие фичи там должны быть: http://blog.joda.org/2010/09/next-big-jvm-language_964.html Однако, авторы Java этот призыв не услышали и вот теперь мы видим как Kotlin (т.е. Java 2.0 но только от людей которые не могут использовать Java trade mark), который практически всё это воплотил, завоевывает мир

Mikhail
25.08.2018
13:14:16
что в этом радостного? я юзал wait/notify

и меня вот напрягает, что в котлине нет тернарного оператора

Quantum Harmonizer
25.08.2018
13:15:08
ой, началось

Mikhail
25.08.2018
13:15:17
=D

Roman
25.08.2018
13:16:13
То что какую-то конструкцию кто-то юзал еще не повод её там иметь. Дазиайн хорошего языка в первую определеяется не теми фичами которые там есть, а теми, которых там нет. Я вот начинал программировать на бейсике и всегда там юзал GOTO. Я в современных языках его нет. И это хорошо.

Google
Mikhail
25.08.2018
13:20:46
но тернарный то оператор за что выпилили?

Roman
25.08.2018
13:23:24
Правильный вопрос не "за что", а "почему". Поэтому что в Kotlin есть if-expression (в отличие от Java и его предков по C/C++ линии) и его вполне хватает для решения тех практических проблем, для которых в C/C++ использовался тернарный оператор.

Mikhail
25.08.2018
13:25:00
хватает, только выглядит вырвиглазно

Roman
25.08.2018
13:25:10
(там еще есть вагон побочных соображений дизайнового характера, но вот то что я написал — это саоме главное).

Igor
25.08.2018
13:26:06
хватает, только выглядит вырвиглазно
Это все джава-исскажение. Если бы начинал с норм языков, сейчас бы так не казалось

Roman
25.08.2018
13:26:35
У меня есть подозрение, что если вам часто приходится такой "вырви глаз" код, то вы что-то делаете не так. Может быть вам не хватает пары-тройки специфичных для вашего домена функций, который сделают ваш код более понятным для читателя и более приятно выглядишим.

Mikhail
25.08.2018
13:26:38
а зачем выпилили поддерку вот такого кода while ((i += 2) < 10)?

Igor
25.08.2018
13:26:50
с каких?
С таких, где все экспрешен ?

Roman
25.08.2018
13:27:10
а зачем выпилили поддерку вот такого кода while ((i += 2) < 10)?
Примерной по той же причине, по которой современные языки как однин выпили поддержку GOTO

Nameless
25.08.2018
13:27:14
С таких, где все экспрешен ?
это хаскели\сложуры?

так и вижу программистов которые с хаскеля\сложуры начинают)

Mikhail
25.08.2018
13:28:10
просто странно видеть новый язык, в котором не добавляются фичи, а удаляются

Roman
25.08.2018
13:29:31
просто странно видеть новый язык, в котором не добавляются фичи, а удаляются
Ничего станного. Я очень рекомендую немного изучить история развития языков программированияю. Прорывы как раз в осном и происходят за счет выпиливания старых конструкций и замены их на новые

Artem
25.08.2018
13:29:54
Вы как-то не так просто смотрите на котлин)

Mikhail
25.08.2018
13:30:13
а как надо на него смотреть?

Mikhail
25.08.2018
13:31:30
да там вообще пипец, но корутины есть

Google
Хекс
25.08.2018
13:31:40
горутины

Nameless
25.08.2018
13:32:01
а как надо на него смотреть?
ровно наооборот чем смотрите вы, очевидно новых фич вагон и тележка (большая)

Mikhail
25.08.2018
13:32:23
да как-то применять эти новые фичи негде

Roman
25.08.2018
13:32:27
При дизайне языка Kotlin не стояла цель соревноваться в CodeGolf с C/C++. Не стояло цели получить "zero-cost" abstractions. Код вида while ((i += 2) < 10) намного понятней читается в виде for (i in 0 until 10 step 2) Компилятору-то все-равно, а вот человеку, читающему такой код, намного понятней что будет происходить с переменной i именно во втором варианте.

Mikhail
25.08.2018
13:33:20
for да лучше читается, я меня больше волнует чтение из стрима и сразу сравнение с -1

Igor
25.08.2018
13:34:40
это хаскели\сложуры?
Кстати, когда у тебя не императивные стейменты, а экпрешены - то компилятор может больше помочь (типа авто-рефакторинг на extract-method или проверить все кесы). Постоянно на работе "борюсь" с людьми, которые пришли из java и юзат when как swift или сначала создают список, а потом добавляют элементы.

Roman
25.08.2018
13:34:57
да как-то применять эти новые фичи негде
Может вы просто пытаесь использовать Котлин для чего-то не того? Если вы пишете чего-то низко-уровневое/системное, то посмотрите на Rust. Я для прикладных задач Котлин очень хорош. Все его фичи как раз и заточены под решение тех или иных прикладных задач.

Mikhail
25.08.2018
13:35:24
я пишу бекед веб-приложения

Nameless
25.08.2018
13:35:28
а какие фичи вы юзаете повседневно?
нулл чекинг, елвисы, экстеншен методы - ставлю класс

AleksanderSh
25.08.2018
13:35:57
Я бы все-тут остановился на том, что это другой язык, отпачкованный от джавы, а не 2.0

Maxim
25.08.2018
13:36:06
а какие фичи вы юзаете повседневно?
как минимум delegates, companion object и возможность их наследования и extension функции

AleksanderSh
25.08.2018
13:36:20
В 2.0 джаве появится package-private модификатор?

Roman
25.08.2018
13:37:36
я пишу бекед веб-приложения
И вам часто приходится читать из стрима и сравнивать сразу с -1? Может один раз написать для этого функцию? Кстати, в стандартной библиотке уже есть несколько готовых решений как раз для случаев чтения из стрима. Если приведете пример вашего кода, то здесь вам смогут подсказать как его улучшить.

AleksanderSh
25.08.2018
13:37:41
У меня, может, джава головного мозга, но каждый раз начинаю тупить, когда пишу in, out в дженериках или циклы.

Хотя оно вроде упрощать должно

Sergey
25.08.2018
13:40:27
Google
Roman
25.08.2018
13:40:48
Ну вот у меня тоже бывают ситуции когда мне было бы удобней сделать GOTO, а не заводить boolean переменную и делать break из цикла. Но я не прошу вернуть GOTO. Лучше я иногда напишу на пару строк больше, зато не будут страдать от чтения чужого спагетти-кода, напичканого GOTO в разные места.

Ivan
25.08.2018
13:41:00
У меня, может, джава головного мозга, но каждый раз начинаю тупить, когда пишу in, out в дженериках или циклы.
За этими словами стоит конкретная семантика, которая очень понятно объяснена в kotlin in action, в офф доках это тоже скорее всего есть

Mikhail
25.08.2018
13:41:38
Тогда Java 3.0 - это Lisp? ?
Если ты фанат Егора Бугаенко?

AleksanderSh
25.08.2018
13:43:11
За этими словами стоит конкретная семантика, которая очень понятно объяснена в kotlin in action, в офф доках это тоже скорее всего есть
Читал, и то, и другое. Уже почти год пишу только на котлине, но до сих пор на этих моментах подвисаю.

Я все ещё топлю против "java 2.0", а не против котлина. Котлин шикарен, но в java вся ее многословность и простота это фича.

Igor
25.08.2018
13:48:46
Roman
25.08.2018
13:50:40
еще все никак не могу привыкнуть писать сначала название переменной, а потом тип, хотя уже год пишу на котлине
Привыкните. Во всех современных языках так. И скорей всего по старому (тип имя) уже никогда не будет, а умрет (рано или поздно) вместе с legacy языками.

Admin
ERROR: S client not available

Igor
25.08.2018
13:53:09
In/Out это по-моему гораздо интуитивнее, чем Extends/Super
Да по моему джава единственный язык, где подругому (декларейшен-сайд-верианс)

Anna
25.08.2018
13:53:35
Да по моему джава единственный язык, где подругому (декларейшен-сайд-верианс)
в Java вроде на стороне объявления вообще нельзя указывать вариантность

Или я что-то путаю уже

Ivan
25.08.2018
14:21:50
Иван
25.08.2018
15:04:28
а зачем выпилили поддерку вот такого кода while ((i += 2) < 10)?
Серьёзно? Из-за таких штук может быть? if (i = 123) { ... } if (I == 123) { ... }

@relizarov мне вот больше интересно, почему вместо val не взяли let?

Или const

Quantum Harmonizer
25.08.2018
15:06:26
const char *args

Или const
или auto

auto const something = ...

Google
Иван
25.08.2018
15:07:49
Что-то страшное

Dmitry
25.08.2018
15:08:31
@relizarov мне вот больше интересно, почему вместо val не взяли let?
Бреслав отвечал на этот вопрос на мобиусе вроде. Посмотри запись.

Quantum Harmonizer
25.08.2018
15:08:33
мне кажется, нет никакой разницы, одни три буквы или другие три буквы (Бреслав рассказывал, что можно было var назвать mut)

Anna
25.08.2018
15:12:56
мне кажется, нет никакой разницы, одни три буквы или другие три буквы (Бреслав рассказывал, что можно было var назвать mut)
Только если ты не азиат и в твоём языке [р] и [л] это не одна и та же фонема. Но я думаю это тоже обсуждалось уже сто раз

Anna
25.08.2018
15:14:06
О, это интересно. Не знал.
Представляю, как больно японцу или корейцу. Но живут как-то, я видела Котлин блог на корейском

Иван
25.08.2018
15:15:21
Ну это же только на слух?

Quantum Harmonizer
25.08.2018
15:16:14
Обычно их всё же пишут, а не говорят.
Попробуй на докладе устно объясни, почему val лучше, чем var :)

Anna
25.08.2018
15:17:13
Попробуй на докладе устно объясни, почему val лучше, чем var :)
именно. Плюс из-за того что нет отдельных букв и запомнить разницу сложнее

Boris
25.08.2018
15:18:46
Наверняка это создаёт какому-то неудобства, но не столько серьезные как использование джавы ?

Dmitry
25.08.2018
15:19:50
Просто устно называете полное название и не паритесь You can define it as value or variable

Quantum Harmonizer
25.08.2018
15:20:06
варью и варьябл :)

Mikhail
25.08.2018
15:20:22
Серьёзно? Из-за таких штук может быть? if (i = 123) { ... } if (I == 123) { ... }
За десять лет программирования ни разу не встречал таких проблем

Quantum Harmonizer
25.08.2018
15:21:18
За десять лет программирования ни разу не встречал таких проблем
К сожалению, большинство программистов не так внимательны.

Anna
25.08.2018
15:23:35
варью и варьябл :)
[бэллю] и [бэриабыль] ???

Mikhail
25.08.2018
15:23:50
При этом я много работал с легаси кодом в большой распределенной команде, никогда не было таких багов

Boris
25.08.2018
15:24:20
За десять лет программирования ни разу не встречал таких проблем
Ну а смысл-то делать кальку с джавы? Создатели языка посчитали, что это упростит читаемость кода и сократит вероятность ошибки. многие с этим согласны

Quantum Harmonizer
25.08.2018
15:25:35
У меня «почему не как в джаве?!» в первые месяцы сменилось радостным «хорошо, что это исправили»

Ivan
25.08.2018
15:26:06
За десять лет программирования ни разу не встречал таких проблем
дядя Боб вообще сказал, зачем вам null-safety, пишите тесты и все будет хорошо

Страница 828 из 982