Kotlin и Swift. Новая эпоха в мобильной разработке?

Комментарии (26)

  • 1 июня 2017 в 14:18

    +3

    Я люблю и использую Kotlin, но меня немного удивила приведенная аргументация.
    Не могли бы вы объяснить, почему в примере с циклом функциональный подход «намного лучше», и чем именно лучше?
    • 1 июня 2017 в 15:10

      –2

      Подобных статей про javascript на хабре уже пруд пруди.
      Самый главный аргумент тут — «Во первых, это красиво!»)).
    • 1 июня 2017 в 15:48

      0

      Ну например у вас есть свойство:
      var myArray = [MyType]?


      В предложенном варианте можно написать что-то такое: myArray?.forEach { ... }, а в классическом случае нужно сначала проверить его на nil, а потом уже идти циклом.

  • 1 июня 2017 в 15:10

    0

    Когда в Google объявили о том, что они теперь официально будут использовать Kotlin для разработки под Android

    Можно узнать где и когда такое объявили? На сколько я знаю, объявили только о том, что теперь плагин для поддержки Kotlin входит в поставку Android Studio с версии 3.0. О том, что они теперь официально будут использовать Kotlin для разработки никто не говорил
    • 1 июня 2017 в 15:23

      –1

      Ну например вот: https://techcrunch.com/2017/05/17/google-makes-kotlin-a-first-class-language-for-writing-android-apps/
      Или вот: https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/
      И вот: https://www.theverge.com/2017/5/17/15654988/google-jet-brains-kotlin-programming-language-android-development-io-2017

      • 1 июня 2017 в 15:48

        0

        @errorok судя по минусам, ссылки вас не убедили. :)

        • 1 июня 2017 в 16:00

          +1

          У меня не полноценный аккаунт, я не могу ставить плюсы или минусы.
          Может я и не прав, так как мой английский не очень хорош. Но я не видел заявления Google что они будут официально на нём писать. Лишь сказали что теперь это ещё один официальный язык разработки под android. Наверное это можно понять как будто они теперь будут сами использовать Kotlin
          • 1 июня 2017 в 16:05

            0

            Ээээ. Так никто и не говорит, что они сами будут писать. Фраза «официально будут использовать Kotlin для разработки под Android» подразумевает, что теперь Kotlin официально поддерживается гуглом, как язык для разработки под Android другими разработчиками. :)

            • 1 июня 2017 в 16:33 (комментарий был изменён)

              0

              Не соглашусь.
              »Гугл будет официально использовать котлин для разработки»
              и
              «поддерживается для разработки другими»
              это две огромные разницы. Потому что в первом случае — сам Гугл кодит на котлине, во втором (вашем) — другие кодят, что они, собственно и раньше могли делать.

              p.s. что-то слишком много пиара котлина в последнее время.

              • 1 июня 2017 в 16:45

                0

                Ну тут все зависит от трактовки слова «использовать». :)

                • 1 июня 2017 в 16:59

                  0

                  Никоим образом. «Я буду использовать для разработки дачного дома пилу» — это значит только то, что я буду пилить сам.
  • 1 июня 2017 в 15:17

    0

    for (int i = 0; i < N; i++) {
    // Do something
    }

    Вы можете делать в Kotlin так:

    for (i in 0…N-1) {
    // Do something
    }

    Или вот так в Swift:

    for i in 0… // Do Something
    }

    Самый верхний интуитивно понятней (на мой взгляд не разработчика Java)
    А если нужен шаг 2, в нижних как задается?

    • 1 июня 2017 в 15:21 (комментарий был изменён)

      +1

      В Kotlin так:
      for (i in 0..N step 2) {
      // Do something
      }
      

    • 1 июня 2017 в 15:41

      –1

      До сих пор не понимаю, чем именно классический for не угодил господам из JetBrains…
      • 1 июня 2017 в 15:49

        0

        Ну например у вас есть свойство:
        var myArray = [MyType]?


        В предложенном варианте можно написать что-то такое: myArray?.forEach { ... }, а в классическом случае нужно сначала проверить его на nil, а потом уже идти циклом.

    • 1 июня 2017 в 16:49

      0

      В Swift так:
      for i in stride(from: 0, to: N, by: 2) {
          // Do Something
      }
      
      В Kotlin эта конструкция поприятнее конечно…
  • 1 июня 2017 в 15:39

    0

    Почитал про Kotlin/Native.
    То есть, в принципе, бизнес логику написанную под Андроид можно будет легко портировать на iOS? Или я что то неправильно понимаю?
    • 1 июня 2017 в 16:05

      +1

      Да. Если ты не будешь использовать при этом андроид-специфичных выражений. Это все-равно что написать на голом C++(без фреймворков) под винду и Linux. Вобщем написать то можно, но под каждую систему будут свои заморочки.
      • 1 июня 2017 в 16:06

        0

        Ну бизнес-логика, как бы подразумевает отсутствие платформо-специфичных выражений.

        • 1 июня 2017 в 16:10

          0

          Ну кроме выражений есть же еще и библиотеки которые хочешь-нехочешь затрагивают бизнес логику. А они для каждой платформы свои. А кросплатформенных библиотек нету. По крайней мере пока.
  • 1 июня 2017 в 16:07

    0

    Когда я вижу такие статьи, мне всегда кажется, что они пишутся PR отделом JetBrains и Apple (ни в коем случая не умаляю их заслуг, и никоим образом не хочу обидеть автора).
    Проблема в том, что вся мощь новых языков показывается на примерах уровня HelloWorld.
    Ну серьезно, неужели в примере 1 пример с filter, map и reduce выглядит привлекательнее обычного for? Из пушки по воробьям. При попытке продать Kotlin в проекты с большим legacy подобные примеры разбиваются в клочья.
    Другая проблема — излишняя восторженность от новых технологий как таковых. Ну не является Kotlin новой эпохой, нет в нем ничего такого, что было бы прямо киллер-фичей. На моей практике я никогда не был в ситуации, когда самая большая проблема проекта — это неправославный for или отсутствие лямбд. Основная проблема поддержки всегда кривая архитектура, спагетти, производительность — проблемы, которые Kotlin, увы, никак не решит (как не решит другой язык).
    Повторю еще раз — я люблю Kotlin, это прекрасный язык. Но статья никак не показывает, что это «новая эпоха, позволяющая сократить затраты на рутинную разработку бизнес-логики и управление приложением».
    • 1 июня 2017 в 16:23

      0

      Ну серьезно, неужели в примере 1 пример с filter, map и reduce выглядит привлекательнее обычного for?

      Просто представьте что вам нужно пройти циклом по опциональной коллекции, а не обычной. :)

      • 1 июня 2017 в 16:26

        0

        Я не отрицаю преимущества этого подхода, я лишь говорю, что пример в статье не совсем подходящий.
    • 1 июня 2017 в 16:38

      0

      Когда я вижу такие статьи, мне всегда кажется, что они пишутся PR отделом JetBrains

      Вы не одиноки в этом ощущении.

      Ну не является Kotlin новой эпохой, нет в нем ничего такого, что было бы прямо киллер-фичей.

      Абсолютно согласен. Но вокруг него прямо-таки искусственно создают buzz.

    • 1 июня 2017 в 16:45

      +1

      Про первый пример, не знаю зачем автор использовал filter + map, в Swift например, гораздо красивее было бы
      let results = mixedArray
      .flatMap ({ Int ($0) })
      .reduce (0, +)
  • 1 июня 2017 в 16:22

    +1

    Пишу на Swift’e, читал статьи про Kotlin и сложилось такое же впечатление, как у автора статьи.
    Это все действительно здорово. Писать одно удовольствие.

© Habrahabr.ru