The OpenNET Project / Index page

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



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

Оглавление

Выпуск Java SE 15, opennews (??), 15-Сен-20, (0) [смотреть все]

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


22. "Выпуск Java SE 15"  –1 +/
Сообщение от Сишникemail (?), 15-Сен-20, 22:25 
Ну и хорошо, котлен с его
fun a(b: Int) : Int {}
вместо
int a(int b) {}
ненужен, как и прочие смузихлёбные язычки с подобным синтаксисом.
Ответить | Правка | Наверх | Cообщить модератору

27. "Выпуск Java SE 15"  +7 +/
Сообщение от Аноним (27), 15-Сен-20, 23:01 
Такая запись в котлине следствие type inference, как и в других языках типа скалы. Такая запись удобней.
Ответить | Правка | Наверх | Cообщить модератору

28. "Выпуск Java SE 15"  +/
Сообщение от Сишникemail (?), 15-Сен-20, 23:14 
Больше букв писать неудобно, к тому же примитивов нет, к ctrl тянуться неудобно. А автовывод и в плюсах есть и в джаве, да только его использование не особо поощряется. Удобно, когда можешь кликнуть на тип и перейти к нему, или хотя бы видеть глазами, что за тип тебе функция вернула.
Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск Java SE 15"  –1 +/
Сообщение от Фотошоп лучше (?), 16-Сен-20, 00:37 
Вообще-то при построении логической модели вначале идёт переменная, а только потом тип. Хотя да, попытки думать, мешают говнокодить. И да, синтаксический сахар на фоне "поставить 3 явы, чтобы все работало..." выглядит как кощунство и стеб над вложившимися в разработку на Java
Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск Java SE 15"  +3 +/
Сообщение от Сишникemail (?), 16-Сен-20, 07:22 
> Вообще-то при построении логической модели вначале идёт переменная, а только потом тип.

Какая-то демагогия, у вас что, где-то в методичках так написано? Вначале вообще-то идёт проблема, потом формулировка задачи по её решению, потом тех стек / фрймворк / архитектура, потом алгоритм, и потом только переменные с их именами. И имя произвольно, первична задача, напрмер, обработать Bitmap например или стринги распарсить. Используемые типы диктуются задачей, имена же вторичны, и функция-однострочник, например, может вообще не вводить никаких новых имён. Ментальная модель "тип не важен" - это что-то из области скриптования, а не настоящего программирования.

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

76. "Выпуск Java SE 15"  +1 +/
Сообщение от нитрол (?), 16-Сен-20, 10:13 
Есть определенные причины почему новые языки отказываются от С style объявления типов переменных/etc. К примеру, golang в свое время тоже этим вопросом заморочился: http://blog.golang.org/declaration-syntax. Как я понимаю, те же причины и у Kotlin, etc.
Ответить | Правка | Наверх | Cообщить модератору

124. "Выпуск Java SE 15"  +1 +/
Сообщение от Аноним84701 (ok), 16-Сен-20, 21:49 
>  Используемые типы диктуются задачей, имена же вторичны,

Да бросьте вы метать бисер -- смузихлебам никогда не понять всю красоту, лаконичность и превосходство синтаксиса


volatile const static signed long int* const restrict borsch = {(const volatile void*)0};

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

92. "Выпуск Java SE 15"  +/
Сообщение от Страшный аноним (?), 16-Сен-20, 13:13 
Плюсую. Программы пишутся не только для процессоров, но и для людей. Фортрано-Паскале-подобный синтаксис объявления процедур, переменных намного более читабелен, чем Сишный. А для процессора лучше писать в двоичных кодах сразу.

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

50. "Выпуск Java SE 15"  –5 +/
Сообщение от DEF (?), 16-Сен-20, 06:04 
Имя переменной гораздо важнее, чем ее тип. Поэтому имя прописывается первым. Также по причине type inference, когда тип не указывается вовсе. Учи матчасть, а то таки будешь всю жизнь на VBA макросы писать.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

