Re[2]: Kotlin - статус
От: Cyberax Марс  
Дата: 27.05.12 00:11
Оценка: +1
Здравствуйте, LeonidV, Вы писали:

LV>Первое. К сожалению, я не слушал доклад по Котлину на второй конференции Scala Devs. Поэтому передам мнение другого — Kotlin язык, который JetBrains делает просто для престижа и, возможно, для себя. Пускать его во внешний мир не особо планируется.

Почему? Kotlin развивается на github'е, они легко принимают код от независимых контрибьюторов. Ну и пиарят везде как язык именно для промышленного применения.

LV>Почитайте планы по версиям языка — это мнение совпадает с ними. Точной даты выхода Kotlin никто не называется.

Ну так Java 8 точную дату выпуска получила только на прошлой неделе (сентябрь 2013-го, если кому интересно).

LV>А выкладывать в production ПО на нестабильном языке откровенная авантюра (мягко говоря).

Мне не хватает приключений в жизни

LV>Второй момент. В своей презентации про Котлин Андрей Бреслав делает логическую ошибку. Он говорит, что JetBrains уже делала много компиляторов (для каждого поддерживаемого языка они пишут компилятор), поэтому вроде как написать язык для них не проблема и опыта в этой сфере деятельности хватает. Но! Одно дело писать компиляторы для готовых языков, другое дело — создавать сам язык. Одерски как раз умеет создавать сам язык, поэтому Scala получилась на удивление стройной и элегантной.

ROTFL LOL.

Скала — это набор кривых костылей, которые делаются академическими программистами, не пишущими реальных проектов. Мой любимый пример — это Option'ы в Скала. Ими пользоваться сложно из-за того, что Option[1]==1 — это ложь. Исправляется элементарно, но разработчики Скалы отказываются это сделать, так как иначе будут невозможны вложенный Option'ы (которые нафиг не нужны).

А, ещё ситуацию с бинарной несовместимостью версий могу напомнить.

LV>Взлетит Котлин или нет — посмотрим. Но Scala уже взлетела, вопрос в том, насколько высоко и не обгонит ли ее Ceylon/Kotlin.

Скала — она не взлетела. Вокруг неё есть небольшой коммьюнити академических гиков, пишутся небольшие проекты, но я не вижу продвижения в mainstream.

LV>Существуют мейнстреймовые решения, написанные на Scala — Akka. Поддержка со стороны Spring Framework, myBatis и других библиотек. Все этого на данный момент у Котлин нет и не предвидится — энтузиасты перешли на Scala. А не энтузиасты ничего делать не буду. Я вижу лишь один источник коммьюинити для Kotlin — фанаты JetBrains. А таких вне Питера и этого форума не так уж и много.

Вообще-то, у меня вот прямо сейчас Котлин используется через Spring Framework, в том числе для Hibernate'овых классов. Всё работает без каких-либо вопросов.
Sapienti sat!
Re[5]: Kotlin - статус
От: elmal  
Дата: 27.05.12 03:52
Оценка:
Здравствуйте, A13x, Вы писали:

A>Я правильно понял, что это обобщенный фреймворк для DSL? Давно уже о нем слышу от разных людей, но все руки не доходят всерьез взяться...

A>Не совсем ясны границы фреймворка — насколько гибким можно сделать результирующий DSL, насколько гибкими можно написать генераторы (можно ли к примеру генерировать С-шный или яваскриптовый код) и т.п.
Я только игрался. Вроде как генерировать можно абсолютно любой код, хоть XML, хоть YAML, хоть Brainfuck. Правда осилить на должном уровне не получилось.
Re[3]: Kotlin - статус
От: elmal  
Дата: 27.05.12 04:00
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>В Котлине будут inline-функции и оптимизация хвостовой рекурсии (пока недоделано). Есть pattern matching, причём более удобный, чем в Скале. При этом — упор на интероперабельность с Java.

