The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск Java SE 16, opennews (??), 17-Мрт-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


29. "Выпуск Java SE 16"  +1 +/
Сообщение от Аноним (36), 17-Мрт-21, 07:48 
> Стабилизирована реализация сопоставления c образцом в операторе "instanceof", которая позволяет сразу определить локальную переменную для обращения к проверенному значению.

сишарпненько

Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск Java SE 16"  +1 +/
Сообщение от ndimens (?), 17-Мрт-21, 09:31 
Скорее котлиненько
Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск Java SE 16"  +/
Сообщение от Wilem82 (ok), 17-Мрт-21, 12:16 
Да, это котлиновский  smart cast. Жава уже давно внедряет фичи из Скалы / Котлина. Получается не очень, примерно как C++ - нагромождения сбоку, которым мешает обратная совместимость. Хотя иногда даже она не мешает - взяли да сломали всё после 8-ой жавы. Короче непонятно зачем жавой вообще пользуются, кроме исторических причин.
Ответить | Правка | Наверх | Cообщить модератору

66. "Выпуск Java SE 16"  –2 +/
Сообщение от Аноним (66), 17-Мрт-21, 12:27 
в котлине почти ничего не осталость такого чего нет в java
А кода на нем мало
и совместимость неполная
Ответить | Правка | Наверх | Cообщить модератору

110. "Выпуск Java SE 16"  +/
Сообщение от Аноним (110), 17-Мрт-21, 16:03 
Чего только в Java нет, а нет хотя бы следующего:

- расширяющих функций. Это сахар улучшающий код, вместо статических методов Utils.toJson(LibraryObject) он позволяет писать LibraryObject.toJson(); где LibraryObject это class из сторонней зависимости.
- infix функции. Простой способ сделать подобие DSL, вместо x.conj(y) позволяет писать x conj y; где x и y пришли из сторонней зависимости.
- создание функций с получателем (когда в замыкании this указывает на объект получатель, это похоже на использование инициализатора тут: new HashSet() {{ put("Key", "Val"); }}, но работает в теле лямбды.
- типобезопасных строителей позволяющих в коде написать подобие декларативного DSL. Можно использовать даже для DOM и DTO в очередном CRUD.
- корутин. Реактивный код написанный на java с использованием лямбд очень тяжело читать, для этого во многих языках ввели механизм async/await, в котлин сделаны suspend функции.
- declaration-site variance, позволяет в декларации класса объявить что он является Producer(? extends T) или Receiver(? super T) в java только usage-site variance (wildcards в сигнатурах функций).

Это не все, это то чем я пользовался и запомнил. Не всегда такая мощь языка хорошо, можно 1 вещь сделать 10 способами, но в умелых руках это просто супер, значительно превосходит возможности java+lombok.

Ответить | Правка | Наверх | Cообщить модератору

132. "Выпуск Java SE 16"  +2 +/
Сообщение от F (?), 17-Мрт-21, 19:47 
искренне не понимаю зачем все это пихать в язык с си подобным синтаксисом.
пусть в нем веще длиннее написаны, но они понятнее написаны.
а читать код и помнить все 10 способов написания не самая интересная идея, как по мне.
Ответить | Правка | Наверх | Cообщить модератору

138. "Выпуск Java SE 16"  +1 +/
Сообщение от Аноним (110), 17-Мрт-21, 20:23 
> искренне не понимаю зачем все это пихать в язык с си подобным синтаксисом

СИ подобный... не ожидал, ведь многие ругают Kotilin за синтаксис, разберем пример:

> val max: Int = if (a > b) a else b

Тут могла бы быть минута ненавести со стороны сторонников каноничного СИ-подобного языка.

1. Постфиксная запись типа.

Во всех новых языках (rust, swift, go) делают постфиксную запись потому как тип можно опустить, компилятор сам выведет тип, в примере можно убрать :Int и все будет работать.  
Автоматический вывод типа позволяет получать на статически типизированных языках код близкий к скриптовым, при этом ошибки будут отловлены на стадии компиляции или валидации кода в IDE.

2. Условный оператор if не должен возвращать что-либо. Но в kotlin if работает как выражение возвращающее значение, прямо как в clojure: (println "Value is" (#(if (> % 10) (str "High")(str "Low")) 100))

> пусть в нем вещи длиннее написаны, но они понятнее написаны

Это уже есть в GO и потому он популярен.

Как было метко сказано: Пусть расцветают сто цветов  (c)

Ответить | Правка | Наверх | Cообщить модератору

159. "Выпуск Java SE 16"  +1 +/
Сообщение от Аноним (156), 18-Мрт-21, 01:04 
Эм, C#, который Вы так яро поносите - один из вдохновителей Kotlin (что бы ни писали в википедиях).
Очень грубо говоря, Kotlin можно описать так:
1. Реализовал человечный ФП, потому что у Scala не получилось.
2. По синтаксису - нечто среднее между C# и F#. Тот же паттерн матчинг, например, вдохновлялся F#.

Ах, да, реактивное программирование в C# уж в 2009 году было. Async await все ЯП спёрли именно у C# (который в свою очередь получил реализацию после F#). Человеческие лямбды введены впервые тоже в .NET, остальные посмотрели: "о, вот у этих норм вариант!" и реализовали схожим образом. У VB.NET типобезопасная работа с XML (не самый удачный пример, но аналогия перечисленному подходящая).

Так что Ваш негатив в сторону и C# и Java ОДНОВРЕМЕННО - противоречив, стоит определиться. ИМХО, Java не любимчик конкретно в этом сравнении.

Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

184. "Выпуск Java SE 16"  +/
Сообщение от Аноним (184), 19-Мрт-21, 20:06 
> Очень грубо говоря, Kotlin можно описать так:
> 1. Реализовал человечный ФП, потому что у Scala не получилось.

В Kotlin ФП гоораздо слабее, чем в Scala. Не человечнее. В Scala как раз идеальное сочетание ФП и ООП. Нормальный паттерн матчинг, иммутабельные типы из коробки в стандартной библиотеке с кучей полезных ФП-методов. Проще, чем в Haskell, но со всей функциональностью.

> 2. По синтаксису - нечто среднее между C# и F#. Тот же паттерн матчинг, например, вдохновлялся F#.

Это как? В Kotlin как раз и нет полнофнукционального паттерн матчинга с декомпозицией, как в F#, Scala или Haskell.

> Человеческие лямбды введены впервые тоже в .NET

В Ruby были за много лет до C#, в 90-х ещё.

Ответить | Правка | Наверх | Cообщить модератору

73. "Выпуск Java SE 16"  +1 +/
Сообщение от Аноним (73), 17-Мрт-21, 12:47 
Ну нет. Тут ещё и наработки lombok втащили. Вообще, будущее Kotlin под большим вопросом. Таки, для проектов со сроком поддеркжи 10-20 лет, альтернативы Java не видно. На Java я точно смогу кого-нибудь найти на поддеркжу через 10 лет. Про Котлин - не факт. Не на "enterprise", по крайней мере.
Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

90. "Выпуск Java SE 16"  +1 +/
Сообщение от Ефросий (?), 17-Мрт-21, 14:21 
Да каво там искать, дал методичку полистать и пусть поддерживают.
Ответить | Правка | Наверх | Cообщить модератору

165. "Выпуск Java SE 16"  +1 +/
Сообщение от Аноним (156), 18-Мрт-21, 10:09 
Много из костыля в сам язык втащили?
Kotlin на Android - поддерживаемый ЯП, Java в энтерпрайзе - легаси, которое используется просто потому что ТЕОРЕТИЧЕСКИ замена может стоить дорого. То есть это именно пресловутый вендорлок.
Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

108. "Выпуск Java SE 16"  –1 +/
Сообщение от Аноним (108), 17-Мрт-21, 15:40 
Нелепо противопоставлять Котлин, который лишь синтаксический сахар, базовой платформе Яве.
Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

119. "Выпуск Java SE 16"  +/
Сообщение от Аноним (156), 17-Мрт-21, 17:43 
Нелепо называть язык со своим миром, реализованный под JVM, синтаксическим сахаром.
Это как сказать, что любой из языков, компилируемых с помощью LLVM - синтаксический сахар. А это, на минуточку:
ActionScript, Ada, C, C++, C#, Common Lisp, Crystal, CUDA, D, Delphi, Dylan, Fortran, Graphical G, Halide, Haskell, JavaScript, Julia, Kotlin, Lua, Objective-C, OpenCL, PostgreSQL's SQL and PLpgSQL, Ruby, Rust, Scala, Swift, Xojo и Zig.
Или как назвать F# синтаксическим сахаром для Visual Basic или C#.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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