55. "Выпуск Java SE 15"  –3 +/
Сообщение от Сишникemail (?), 16-Сен-20, 07:36 
> Имя переменной гораздо важнее, чем ее тип. Поэтому имя прописывается первым. Также
> по причине type inference, когда тип не указывается вовсе. Учи матчасть,
> а то таки будешь всю жизнь на VBA макросы писать.

Забавно, что вы пишите  type inference, а не по-русски "вывод типа". Сразу видно, что цитата из пропагандической методички, а не собственные мысли. И как уже выше было написано, вывод типа есть и в C++ и в Java с классическим сишным синтаксисом.
По мне так скорее поломанный синтаксис скорее для того, чтобы было некомфортно писать одновременно и на java и на kotlin, и кодеры выбирали что-то одно - а легко внушаемые всегда выбирают то что на слуху. Kotlin это же продукт коммерческой компании, которая в его продвижение, как они сами заявляли, кучу денег вложили, и отбивать они их будут за счёт привязки прогеров к своей IDE.

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

81. "Выпуск Java SE 15"  –1 +/
Сообщение от DEF (?), 16-Сен-20, 11:22 
В отличии от вас, я свободно владею английским и привык читать технические первоисточники именно на нем, а не кривые великоскрепные переводы.
Ответить | Правка | Наверх | Cообщить модератору

82. "Выпуск Java SE 15"  –2 +/
Сообщение от Сишникemail (?), 16-Сен-20, 11:32 
Какая кому разница, что вы прочитали - если вы не поняли, что это значит и не можете сформулировать мысль без переключения на цитату из методички.
Ответить | Правка | Наверх | Cообщить модератору

100. "Выпуск Java SE 15"  +/
Сообщение от NameName (?), 16-Сен-20, 17:27 
Переведите мне type inference, если вас не затруднит.
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

71. "Выпуск Java SE 15"  +1 +/
Сообщение от nc (ok), 16-Сен-20, 09:26 
Такая запись идеологически правильнее. Сначала мы _однозначно_ определяем декларируемую конструкцию языка ключевым словом (func, struct, class, enum, var, const...), а затем пишем саму конструкцию. Это удобно для компиляторов и для многочисленных инструментов разработки.
Я кстати долго не мог это признать на уровне эмоций)
Да, наверное всякие двоеточия и стрелочки между списком аргументов и возвращаемым значением в общем лишние, и function можно сократить до fn как в Rust. Но в целом этот способ удобнее.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

80. "Выпуск Java SE 15"  +2 +/
Сообщение от Сишникemail (?), 16-Сен-20, 11:14 
> Такая запись идеологически правильнее.

Иделогически правильнее писать "во славу коммунистической партии Китайской народной республики и товарища Си Цзиньпиня лично положим x равным 5".

> Сначала мы _однозначно_ определяем декларируемую конструкцию языка ключевым словом

Ну да, var x = some() в котлин может быть созданием нового объекта, а может быть функцией. Ни разу не однозначно.

> Это удобно для компиляторов и для многочисленных инструментов разработки.

В 2020г пора бы уже и об удобстве программистов подумать. В котлине нет тернарного оператора, нет примитивов, & местами надо как and писать, а местами как & можно, нет автоматического приведения типа, в связи с чем если я хочу int записать hex кодом (цвет например обозначить), надо писать что-то типа 0xFF808080.toInt(), громоздкое объявление переменных и функций, проблема с тем, что типа бывает не видно (а если ide его и покажет, то он не кликабелен), и наконец - заинтересованность поставщика в полноценной поддержке только в 1 ide.

Так что java будет дальше жить и развиваться, со временем все полезные штуки в себя перетащит. Kotlin же пока держится за счёт пропихивания корпорациями и урезанной джавы в андроиде, иногда на бэке встречается, и всё. Обещанный kotlin multiplatform на практике слабо пригоден к использованию, если гугл вдруг решит сделать упор на dart или go например, kotlin повисит какое-то время в списке легаси языков да помрёт.

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

166. "Выпуск Java SE 15"  +/
Сообщение от nc (ok), 17-Сен-20, 20:14 
Я не пропогандирую котлин, а рассуждаю о синтаксисе языковых конструкций вообще.

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

126. "Выпуск Java SE 15"  +/
Сообщение от anonimous (?), 16-Сен-20, 22:17 
> Такая запись идеологически правильнее. Сначала мы _однозначно_ определяем декларируемую
> конструкцию языка ключевым словом (func, struct, class, enum, var, const...), а
> затем пишем саму конструкцию. Я кстати долго не мог это признать на уровне эмоций)

Тут надо острожнее, а то отсюда недалеко и до появления такой записи

generic function Min<T>(const A, B: T): T;
begin
  if A < B then Result := A else Result := B;
end;

> Да, наверное всякие двоеточия и стрелочки между списком аргументов и возвращаемым значением
> в общем лишние, и function можно сократить до fn как в Rust.

Ну да, а enum до en, const до cn, var до vr. Ну а можно снова вообще не писать, как не помню где.
Правда function еще можно, для дальнейшего удобства, обозвать и def, как еще где то.

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

165. "Выпуск Java SE 15"  +/
Сообщение от nc (ok), 17-Сен-20, 19:56 
Не обязательно сокращать все подряд (хотя, внезапно, enum, struct, const, var - уже сокращения). Писать все эти function, begin и end, двоеточия между переменной и типом - утомительно. fn для функций - достаточно, т.к. функции это наиболее часто встречающиеся конструкции. К тому же fn можно было бы использовать и для лямбда-функций, был бы единый синтаксис для всех функций вообще.
Объявления переменных вполне можно начинать с типа, как в Си - при условии, что это будет _единственная_ конструкция вида "идентификатор1 идентификатор2" (т.е. два подряд идентификатора, а не ключевых слова, без каких-либо операторов и пунктуаторов между ними). В С++ был конфликт вызова конструктора и прототипа функции:
Foo obj(); // это не создание объекта obj типа Foo, а объявление прототипа функции obj, возвращающей тип Foo и не имеющей аргументов.
Также были сложности с выводом типа возвращаемого значения по типам аргументов в шаблонах. Из-за всего этого пришлось потом вводить typename и альтернативный синтаксис прототипов:
auto foo()->return_type.
Если бы функции начинались с fn, такой фигни бы изначально не было.
Ответить | Правка | Наверх | Cообщить модератору

84. "Выпуск Java SE 15"  –2 +/
Сообщение от garrick (?), 16-Сен-20, 11:35 
Посмотрел учебник про Kotlin, увидел, что там function называют FUN... дальше читать не стал, не серьёзный какой-то язык.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

94. "Выпуск Java SE 15"  +/
Сообщение от Аноним (94), 16-Сен-20, 13:23 
Книга замечательная. Первую страницу открываешь, написано «Введение». Уже смешно.
Ответить | Правка | Наверх | Cообщить модератору

95. "Выпуск Java SE 15"  +/
Сообщение от Аноним84701 (ok), 16-Сен-20, 13:29 
> вместо
> int a(int b) {}
> ненужен, как и прочие смузихлёбные язычки с подобным синтаксисом.


e̵r̵r̵_̵s̵i̵g̵ ̵ ̵ ̵d̵b̵ ̵"̵E̵r̵r̵o̵r̵:̵ ̵H̵D̵D̵ ̵n̵o̵t̵ ̵b̵o̵o̵t̵a̵b̵l̵e̵ ̵(̵m̵i̵s̵s̵i̵n̵g̵ ̵5̵^̵5̵^̵A̵^̵A̵^̵ ̵s̵i̵g̵n̵a̵t̵u̵r̵e̵)̵!̵"̵,̵0̵
err_sig   db "Smoothie!",0
sig dw 0xAA55

От оно че, Михалыч! © o_O
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

121. "Выпуск Java SE 15"  +/
Сообщение от Аноним (121), 16-Сен-20, 20:28 
Котлин плохой язык потому что для определения метода в некоторых случаях нужно написать на 3 символа больше, да?
>смузихлёбные

Страшно подумать вы сами тогда кто и что это за программы такие в которых это имеет значение?

Описать маленький метод можно с помощью single-expression functions если уж несколько символов жалко
fun a(b: Int) = реализация
и.о. к.о.

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

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

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




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

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