company_banner

Андрей Бреслав — Язык Kotlin для платформы Java

    Привет, Хабр!

    С любезного разрешения сообщества Java-разработчиков JUG.ru мы публикуем видеозапись выступления Андрея Бреслава о новом языке программирования Kotlin для платформы Java, которое состоялось на встрече 26 апреля.

    Андрей рассказал про основные возможности языка, задачи, стоящие перед разработчиками Kotlin'а, его «фичи», процесс разработки и то, как осуществляется взаимодействие Kotlin и Java:
    • как код, написанный на одном из языков, может обращаться к библиотекам, написанным на другом;
    • как компилируются смешанные проекты, в которых часть написана на Kotlin, а часть — на Java;
    • как Kotlin расширяет существующие Java-библиотеки новыми полезными функциями.


    Видео:




    imageАндрей Бреслав (abreslav) возглавляет разработку языка Kotlin в компании JetBrains, преподает в физико-математическом лицее и выступает на различных конференциях, рассказывая о Kotlin, а также фундаментальных принципах, лежащих в основе профессии разработчика ПО.
    JetBrains
    546.18
    Делаем эффективные инструменты для разработчиков
    Share post

    Similar posts

    Comments 25

      +3
      Присутствовал, было интересно. Рекомендую к просмотру!
        +1
        Низкое разрешение, код еле видно.
          0
          Почему-то никто не спросил самого главного в примере с JFrame: как уживаются в одной программе класс и функция с одним именем JFrame?
            +1
            В этом нет никакой проблемы: конструкторы классов и функции живут в одном пространстве имен (в Kotlin нет оператора new), и имена разрешаются точно так же как обычные перегруженные функции.
            0
            Как оно работает с java фреймворками, которые подмешивают байт-код? Hibernate, Tapestry 5 — пускал кто-нибудь?
              0
              Мы не пробовали, но принципиальных проблем быть не должно: Kotlin генерирует такой же байт-код, как и Java
                0
                В tapestry5 есть требование к определенной группе классов, чтобы их поля были только private, иначе он не сможет правильно с ними работать. Если я сделаю объявление val или var, что будет в байт-коде? Примешаются get/set методы, а как будет объявлена видимость поля в байт-коде?
                  0
                  Ага, кажется вижу, можно объявлять доступ к полю явно, а по умолчанию какой доступ?
                    0
                    Явно можно задавать уровень доступа к свойству, то есть к методам get и set, а поле всегда остается приватным
                    0
                    Доступ к полю всегда будет private.
                –1
                Успеют релиз до выхода Java 8? Может к тому времени и не нужно будет…
                  0
                  Вот в такие моменты я жалею, что живу в мск, а не в питере. Очень интересуюсь языком, очень хочу на нем писать (пока выявилась какая-то досадная несовместимость с Vaadin'ом), очень жду плагина к клипцу.
                    0
                    А у нас, между прочим, есть офис в Москве и даже один из разработчиков Котлина там работает…
                      0
                      Это круто, да, но
                      а) я для вас условной мордой условно не вышел (Это я про работу у вас)
                      б) интересные встречи про котлин вы выдыте в Питере.
                  0
                  Ну так ничо, интересненько :) Давно ждал чего-то подобного, чего-то среднего между скала и груви. Запилите еще что-нибудь интересное с тредами, так может и Go не нужен будет :)
                    0
                    1. Как я понял, добавление алгебраических типов(АТД, для избежания путаницы терминов) не планируется? Тем более, что во второй части вы показываете эмуляцию на «трэйтах», которая приводит ужасному последнему кейсу в «when» — throw new Exception(), который ничем не лучше NPE, с которым вы ведете яростную борьбу. Ведь после реализации АТД можно получить бесплатно статически верифицируемый паттерн матчинг на них.
                    2. Планируется ли документация по правильному написанию оберток для вызова Javascript функций? Из исходников трудно понять, что значит, например, «js.noImpl».
                    3. Планируется ли документация или гайд по написанию трансляторов в другие языки?

                    P.S. Flow dependent typing — это круто, даже если сейчас это ad-hoc реализация для частных случаев.
                      0
                      1. Не совсем. В текущей версии дизацна запланированы GADT, под менем enum-классов. Они частично уже поддержаны, частично будут, скорее всего, поддержаны позже.

                      Однако я бы не демонизировал так выбрасывание исключений в последней ветке. Это обычный assertion: упадет и все, а вот NPE — это бомба замедленного действия: когда упадет, не понятно, в чем его причина.
                      2. Да, конечно
                      3. Скорее нет, чем да, а что именно Вас интересует?
                        0
                        Спасибо за объяснения, интересует трансляция в PHP. Раз Ваша команда взялась за Javascript, то динамическая типизация не создает неразрешимых проблем.
                          +1
                          А для чего нужно транслировать в PHP?
                      0
                      А в какой программе делались такие классные zoom-эффекты для презентации?
                        0
                          +1
                          Кажется, пора обновить ссылки.
                            0
                            Fixed. Спасибо

                          Only users with full accounts can post comments. Log in, please.