The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Открыт код реализации языка программирования Kotlin

14.02.2012 22:31

Компания JetBrains, развивающая интегрированную среду разработки IntelliJ IDEA и систему метапрограммирования MPS, объявила об открытии кода компонентов, связанных с реализацией языка программирования Kotlin. Язык Kotlin поддерживает статическую типизацию, код может быть скомпилирован для последующего выполнения внутри стандартной виртуальной машины Java (JVM) или преобразован в JavaScript-представление для запуска внутри браузера. Исходные тексты открыты под лицензией Apache. Язык создан в санкт-петербургском центре разработки компании JetBrains и соответственно назван в честь острова Котлин.

Из открытых компонентов Kotlin отмечается:

  • Компилятор Kompiler, который пока поддерживает только генерацию байткода для JVM. Компилятор для JavaScript находится в процессе разработки. В будущем не исключается создание бэкенда для LLVM;
  • Набор расширений к стандартным библиотекам Java, таких как утилиты для работы с JDK коллекциями;
  • Сборочный инструментарий и компоненты для интеграции с Ant, Gradle и Maven;
  • Kotlin Web Demo - Web-ориентированная среда для редактирования, запуска и организации совместного доступа к программам на языке Kotlin;
  • Плагин с поддержкой Kotlin для интегрированной среды разработки IntelliJ IDEA. Планируется создание плагина для платформы Eclipse.

Изначальной целью проекта было создание максимально совместимого с Java языка программирования, одновременно лишённого ограничений и недостатков Java, от которых Java не может избавиться из-за необходимости обеспечения обратной совместимости. Из отличительный черт языка Kotlin можно выделить ориентацию на обеспечение более высокой безопасности за счет реализации статических проверок для выявления таких проблем как разыменование NULL-указателей. Среди других особенностей, имеющих отношение к безопасности, отмечается отсутствие raw-типов, полное сохранение информации о типах в процессе выполнения и реализация массивов в виде инварианта.

Из расширенных языковых возможностей отмечается поддержка функций высшего порядка, вывода типов значений на основании выражения, использование уточняющих "примесей" (mixin) и делегирования. Из программ Kotlin можно вызывать Java-классы и наоборот, из Java вызывать компоненты, написанные на Kotlin. Разработчики попытались максимально упростить язык, сделав его более простым чем Scala, который называется в качестве наиболее близкого конкурента. Более подробно оценить возможности языка Kotlin можно на страницах с его сравнением с Java и Scala.


   package hello
   fun main(args : Array) { 
      println("Hello, world!") 
   }