Вот именно что будут. То есть пока нет. А тот pattern matching, который есть, я на чистой Java реализую с не меньшим успехом и практически также лаконично. Ибо текущая реализация на Kotlin является просто синтаксическим сахаром над instance of. Я был на Scala dev, где про Kotlin рассказывали, и там подтвердили, что пока pattern matching весьма примитивный.
Re[3]: Kotlin - статус
От: dsorokin Россия  
Дата: 27.05.12 04:50
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Скала — это набор кривых костылей, которые делаются академическими программистами, не пишущими реальных проектов. Мой любимый пример — это Option'ы в Скала. Ими пользоваться сложно из-за того, что Option[1]==1 — это ложь. Исправляется элементарно, но разработчики Скалы отказываются это сделать, так как иначе будут невозможны вложенный Option'ы (которые нафиг не нужны).


По-моему это уже было. И еще раз заступлюсь за Option. Все там нормально. Если бы Option[1] == 1, то это был бы полный крантец. Не дай бог, если так когда-нибудь будет.

А Option нужно уметь готовить, например, с помощью того же for-comprehension:

val x1: Option[A1] = ...
val x2: Option[A2] = ...
val x3: Option[A3] = for {

  y1 <- x1
  y2 <- x2

} yield {
  f(x1, x2)
}
Re[3]: Kotlin - статус
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 27.05.12 06:02
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Вообще-то, у меня вот прямо сейчас Котлин используется через Spring Framework, в том числе для Hibernate'овых классов. Всё работает без каких-либо вопросов.

Вы бы хоть прогугли о тех проектах, о которых я написал. Там не идет речь о просто интеграции Spring Framework и Scala. Речь о создание Spring DSL на Scala.
Если у Scala маленькое коммьюнити, то у Котлина я вообще пока его вижу только из одного человека — Cyberax. Назвать размер этого комьюнити вы можете сами.

На sql.ru человек из Лондона писал, что большинстов крупных банков перешли на Scala как основной промышленный язык. Посмотрите компании, которые уже используют Scala на сайте самой Scala. И посмотрите компании, которые уже используют Котлин, если найдете такие.
http://jvmmemory.com — простой способ настройки JVM
Re[5]: Kotlin - статус
От: A13x США  
Дата: 27.05.12 10:20
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, A13x, Вы писали:


C>>>Ну у меня там низкоприоритетный проект — я как раз для экспериментов его использую. Что-то серьёзное пока рано делать.

A>>А как же ты эти самые баги обходишь? Всякие воркараунды делаешь?
C>Убираю умные конструкции и заменяю рабоче-крестьянскими циклами. Если ошибка в библиотеке — просто делаю свою исправленную функцию/класс и засылаю патч им.
бодаться с языком — дело неблагодарное, кажется по рабоче-крестьянски можно и на яве писать, без изысков.

A>>+ Еще несколько напрягает отсутствие (до сих пор, уже как полгода) поддержки maven 2. Для себя сделал небольшой костыль, но все равно неприятно.

C>У меня проект собирается maven'ом.
На 2-м не собирается, поддерживают только 3-й.

A>>И было бы еще любопытно узнать, когда планируется допилить язык для промышленного применения, на официальном блоге что-то не нашел, может плохо искал.

C>Как только допилят В багтрекере у них 2000 багов, работы реально много. По моим прикидкам — где-то через год возможна версия 1.0.

Ну да, это и печально. Более того, похоже, что баги, которые у них помечены в трекере как Obsolete воспроизводятся на последних билдах.
Я не поленился — скачал последний плагин котлина к Idea — он идет вместе с компилятором — баг с forEach у меня продолжает воспроизводится но уже с какой-то непонятной ошибкой вида

org.jetbrains.jet.codegen.CompilationException: Back-end (JVM) Internal error: error types are not allowed when classBuilderMode = FULL
Cause: error types are not allowed when classBuilderMode = FULL


Все это раздражает и несмотря на то, что язык мне нравится, как-то не особо хочется его рекомендовать и использовать.
Re[4]: Kotlin - статус
От: Cyberax Марс  
Дата: 27.05.12 18:49
Оценка:
Здравствуйте, dsorokin, Вы писали:

C>>Скала — это набор кривых костылей, которые делаются академическими программистами, не пишущими реальных проектов. Мой любимый пример — это Option'ы в Скала. Ими пользоваться сложно из-за того, что Option[1]==1 — это ложь. Исправляется элементарно, но разработчики Скалы отказываются это сделать, так как иначе будут невозможны вложенный Option'ы (которые нафиг не нужны).

D>По-моему это уже было. И еще раз заступлюсь за Option. Все там нормально. Если бы Option[1] == 1, то это был бы полный крантец. Не дай бог, если так когда-нибудь будет.
Чем "крантец"? Операция полностью определена и работает вполне логично. Более того, в C#, F# и других .NET-языках совершенно нет с этим проблем.

Самое отстойное то, что код вида Option[1]==1 может получаться абсолютно случайно и прекрасно скомпилируется. Но что я лично натыкался и терял время на отладку.

D>А Option нужно уметь готовить, например, с помощью того же for-comprehension:

Ну т.е. с помощью костылей, о чём и идёт речь.

Ещё в копилку — отсутствие нормальных break/continue.
Sapienti sat!
Re[4]: Kotlin - статус
От: Cyberax Марс  
Дата: 27.05.12 18:51
Оценка:
Здравствуйте, LeonidV, Вы писали:

C>>Вообще-то, у меня вот прямо сейчас Котлин используется через Spring Framework, в том числе для Hibernate'овых классов. Всё работает без каких-либо вопросов.

LV>Вы бы хоть прогугли о тех проектах, о которых я написал. Там не идет речь о просто интеграции Spring Framework и Scala. Речь о создание Spring DSL на Scala.
А смысл?

LV>Если у Scala маленькое коммьюнити, то у Котлина я вообще пока его вижу только из одного человека — Cyberax. Назвать размер этого комьюнити вы можете сами.

Коммьюнити уже больше, но да, пока маленькое.

LV>На sql.ru человек из Лондона писал, что большинстов крупных банков перешли на Scala как основной промышленный язык. Посмотрите компании, которые уже используют Scala на сайте самой Scala. И посмотрите компании, которые уже используют Котлин, если найдете такие.

Скалу можно использовать, но не для промышленного программирования. Для академического (или схожего с ним) — сойдёт.
Sapienti sat!
Re[5]: Kotlin - статус
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 28.05.12 03:23
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, LeonidV, Вы писали:


C>>>Вообще-то, у меня вот прямо сейчас Котлин используется через Spring Framework, в том числе для Hibernate'овых классов. Всё работает без каких-либо вопросов.

LV>>Вы бы хоть прогугли о тех проектах, о которых я написал. Там не идет речь о просто интеграции Spring Framework и Scala. Речь о создание Spring DSL на Scala.
C>А смысл?
Этот вопрос можно задавать на что угодно. А смысл?
Наверное, люди и компании вложившие в это деньги и ресурсы смысл видят. Можете у них спросить напрямую.

LV>>Если у Scala маленькое коммьюнити, то у Котлина я вообще пока его вижу только из одного человека — Cyberax. Назвать размер этого комьюнити вы можете сами.

C>Коммьюнити уже больше, но да, пока маленькое.
Если вы назвыаете коммьюини Scala маленьким, то коммьюинит Kotlin'а просто нет.

LV>>На sql.ru человек из Лондона писал, что большинстов крупных банков перешли на Scala как основной промышленный язык. Посмотрите компании, которые уже используют Scala на сайте самой Scala. И посмотрите компании, которые уже используют Котлин, если найдете такие.

C>Скалу можно использовать, но не для промышленного программирования. Для академического (или схожего с ним) — сойдёт.
Ага, twitter чисто академический, никому не известный проект. Если верить участнику с sql.ru, Scala уже вовсю используются в финансовых конторах Лондона в качестве основного языка. Этому есть частичное подтверждение здесь http://skillsmatter.com/expert-profile/design-architecture/alex-mcguire На этом форуме рассказывали об успешном применение Scala в production системах. Так что посыл "для промышленного применения не готова" многие промышленники не поддерживаю.
http://jvmmemory.com — простой способ настройки JVM
Re[5]: Kotlin - статус
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 28.05.12 03:25
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Проектов немного, коммьюните не особо большое. Учитывая, что языку уже скоро 10 лет — это не взлёт.

Проектов достаточно, особенно если учесть простой факт — можно использовать Java проекты и это будет хорошо. Те же web-фреймворки в огромно количестве на Scala не особо нужны, т.к. она отлично интегрируется с Java web-фреймворками.
http://jvmmemory.com — простой способ настройки JVM
Re[4]: Kotlin - статус
От: StanislavK Великобритания  
Дата: 28.05.12 07:47
Оценка:
Здравствуйте, LeonidV, Вы писали:

LV>На sql.ru человек из Лондона писал, что большинстов крупных банков перешли на Scala как основной промышленный язык.

Гонит этот человек из sql.ru Ни одного такого банка не знаю. Да есть где-то проекты, но все backoffice где все медленно, как в плане производительноти, так и в плане деливери.
Re[5]: Kotlin - статус
От: StanislavK Великобритания  
Дата: 28.05.12 07:56
Оценка:
Здравствуйте, Cyberax, Вы писали:

LV>>На sql.ru человек из Лондона писал, что большинстов крупных банков перешли на Scala как основной промышленный язык. Посмотрите компании, которые уже используют Scala на сайте самой Scala. И посмотрите компании, которые уже используют Котлин, если найдете такие.

C>Скалу можно использовать, но не для промышленного программирования. Для академического (или схожего с ним) — сойдёт.
Это тоже слишком. Guardian.co.uk на скале написан. Довольно много пишут задумчиных приложений, которые жуют данные. Знаю, что в O2 в UK есть такое. В банках, как я уже упоминал, встречается в бэкоффисе, но не частно.
Скала вполне созревший язык. Со своими недостатками, но используемый и становится все популярнее, т.к. функциональное программирование входит в моду и скала, вроде как, в хорошей нише в этом плане.
Re[5]: Kotlin - статус
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 28.05.12 08:33
Оценка:
Здравствуйте, StanislavK, Вы писали:
SK>Гонит этот человек из sql.ru Ни одного такого банка не знаю. Да есть где-то проекты, но все backoffice где все медленно, как в плане производительноти, так и в плане деливери.
Можете с ним напрямую пообщаться. Я исхожу по простому — смысла кого-то обманывать в этом вопросе я не вижу, поэтому теория "есть" более вероятна чем теория "нет, потому что не видел". Может там не про банки шла речь, а просто про финансовые организации. Точно не помню, а искать смысла не вижу, т.к. слова на форуме ничем все равно особо не проверишь.
http://jvmmemory.com — простой способ настройки JVM
Re[6]: Kotlin - статус
От: Cyberax Марс  
Дата: 28.05.12 08:33
Оценка:
Здравствуйте, LeonidV, Вы писали:

LV>>>Вы бы хоть прогугли о тех проектах, о которых я написал. Там не идет речь о просто интеграции Spring Framework и Scala. Речь о создание Spring DSL на Scala.

C>>А смысл?
LV>Этот вопрос можно задавать на что угодно. А смысл?
LV>Наверное, люди и компании вложившие в это деньги и ресурсы смысл видят. Можете у них спросить напрямую.
Просто несколько лет назад я прекрасно помню эпопею с "а вот мы тут заменили XML с помощью DSL на Groovy!" В результате которых получались монстрики, которые нельзя было автоматически анализировать IDE.

LV>>>Если у Scala маленькое коммьюнити, то у Котлина я вообще пока его вижу только из одного человека — Cyberax. Назвать размер этого комьюнити вы можете сами.

C>>Коммьюнити уже больше, но да, пока маленькое.
LV>Если вы назвыаете коммьюини Scala маленьким, то коммьюинит Kotlin'а просто нет.
Это временно.

C>>Скалу можно использовать, но не для промышленного программирования. Для академического (или схожего с ним) — сойдёт.

LV>Ага, twitter чисто академический, никому не известный проект.
Там оно используется для сравнительно небольшого ядра диспетчеризатора сообщений.

LV>Если верить участнику с sql.ru, Scala уже вовсю используются в финансовых конторах Лондона в качестве основного языка.

Ну это как раз и есть псевдоакадемическая среда. В финансовых фирмах и ML неплохо живёт с Хаскеллем.

LV>Этому есть частичное подтверждение здесь http://skillsmatter.com/expert-profile/design-architecture/alex-mcguire На этом форуме рассказывали об успешном применение Scala в production системах. Так что посыл "для промышленного применения не готова" многие промышленники не поддерживаю.

Что совершенно теряется на уровне того же C#. В котором нынче есть LINQ, до сих пор не имеющий полноценных аналогов в Скале.

Вообще, сейчас C# — это практически идеальный пример того, как сложные функциональные фичи можно реализовывать в промышленном языке.
Sapienti sat!
Re[6]: Kotlin - статус
От: Cyberax Марс  
Дата: 28.05.12 08:45
Оценка:
Здравствуйте, LeonidV, Вы писали:

C>>Проектов немного, коммьюните не особо большое. Учитывая, что языку уже скоро 10 лет — это не взлёт.

LV>Проектов достаточно, особенно если учесть простой факт — можно использовать Java проекты и это будет хорошо. Те же web-фреймворки в огромно количестве на Scala не особо нужны, т.к. она отлично интегрируется с Java web-фреймворками.
Не особо отлично. Постоянно возникают проблемы с коллекциями, к примеру. С родными Java-коллекциями в функциональном стиле работать сложно, а Java-вский код не понимает коллекции Scala (неудивительно, так как я их тоже не понимаю).
Sapienti sat!
Re[6]: Kotlin - статус
От: A13x США  
Дата: 28.05.12 08:49
Оценка:
Здравствуйте, elmal, Вы писали:

E>Здравствуйте, A13x, Вы писали:


A>>Я правильно понял, что это обобщенный фреймворк для DSL? Давно уже о нем слышу от разных людей, но все руки не доходят всерьез взяться...

A>>Не совсем ясны границы фреймворка — насколько гибким можно сделать результирующий DSL, насколько гибкими можно написать генераторы (можно ли к примеру генерировать С-шный или яваскриптовый код) и т.п.
E>Я только игрался. Вроде как генерировать можно абсолютно любой код, хоть XML, хоть YAML, хоть Brainfuck. Правда осилить на должном уровне не получилось.

Я вчера попробовал поиграться — по впечатлениям — это просто ад и израиль.
Верю, что тул мощный, но монструозный и довольно сложный.
Порог вхождения очень высок, вдобавок сама нотация описаний избыточна и кривовата (чего стоит отсутствие переменных в описании "паттерна" функции при генерации кода).
Сложности добавляет необычный вид описания основных конструкций в MPS — по сути графическое (или как создатели его называют — проекционное) представление AST, мне это напомнило обсуждавшийся на этом сайте язык "ДРАКОН". Сами создатели упоминают о сроке в две недели, когда удается привыкнуть (или смириться) с предложенной схемой редактирования — на мой взгляд невероятно неудобной. Помимо полуграфического-полутекстового редактора есть еще дюжина настроек которые надо менять по ходу работы и которые никак не описать в текстовом виде — например приоритет применения языков и подключаемые MPS библиотеки.
Кстати, довольно любопытно, что в результате выбранного визуального представления tutorial-ы представляют просто последовательность скриншотов или видео, поскольку иначе, видимо, не представить наглядно вносимую порцию изменений в том или ином разделе демонстируемого примера. Это наглядно, на мой взгляд, демонстрирует несостоятельность идеи о бОльшей мощности и понятности чисто визульных средств разработки.

Словом — на мой взгляд овчинка выделки не стоит, вряд ли найдется много компаний готовых инвестировать время своих сотрудников в изучение этого монстра с более чем сомнительными дивидендами от такого изучения. Для создания DSL, на мой взгляд, больше подойдет связка ANTLR+Java или Clojure.

Подозреваю, что Kotlin создавался как простое решение проблем для которых изначально предназначался MPS.
Re[7]: Kotlin - статус
От: elmal  
Дата: 28.05.12 09:16
Оценка:
Здравствуйте, A13x, Вы писали:

A>Помимо полуграфического-полутекстового редактора есть еще дюжина настроек которые надо менять по ходу работы и которые никак не описать в текстовом виде — например приоритет применения языков и подключаемые MPS библиотеки.

Вот потому похоже и не взлетело. Я вчера тоже попробовал поиграться, и вспомнил, почему я его забросил. Как раз из за редактора, который даже копипаст не позволяет делать. Вот какого черта они сделали файлы в виде XML, а также додумались исходные коды в полуграфическом виде редактировать, для меня загадка. Да, выглядит то все круто, но редактировать абсолютно невозможно. Вот слов нет — ну ведь изначальная идея прекрасная, и проколоться на самом элементарном. Очень надеюсь, что в третьей версии от XML отойдут, и хотя бы сам текст программы на DSL будет действительно текстом, а не пойми чем.
Re[6]: Kotlin - статус
От: StanislavK Великобритания  
Дата: 28.05.12 09:23
Оценка:
Здравствуйте, LeonidV, Вы писали:

LV>Здравствуйте, StanislavK, Вы писали:

SK>>Гонит этот человек из sql.ru Ни одного такого банка не знаю. Да есть где-то проекты, но все backoffice где все медленно, как в плане производительноти, так и в плане деливери.
LV>Можете с ним напрямую пообщаться. Я исхожу по простому — смысла кого-то обманывать в этом вопросе я не вижу, поэтому теория "есть" более вероятна чем теория "нет, потому что не видел". Может там не про банки шла речь, а просто про финансовые организации. Точно не помню, а искать смысла не вижу, т.к. слова на форуме ничем все равно особо не проверишь.
Ну раз не проверить, тогда и вовсе упоминать не стоит.
Re[5]: Kotlin - статус
От: dsorokin Россия  
Дата: 28.05.12 10:53
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Чем "крантец"? Операция полностью определена и работает вполне логично. Более того, в C#, F# и других .NET-языках совершенно нет с этим проблем.


C>Самое отстойное то, что код вида Option[1]==1 может получаться абсолютно случайно и прекрасно скомпилируется. Но что я лично натыкался и терял время на отладку.


Ты меня окончательно запутал

scala> Some(1) == 1
res0: Boolean = false
Re[6]: Kotlin - статус
От: Cyberax Марс  
Дата: 28.05.12 10:57
Оценка:
Здравствуйте, dsorokin, Вы писали:

C>>Чем "крантец"? Операция полностью определена и работает вполне логично. Более того, в C#, F# и других .NET-языках совершенно нет с этим проблем.

C>>Самое отстойное то, что код вида Option[1]==1 может получаться абсолютно случайно и прекрасно скомпилируется. Но что я лично натыкался и терял время на отладку.
D>Ты меня окончательно запутал
D>
scala>> Some(1) == 1
D>res0: Boolean = false
D>

Именно. А должно быть true или ошибка компиляции — как это есть во всех остальных вменяемых языках.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.