Обновить

Комментарии 21

Немного не в тему, но. Подобную KAnnotator тулзу, но для .NET планируете выпустить?
ReSharper что-то такое умеет. Выпускать отдельно пока не планировали
Ну я для R# и спрашиваю. Я знаю что тулза у вас есть — не вручную же аннотировали BCL, но хотелось бы иметь тулзу, которой можно пользоваться самостоятельно. Т.к. JetBrains не может аннотировать все библиотеки которые есть в интернете, а их авторы не всегда хотят этим заниматься.
Коллеги из решарпера говорят, что опубликовать этот тул хотят, но точно сказать когда — не могут. Можно надеяться, что в следующем году что-то поэтому поводу случится.
На свой страх и риск запускаете VS с ключиком /ReSharper.Internal, аннотатор находится в ReSharper | Internal | Annotator, умеет рендерить выведенные из кода аннотации в XMLники или в атрибуты в коде.
Никаких гарантий :)
Круто! Поздравляю с M4! Когда у вас финальный-то релиз?

И ещё вопрос — Вы c коллегами планируете использовать Kotlin при разработке IDEA 13?
Спасибо. Планируем
По-моему, что Kotlin, что Ceylon, с каждым релизом все больше становятся похожи на Scala с разницей только в синтаксисе и с опозданием года на 3-4.
:)
Ну, серьезно, вы можете назвать хоть одну неполитическую причину использовать Kotlin или Ceylon вместо Scala?

Есть вот этот замечательный документ, но он, понятно, несколько biased, несколько устарел и, самое главное, каких-то радикальных различий не называет.

Option'ы в Scala и "?" в Kotlin — по сути — одно и то же, с некими плюсами и минусами и с одной, и с другой стороны. Implicit'ы и extension functions — по сути тоже одно и то же — в Scala, кстати, с 2.9 где-то к такой модели явного их вызова тоже постепенно приходят там, где это необходимо.

Modules — де факто польза от них ровно так же, что от аналогичного механизма в SBT или в Maven. Smart casts — это такой pattern matching, просто записанный иначе (и, субъективно, форма из Kotlin не самая удобная)…
Там в начале этого замечательного документа все написано, в синей рамочке :)
Что за зверь этот Ceylon.
Слон: ceylon-lang.org
Пример кода на главной разорвал мой шаблон.
Слабоватый у вас «шаблон».
Не зная языка сразу понял что там просто создание объектов с инициализацией полей (RTFM например C# object initializers), а на строчке с name() просто похоже неявная конкатенация строк.
А когда планируется плагин для эклипса? Его очень не хватает, чтобы начать подсаживать коллег.
Точно сказать не могу, но мы понимаем, что дело это нужное, и будем его делать.
В этой фразе очень грустно звучит «пока не делаем»…
А вы не думали улучшить reflection в Котлине? Чтобы была возможность получать объекты Field, Method и т.д. не только через поиск по строковому имени, а более статически типизировано.
Например, что-нибудь типа этого:
public class MyClass() {
  public var myField String = ... 

  fun myFun() : Unit { ... }

  fun myFun(s : String) : String { ... }
}

// Над generic-ами особо не думал, возможно такой вариант не оптимален. В примере я использовал типизацию по двум классам, где первый - это класс, откуда берётся поле или метод, а второй - тип поля или возвращаемого значения метода.
Field<MyClass, String> cityField = MyClass.#myField // "#" используется для указания того, что берётся не значение поля, а само поле класса как объект

Method<MyClass, Unit> myFun1Method = MyClass.#myFun() // скобки показывают, что нас интересует метод, а не поле

Method<MyClass, String> myFun2Method = MyClass.#myFun(String.class) // указывая типы параметров определяем, какой именно метод из перегруженных нас интересует

Такая возможность позволит избавиться от кодогенерации в очень большом количестве случаев (типичные примеры похожего подхода, но с кодогенерацией — Querydsl, Criteria Query и т.д.)
Классно, спасибо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
jetbrains.com
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Чехия