URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 111271
[ Назад ]

Исходное сообщение
"В Android обеспечена официальная поддержка разработки на язы..."

Отправлено opennews , 18-Май-17 10:51 
Компания Google объявила (https://android-developers.googleblog.com/2017/05/android-an... о включении Kotlin (https://kotlinlang.org/) в список официально поддерживаемых языков для разработки приложений для платформы Android. Более того, совместно с компанией JetBrains, курирующей разработку Kotlin, инициировано создание некоммерческой организации, которой будут делегированы функции принятия решений в отношении дальнейшего развития языка.


Язык Kotlin создан в санкт-петербургском центре разработки компании JetBrains и  изначально рассчитан на компиляцию приложений в форму для последующего выполнения внутри стандартной виртуальной машины Java (JVM) или Android. Разработчики Kotlin попытались сохранить максимальную совместимость  и похожесть на Java, при этом избавившись от имеющихся в Java ограничений и недостатков. Язык обеспечивает нелохую переносимость с Java - из программ на Java вызывать компоненты, написанные на Kotlin, и, наоборот, из программ Kotlin можно вызывать Java-классы. Среди отличий Kotlin выделяется  ориентация на обеспечение более высокой безопасности за счет реализации статических проверок, отсутствия raw-типов, полного сохранения информации о типах в процессе выполнения и реализации массивов в виде инварианта (http://confluence.jetbrains.net/display/Kotlin/Basic+types#B.... Язык обеспечивает поддержку функций высшего порядка (http://ru.wikipedia.org/wiki/%D0%A4%D1%8... вывода типов (http://ru.wikipedia.org/wiki/%D0%92%D1%8... значений, уточняющих "примесей (http://ru.wikipedia.org/wiki/%D0%9F%D1%8... (mixin) и делегирования (http://ru.wikipedia.org/wiki/%D0%94%D0%B....


Одновременно представлен (https://android-developers.googleblog.com/2017/05/android-st... тестовый выпуск интегрированной среды разработки Android Studio 3.0 (https://developer.android.com/studio/preview/index.html), в состав которой включён плагин для написание Android-приложений на языке  Kotlin. Кроме средств для сопровождения разработки плагин предоставляет возможность преобразования имеющихся Java-проектов в представление для дальнейшей разработки на языке Kotlin.

Из других заметный улучшений в Android Studio 3.0 отмечается новый набор инструментов для профилирования  и диагностики проблем с производительностью, а также существенное ускорение процесса сборки больших проектов с использованием  Gradle, включение Google Play Store и поддержки OpenGL ES 3.0 в эмулятор Android, поддержка разработки для Android Things, средства разработки Instant App (приложения, которые можно напрямую запускать из Google Play без выполнения процесса установки), поддержка новых возможностей языка Java 8  и платформы Android O, режим отладки уже собранных APK-файлов.


URL: https://android-developers.googleblog.com/2017/05/android-an...
Новость: http://www.opennet.me/opennews/art.shtml?num=46568


Содержание

Сообщения в этом обсуждении
"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 10:57 
Очередной проблемно-ориентированный язык.
"Мышки плакали, кололись, но продолжали жрать кактус!" (с)

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Iaaa , 18-Май-17 12:21 
Очередная реинкарнация Паскаля.
"Мышки не смогли осилить ничего выше школьного курса информатики, но тоже хотят в IT" (с)

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 17:32 
сейчас в школах помимо паскаля доступны СИ, пейтон, жабаскрипт.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 17:45 
Да тут целый тред экспертов!

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 21:32 
Среди учащихся всегда много экспертов.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Andrey Mitrofanov , 18-Май-17 21:33 
> Среди учащихся всегда много экспертов.

...и только те, кто сами ничего не умеют, удут дугих учить.


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 19-Май-17 18:06 
Всегда знал что с преподшой было что-то не так.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 20-Май-17 20:30 
ага, иди Сократу расскажи
один дурак скажет, так другой обязательно повторит

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Michael Shigorin , 22-Май-17 13:31 
Крепитесь, скоро ещё и каникулы.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 10:57 
больше всяких языков, на которых даже олигофрен программировать сможет. ну и полученный код сможет любое быстрое железо легко опустить.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено th3m3 , 18-Май-17 11:18 
Лучше бы Rust запилили. А то шило на мыло.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 11:26 
Для гугла перейти на Rust - значит признать бесполезность Go. Это примерно то же, что надеяться на официальное включение Swift в андроид-студию

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 11:52 
Cмешались в кучу кони, люди.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 12:01 
Вообще разные языки с разными назначениями.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено KBAKEP , 23-Май-17 01:00 
Был уже вброс: https://thenextweb.com/dd/2016/04/07/google-facebook-uber-swift

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 17:46 
С каких пор Rust стал инструментом для относительно быстрой разработки с большим инструментарием?

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Вареник , 18-Май-17 21:36 
Хеллоувордщикам хочется переписать весь мир на ассемблере.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено iZEN , 22-Май-17 18:46 
> Rust

Очень долго компилируется, почти как WebKit-Gtk2.


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 12:18 
А ее какие языки там поддерживаются и почему этой студии нет в репах?

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 21:28 
Есть она в репах. Дистрибутив меняйте.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено прохожий , 18-Май-17 13:08 
сразу видно большинство комментаторов ничего не писали под android, но мнение имеют

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 13:19 
Прохожий #мимопроходя сказал ровно настолько насколько смог выщурить со стороны.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено НяшМяш , 18-Май-17 14:17 
я бы сказал больше - большинство комментаторов даже рядом с андроид разработчиками не сидели

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 14:30 
Не так, я думаю все еще хуже: большинство комментаторов даже рядом с разработчиками не сидели.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 17:33 
> Не так, я думаю все еще хуже: большинство комментаторов даже рядом с
> разработчиками не сидели.

Может хватит называть html верстальщиков разработчиками?


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено ferux , 18-Май-17 13:59 
Алгебраические типы данных и pattern-matching в Kotlin уже добавили? Если нет - то ненужно. Зачем вообще создавать язык в 2010-х, не закладывая в него этих фич?

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Crazy Alex , 18-Май-17 14:28 
Первая "фича" в языке, поддерживающем ООП может и имеет какой-то смысл (хотя обычно спокойно делается в библиотеке). Вторая - на фиг не нужна, а то и вредна. На то и наследование, требующее вменяемого проектирования вместо ad-hoc подхода pattern-matching.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено ferux , 18-Май-17 15:00 
Библиотечная реализация алгебраических типов через ООП всегда будет выглядеть более громоздкой чем реализация "в языке".
>Вторая - на фиг не нужна, а то и вредна. На то и наследование, требующее вменяемого проектирования вместо ad-hoc подхода pattern-matching.

И почему тогда разработчики Swift и C# так не считают т.к. реализовали/добавили pattern-matching? Никто ведь не призывает использовать pattern-matching вместо наследования с виртуальными методами.

И да, Kotlin разве не мультипарадигмальный язык, что вы делаете такой упор на ООП?


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Crazy Alex , 18-Май-17 15:38 
Что там громоздкого? Описал Variant - и вперёд.

Тоже мне, примеры.
Swift - вообще не аргумент, судя по ругани сидящих рядом со мной ios-ников это полигон, в который напихали что можно и что нельзя без какого-либо проектирования. Шарп - тем более сборная солянка, созданная в надежде привлечь всех мыслимых developers.

А на ООП я в данном случае делаю упор, потому что оно предоставляет гораздо более поддерживаемый подход, чем pattern matching. Ровно то же различие, что, например, между case c кодами ошибки и иерархией исключений, или между finally и плюсовым RAII, или между пользовательской функцией init и конструктором  - в одном случае можно что-то забыть или сделать неконсистентно, во втором - получаешь предсказуемое поведение.


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено ferux , 18-Май-17 15:58 
Попробуйте реализовать что-то похожее https://doc.rust-lang.org/std/result/ через ООП без patter-matching и алгебраических типов данных, а потом попробуйте это использовать. И не надо здесь говорить, что нужно использовать исключения - есть случаи, когда похожий на Result подход более приемлем.

Сразу скажу, что получается громоздко и далеко не так красиво, как в Rust: приходится каждый раз создавать классы для возвращаемых значений функции вместо использованиями sum-type; отсутствует возможность проверки на этапе компиляции, все ли типы в switch-е перебрал из sum-type, реализованного в виде иерархии/композиции классов.


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Crazy Alex , 18-Май-17 18:03 
Нет, спасибо, я лучше пешком постою. Кром совсем уж сурового эмбеда такого же сурового легаси именно исключения и надо использовать. Я вдоволь напроверялся ошибок на C чтобы ненавидеть этот адски неудобный (и тормозной) подход.

И нет, в приличных языках вроде С++/D ничего каждый раз создавать не надо - делается один раз шаблон с неявным преобразованием в тип-результат, для проверки статуса ошибки - либо специальная функция (для параноиков), либо реализовываем оператор преобразования в bool. Выглядит всё совершенно прозрачно. А проблема "все ли типы в свитче перебрал" - это явно не к этому примеру, здесь перебирать нечего. А там, гд ехочется перебрать - нужны интферфейсы/абстрактные классы и наследование, там не реализовать метод не дадут.


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено ferux , 18-Май-17 18:20 
> А проблема
> "все ли типы в свитче перебрал" - это явно не к
> этому примеру, здесь перебирать нечего. А там, гд ехочется перебрать -
> нужны интферфейсы/абстрактные классы и наследование, там не реализовать метод не дадут.

Ок. Пример: модуль взвращает ошибки 5-и типов (пусть будут хоть объекты Exception-в, если вам они ближе). У модуля 2 пользователя и каждый из них по-совему обрабатывает ошибки этих типов.

Обработка этих ошибок реализуется довольно просто и надёжно в виде свича по этим типам, если язык поддерживает проверку, что все типы из возможных проверены. Не надо ничего более создавать.

Как вы предлагаете обрабатывать эти ошибки с помощью интерфейсов и наследования?



"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено ferux , 18-Май-17 19:47 
Вот (следуя подсказке анонима в ветке ниже) как это будет выглядеть на сабже для 3х типов:

sealed class ErrorException  : Throwable()
class ErrorException1 : ErrorException()
class ErrorException2 : ErrorException()
class ErrorException3 : ErrorException()


class MyModule
{
    fun Foo(x: Int) : Int
    {
        when (x)
        {
            1 -> throw ErrorException1()
            2 -> throw ErrorException2()
            3 -> throw ErrorException3()
            else -> { return x;}
        }
    }
}

fun main(args: Array<String>) {
    val myModule = MyModule()
    try
    {
        println(myModule.Foo(2))
    }
    catch(e: ErrorException)
    {
        when(e)
        {
            is ErrorException1 -> println("E1")
            is ErrorException2 -> println("E2")
            is ErrorException3 -> println("E3")
        }
    }
    
    try
    {
        println(myModule.Foo(8))
    }
    catch(e: ErrorException)
    {
        when(e)
        {
            is ErrorException1 -> println("EE1")
            is ErrorException2 -> println("EE2")
            is ErrorException3 -> println("EE3")
        }
    }
}


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 17:40 
> Swift - вообще не аргумент, судя по ругани сидящих рядом со мной
> ios-ников это полигон, в который напихали что можно и что нельзя
> без какого-либо проектирования.

И это правда, переход на версию 3 был болезненным. Но надо отдать должное для своих лет очень даже неплохо всего понапихали.


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Michael Shigorin , 22-Май-17 13:34 
> И почему тогда разработчики [...] C# [...] реализовали/добавили pattern-matching?

Не удивлюсь, если в итоге по соображениям вида "вали всё в раковину", которая kitchen-sink.


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено анон , 18-Май-17 16:54 
Вообще-то в котлине более широкий подход чем pattern matching. К тому-же оператор when вкупе со смарт кастами делает то же самое что и паттерн матчинг, нет нужды реализовывать его отдельно.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено ferux , 18-Май-17 17:02 
и что, when + smart casts на этапе компиляции обнаружит добавление ещё одного дочернего класса для базового типа, объект которого проверяется в when?

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено анон , 18-Май-17 17:36 
Обнаружит, но только при условии использования sealed классов.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено ferux , 18-Май-17 17:47 
Тогда за это большой плюс для Kotlin!

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено ferux , 18-Май-17 20:07 
Не обнаруживает, хотя по спецификации действительно должен.
https://try.kotlinlang.org/#/UserProjects/125pl5cgj8l6daio9v...

Может ещё сырой?


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 14:03 
А кложуру не добавили? Понятно, Андроид всё ещё не нужен.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Crazy Alex , 18-Май-17 14:35 
Это кложур (всё ещё и уже) не нужен

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 14:38 
Так здорово же. JetBrains молодцы!

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Strachan , 18-Май-17 17:51 
но зачем, когда есть groovy?

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено KonstantinB , 18-Май-17 21:22 
Сравнили ж*пу с пальцем. Еще бы с php сравнили (а что, есть jphp).

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Шарпей , 18-Май-17 21:11 
Лучше бы официально C# добавили без взяких Замаринов.

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Аноним , 18-Май-17 21:35 
но зачем - еси java то же самое и уже давно есть

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Вареник , 18-Май-17 21:45 
> Kotlin

Отлично!


"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено Mail , 19-Май-17 00:20 
Очередное "ненужно"! :)))

"В Android обеспечена официальная поддержка разработки на язы..."
Отправлено nc , 22-Май-17 13:32 
Всегда хотел спросить у тех кто пишет "ненужно" - а что "нужно"?