Дополнение: Описание особенностей языка на русском языке от автора можно прочитать в данной статье, продолжение которой опубликовано здесь.

  1. Главная ссылка к новости (http://blog.jetbrains.com/kotl...)
  2. OpenNews: Релиз среды разработки приложений IntelliJ IDEA 11
  3. OpenNews: Представлена свободная система метапрограммирования JetBrains MPS 2.0
  4. OpenNews: Компания Google представила новый язык web-программирования Dart
  5. OpenNews: Проект Eclipse развивает новый язык программирования Xtend
  6. OpenNews: Первый релиз развиваемого компанией Red Hat языка программирования Ceylon
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/33088-jetbrains
Ключевые слова: jetbrains, kotlin
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (19) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:14, 14/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Хороший ход в свете проприетаризации Java-ы Oraclom + развитие самой логики.
     
     
  • 2.2, Аноним (-), 23:32, 14/02/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Хороший ход в свете проприетаризации Java-ы Oraclom + развитие самой логики.

    В этом славном деле ребята опоздали почти на год
    http://www.opennet.ru/opennews/art.shtml?num=30225

     
     
  • 3.9, VoDA (ok), 01:01, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ceylon имеет свои косяки. Не такие как у Scala, но тем не менее. Так что Котлин вполне может обойти и Цейлон и даже Java по популярности.

    Вопрос только когда они смогут отрелизить свое изделие. Я бы с удовольствием перенес свой код на Котлин.

     
     
  • 4.14, Трухин_Юрий_Владимирович (ok), 09:58, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    релиз будет после того, как язык опробуют в JetBrains для разработки Intellij Idea и перепишут Kotlin на Kotlin. Необходимо написать достаточно много кода для того, чтобы понять, какие особенности языка мешают эффективной разработке, а каких не хватает. Сейчас даты релиза просто нет, есть открытый код и часто обновляемые сборки компилятора и плагина для Intellij, которые можно уже использовать. Так же можно помогать развивать Kotlin.
     
  • 2.8, B7W (?), 00:40, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Разработка обоих языков началась примерно в одно время. Так что никто, никого не опережал.
    Я смотрел этот Ceylon, и ненашел чего то интересного. В новом языке от наших ребят есть интересные решения и воспринемается он довольно естейственно, имхо. Плюс они сильно нацелены на обратную совместимость, а в Red Hat кажеться хочет разом все переписать.
     
     
  • 3.17, Аноним (-), 14:53, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Для редхата важно не переписать, а устранить существующие проблемы (потому что они делают бизнес на линуксе, и проблемы линукса - это их проблемы). В 99% случаях это можно сделать патчами, и это делается патчами. Но никто не обращает внимания, все уже привыкли, что редхат основной контрибьютор ядра и ключевых программ окружения. Но вот в 1% случаев патчами сделать уже ничего нельзя, потому что проблема в фундаменте. И тогда попытки ее решения почему-то привлекают нездоровых ажиотаж.
     
     
  • 4.19, anonymous vulgaris (?), 22:29, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >редхат основной  контрибьютор ядра и ключевых программ окружения. Но вот в 1% случаев  патчами сделать уже ничего нельзя, потому что проблема в фундаменте. И тогда попытки ее решения почему-то привлекают нездоровых ажиотаж.

    А какое отношение еще одна жаба от редхета под названием цейлон имеет к тому что редхат основной  контрибьютор ядра и ключевых программ окружения? Я что то пропустил и они решили для этого больше не использовать ц++?

     
  • 2.13, Tav (ok), 02:42, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Проприетаризация Java? Вы про язык программирования или про платформу/среду выполнения? Откуда вы это взяли?

    С давних пор уже ничего не меняется: есть свободная OpenJDK и проприетарная Sun/Oracle JDK, которая мало чем отличается от свободной. От того что проприетарную JDK разрешили или запретили распространять с дистрибутивами Линукса, она не стала более или менее проприетарной. И чем OpenJDK недостаточно свободна?

    А языков для JVM уже и так куча, и Котлин не похож на что-то принципиально новое.

     

  • 1.5, Crazy Alex (ok), 23:49, 14/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Чем им скала не угодила? NIH?
     
     
  • 2.7, radiot.new (?), 00:00, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    на этот и другие вопросы отвечаты можно найти тут http://radio-t.com/2012/02/275_05.html
     
     
  • 3.16, Crazy Alex (ok), 14:46, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тьфу, подкаст... Вот уж неудобная форма подачи информации. Текст я бы за минуту просмотрел, а тут слушать его невесть сколько. даже длительность не пишут. Нет уж, спасибо. Проживу без информации об этом чудо-языке.
     
     
  • 4.18, anonymous vulgaris (?), 21:50, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >  Текст я бы за  минуту просмотрел

    http://www.osp.ru/os/2011/09/13011550/


     
  • 2.10, VoDA (ok), 01:04, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Чем им скала не угодила? NIH?

    Scala настолько Ъ, что ни одна IDE не может адекватно с ней работать. Даже команда JetBrains не смогла адекватно запалить.

    Это одна из особенностей почему не скала, а новый язык.

    Потом скала настолько брутальна, что ввела свои типа данных не совместимые с Java, и вызовы из/в java несколько проблемны.

     
     
  • 3.12, Онаним (?), 02:41, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Что за чушь. Каждый день с удовольствием пишу на Scala в IntelliJ Idea и, разумеется, активно использую Java типы.
     
     
  • 4.15, VoDA (ok), 11:11, 15/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И насколько хорошо работает рефакторинг и авто-дополнение? особенно по имплисит типам?
     
     
  • 5.20, Онаним (?), 05:21, 16/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Отлично. Активно пользуюсь собственными многоэтажными многоальтернативными имплиситами, рефакторингом (правда только rename, reformat code и optimize imports) и автодополнением. Проблем не замечал ни разу. В Idea 10, правда, Scala plugin постоянно исключениями бросался, но в Idea 11 уже и этого нет.
     
     
  • 6.22, Nobody (??), 21:00, 16/02/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Пока в IDEA слишком много красным подчеркивает в корректном коде даже на примерах из нескольких строк. Это очень не удобно при написании кода. И не ясно когда они в IDEA свой presentation compiler допилят до нормального состояния. В этом плане больше надежд на плагин для Eclipse, т.к. там изначально reference compiler используется.
     

  • 1.11, VoDA (ok), 01:18, 15/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Годная вещь. На конференции довольно интересно про нее рассказывали.

    Надеюсь 9-я версия java будет использовать новые идеи из Kotlin. хотя может и нет (((


    А когда будет готов язык для продакшена?

     
  • 1.21, Онаним (?), 08:32, 16/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати, а в этом Kotlin можно описывать локальные функции/классы где попало? А встроенная в язык поддержка объектов-синглтонов есть? А операции map и fold?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру