М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 27 декабря 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

6 Кб, 250x250
Kotlin 13 сен, 23:06 1263822 В конец треда | Веб

Что расскажете об этом языке хорошего или плохого?

Ответы263890289532299559

2 13 сен, 23:17 2 1263833

Лучше скалы, хуже жавы.

Ответы263839

3 13 сен, 23:22 3 1263839

>>1263833
звучит странно

4 14 сен, 01:34 4 1263890

>>1263822 (OP)
игрушка от авторов платных плагинов для IDE на java. относительно взлетел только из-за встроенного оного в эту IDE, которая же android studio

Ответы263930

5 14 сен, 06:37 5 1263930

>>1263890
>игрушка
до серьезного языка не тянет?

Ответы263991

6 14 сен, 10:22 6 1263991

>>1263930
вне java мирка и intellij idea это мало кому нужно

Ответы264005264025

7 14 сен, 10:52 7 1264005

>>1263991
а как же котлин.нейтив?

Ответы264017264023

55 Кб, 640x446
8 14 сен, 11:02 8 1264017

>>1264005

9 14 сен, 11:16 9 1264023

>>1264005
Они вообще что-то годное пилят там или тупо транспайлер в LLVM и ЖС делают и все? причем в последнее, я слышал, что через dart-тулзу пилят??

Ответы264026264167

10 14 сен, 11:30 10 1264025

>>1263991
Синтаксис как-то сильно похож на джава-фикс. Причем не самый удачный.
val mutableList = mutableListOf<Some>()
было трудно сделать так?
let list = <Some>[]
let list = ["Текст1", "Текст2"] // <String>[]

И вообще почему надо писать приставку mutable, как часто ты тебе нужен список, который не изменяется. Тоже же вопрос с мапами.
Если нужно где-то что-то по быстрому передать - дайте кортежи людям, не уродуйте словами "mutable".

Ответы264171265325271197

11 14 сен, 11:32 11 1264026

>>1264023
>Они вообще что-то годное пилят там
убийцу xamarin

Ответы264030

12 14 сен, 11:39 12 1264030

>>1264026
>убийцу xamarin
Что именно?

13 14 сен, 15:25 13 1264167

>>1264023
Говоришь как будто этого мало, раст тоже например в ллвм компилируется. Да и к тому же не нужно будет иметь 150 мб жава рантайма чтобы запустить программу.

Ответы264292

14 14 сен, 15:32 14 1264171

>>1264025
> И вообще почему надо писать приставку mutable, как часто ты тебе нужен список, который не изменяется
Мутейбл изменяется. Я так понял это килер фича для с++ кодеров, потому что там каждая первая функция принимает const и всех это заебало писать

15 14 сен, 20:08 15 1264292

>>1264167
Ты не уловил мысль. У раста, как бы, есть свои батарейки, то есть он не тупо транспайлер с тонкой стандартной либой (типа вот вам сделали, дальше сами пилите, за любовь)

16 17 сен, 02:22 16 1265325

>>1264025
>И вообще почему надо писать приставку mutable, как часто ты тебе нужен список, который не изменяется.

В большинстве случаев нужен список, из которого элементы только читаются, а сам список не меняется.
Mutable-списки нужны иногда и в ограниченном скоупе.

Ответы265353

17 17 сен, 07:02 17 1265353

>>1265325
>В большинстве случаев нужен список, из которого элементы только читаются,
Сразу видно настоящих программистов. Но к сожалению, в большинстве своем список (List) нужен чтобы условно-неограниченно и динамично хранить какие-то данные. А вот для ограниченной последовательности подошел бы как раз классический джавовый/сишный массив.

То есть - List вообще не задумывался для того чего от него сейчас хотят. Это бл..дская коллекция, а не встроенный тип данных, от которого еще можно было требовать иммутабельность.
Я вообще не понимаю, каким гуманитарным-инженером надо быть, чтобы коллекции делать иммутабельными.

Ответы270876271194

18 27 сен, 11:11 18 1270864

Интересный комментарий
>>1269774

19 27 сен, 11:41 19 1270876

>>1265353
Его делают иммутабельным, чтобы безопасно использовать в качестве shared memory в многопоточной программе без использования синхронизации (мьютексов). И внутри этот список не совсем список в классическом виде, а другая похожая структура.

Ответы271088

20 27 сен, 18:25 20 1271088

>>1270876
Лол, конечно, ведь проблемы многопоточности это как раз та область в которой должны решать проблемы именно коллекции.

Проблема в том, что коллекция перестает быть коллекцией (резиновым контейнером), если она становится иммутабельной. И на самом деле, в жабе есть уже потокобезопасные коллекции (мутабельные).

...когда-то в истории, еще в эпоху С++:

чувак, у нас есть массив, которые удачно расположен в памяти, но он статичен, его неудобно использовать с динамичными данными.
@
хорошо, мы возьмем мощь ООП и сделаем резиновые "массивы" - контейнеры/коллекции!
@
Десятый год 21 века: Я гуманитарный инженер нового поколения, я вижу что коллекции не потокобезопасны!
@
А давайте, сделаем конкурентные многопоточные коллекции???
@
Неее, слишком просто и не модно, давай-те сделаем коллекция вновь статичными! И вообще только для чтения!

Ответы271198

21 27 сен, 23:46 21 1271194

>>1265353
>То есть - List вообще не задумывался для того чего от него сейчас хотят
Это ты за всех решил, что по назначению, а что нет?

Ответы271225

22 27 сен, 23:49 22 1271197

>>1264025
>как часто ты тебе нужен список, который не изменяется
Так же часто, насколько часто ты пишешь чистые функции, которые легко тестируются и которые не нужно синхронизировать.
>(List) нужен чтобы условно-неограниченно и динамично хранить какие-то данные
Опять же, в иммутабельных коллекциях спокойно хранятся динамическое кол-во элементов, если они персистентные

Ответы271229

23 27 сен, 23:51 23 1271198

>>1271088
Массив статичен только размером, данные в нем мутабельны. Садись 2.

Ответы271222

24 28 сен, 01:54 24 1271222

>>1271198
Про размер только и говорили.

А вообще, какой смысл от статичных элементов массива (точнее статичных ссылок в этих элементах) если не факт, что внутри объект потокобезопасный? Квази решения на одном уровне, ну круто че, за то похерили "динамичность" и вообще саму идею коллекций.

25 28 сен, 01:57 25 1271225

>>1271194
>Это ты за всех решил, что по назначению, а что нет?
Нет, потому что изначально list-контейнер и создавался для динамического размера. Ну то есть, там буквально статический массив пересоздается по мере увеличения (обалдеть, да?)
Видишь и ты тоже не знал, не хочешь тоже свой язык написать?

Ответы271643

26 28 сен, 02:32 26 1271229

>>1271197
>которые легко тестируются
Уже давно все отлично тестируется юнит-тестами.

>которые не нужно синхронизировать.
Нахера тебе синхронизировать в юнит тестах??

Да и вообще, сейчас бы в 2018 году решать проблемы многопоточности через ФП парадигмы в ООП языке с мьютексами в реале надо бить по рукам, если ты мешаешь многопоточность и бизнес-логику в одном месте, даже с иммутабельными данными. Правда, тут никто в реале код и не пишет, так что пох

Тут как получается, либо как в кложе, все иммутабельно и оптимизировано под это, и ты погружаешься в мир ФП как есть, либо нафиг идешь со своей утопией из мутированного монстра вида ООП вперемешку с огрызком из ФП.

>Так же часто, насколько часто ты пишешь чистые функции
То есть практически никогда, если сравнивать с моментом, когда тебе нужны действительно динамический списки коллекции.

>Опять же, в иммутабельных коллекциях спокойно хранятся динамическое кол-во элементов, если они персистентные
Чего бл#?? Ты хоть понял что сам сказал?

Ответы271394

27 28 сен, 11:36 27 1271368

Этот тред назначен точкой сбора первокуров.

28 28 сен, 12:26 28 1271394

>>1271229
>
>Да и вообще, сейчас бы в 2018 году решать проблемы многопоточности

Нормальных способов решить многопоточность всего 3:

1) Серверный, когда клиенты не взаимодействуют друг-с-другом, просто хуячим одинаковые потоки с однопоточным кодом по количеству ядер и сетевое соединение скедулит сообщения по потокам, в остальном код про многопоточность и не вспоминает.

2) Игроёбский: ECS+Job System, хорошо грузит ядра, снимает проблему "одно ядро долбится в сотку, остальные простаивают", в сириуз бизнес приложениях малоприменим в виду трудоемкости.

3) Правильный: Actor system - самый правильный, но имеет наибольший оверхед из трёх и годится только для действительно крупных систем (распредленных - кластеры, облака), где оверхед сжирается начисто распределенностью.

4) Самый правильный: Не ебать мозг с многопоточностью вовсе, пусть ядро в сотку себе долбится а клиента можно еще и на топ зионы брендовые развести в составе комплексного решения.

Ответы271396

29 28 сен, 12:27 29 1271396

>>1271394
>реверс-прокси-сервер скедулит сообщения по потокам, в остальном код про многопоточность и не вспоминает.

Ответы271464

30 28 сен, 14:45 30 1271464

>>1271396
>в остальном код про многопоточность и не вспоминает.
Именно. Все архитектурно удобно решается.
90% говна с многопоточностью возникают, именно когда одаренные смешивают б-логику и многопоточность в куче.

31 28 сен, 22:38 31 1271643

>>1271225
Т.е. твой аргумент против иммутабельных коллекций - раз деды сделали, то и неча менять? То что там внутри массив к теме не имеет никакого отношения.

Ответы271679

32 29 сен, 01:12 32 1271679

>>1271643
Если самолет сделали чтобы он летал, не надо ставить его на рельсы потому, что новое поколение гуманитарных инженеров не до конца поняли сути самолета, да?

Пища для ума:
В ФП языках иммутабельные данные - это нехило заоптимизированая фишка языка, потому что реальное клонирование при разработке на иммутабельных данных - пиздец как затратно (а при иммутабельной системе ты реально часто будешь клонировать).
Поэтому заморозить контейнеры и при этом не сделать копи-ин-врайт систему данных - это тупо подражание, а точнее карго культ, который в жабаподобном языке нахер не нужен (потому что не работает).

Для тупых:
Нельзя, бл#, в 100% не иммутабельной системе, решить проблему многопоточности, заморозив только малую часть типов данных. И не спасет тебя и "val", потому что он морозит только ссылку на объект (что в реале нужно для JIT оптимизатора, а не для ФП-макак).

То есть, это чистой воды карго культ, но при этом они обезобразили дефолтный контейнеры.

и да, это реально серьезно, потому что показывает уровень понимания людьми, того что они тащат в свой язык

Ответы271682271708

33 29 сен, 01:23 33 1271682

>>1271679
>и да, это реально серьезно, потому что показывает уровень понимания людьми, того что они тащат в свой язык

Хотя можно было остановиться еще на том моменте, как только стало понятно, что они типы местами переставили, плюнув всему джава сообществу в лицо.

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

34 29 сен, 05:43 34 1271708

>>1271679
>Если самолет сделали чтобы он летал, не надо ставить его на рельсы потому, что новое поколение гуманитарных инженеров не до конца поняли сути самолета, да?

Если придерживаться твоей аналогии, то у самолета есть как способность летать (MutableList), так и просто перемещаться по земле на колесах (List). И когда тебе от него нужно только второе, ты используешь именно тот интерфейс, который минимальным образом покрывает твои потребности.

Разделение способностей коллекций на два интерфейса - только чтение и чтение-запись - позволяет тебе держать порядок, в голове и в программе.

Например функция, которой нужен список значений, но она собирается эти значения только читать, может объявить тип параметра как List, что позволит принимать ей как мутабельные так и read-only списки. С другой стороны вызывая такую функцию можно не беспокоиться, что список внутри кто-нибудь помутирует.

> Поэтому заморозить контейнеры

Контейнеры никто не замораживает, все стандартные ArrayList, HashMap, HashSet прекрасно мутируемы.

Ответы271887

576 Кб, 667x616
35 29 сен, 15:43 35 1271887

>>1271708
>Если придерживаться твоей аналогии, то у самолета есть как способность летать (MutableList), так и просто перемещаться по земле на колесах (List). И когда тебе от него нужно только второе, ты используешь именно тот интерфейс, который минимальным образом покрывает твои потребности.
Лол, эти люди реально могут пустить самолет по рельсам.
Kotlin - для настоящих пилотов!

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

>С другой стороны вызывая такую функцию можно не беспокоиться, что список внутри кто-нибудь помутирует.
Доктор, я боюсь что мою коллекцию кто-то в функции может помутировать!)))

Ответы271895

36 29 сен, 15:59 36 1271895

>>1271887
Не, я конечно понимаю что джаву и котлин сейчас облепили школьники и студенты, которым купили андроид. Но это, конечно, очень забавно все.

37 10 окт, 02:04 37 1277124

тред жив?

Ответы277861

38 11 окт, 21:16 38 1277861

>>1277124
Наигрались уже что ли с котлином?

39 4 ноя, 09:18 39 1289532

>>1263822 (OP)
тред жив?

40 21 ноя, 13:52 40 1298886

Чего хотел-то?

Ответы299516

41 22 ноя, 12:57 41 1299516

>>1298886
счастья

Ответы299517

42 22 ноя, 12:58 42 1299517

>>1299516
А как же здоровье?

Ответы299520

43 22 ноя, 13:09 43 1299520

>>1299517
...и здоровья и хорошего настроения

44 22 ноя, 14:21 44 1299559

>>1263822 (OP)
KOSTYLIN и этим всё сказано.

45 22 ноя, 19:04 45 1299720

В катываюсь в Котлин, на Джаве до этого не работал.
Окей, вот у меня есть папочка, в ней несколько .kt файлов, как теперь это всё запустить кошерно?

Ответы299778

46 22 ноя, 21:22 46 1299778

>>1299720
>В катываюсь в Котлин, на Джаве до этого не работал.
Куда ты лезешь тогда?

Ответы299795

47 22 ноя, 21:58 47 1299795

>>1299778
>Куда ты лезешь тогда?
кто не жевал вербозное говно лет 5 лет -- тому сахар не положен?

Ответы300032

177 Кб, 565x565
48 23 ноя, 10:37 48 1300032

>>1299795
Это как сесть в пустой (но возможно красивый для кого-то) кузов от машины и попробовать на нём прокатиться.
Без джава бэкенда (знаний), там непонятно даже для чего половина сахара завезено. Я уверен, у нового анона будет перманентный wtf если он, конечно, не гумунитарь и не вкатывается после тонны маркетинга, о супер-пупер языке будущего
Вторая проблема, что если я захочу vsc, а не "ту" IDE? Мне придется так же страдать как шарпистам на линуксе?

Ответы301664

49 27 ноя, 03:49 49 1301664

>>1300032
>Вторая проблема, что если я захочу vsc, а не "ту" IDE?
Забавно, я как-то уже почти решился на фоне хайпа вкатиться в котлин, но потом вспомнил как сильно ненавижу эту IDE, эти вечные мелкие баги, эти вечные перенастройки проектов, эта долгая загрузка, эти неожиданные лагания под курсором, это парные автовставки всяких кавычек, которые чаще приходить убирать и корректировать. Эти подсветки незначительных ошибок, когда ты не использовал переменную (а на самом деле использовал, но мозгов у IDE не хватило понять, что она в форматирование строке).

В итоге отключаешь все это отключаешь, открываешь новый проект и все по новой.

Есть тут люди которые юзали котлин в различных IDE, как там жизнь с ним?

Ответы301665

50 27 ноя, 03:51 50 1301665

>>1301664
Ах да, как-то раз случился BSOD и все настройки слетели. Это было шедеврально!

Ответы302520

52 Кб, 1200x365
51 27 ноя, 04:02 51 1301667

Это уже жутковатенько звучит
https://habr.com/company/JetBrains/blog/431082/

Ответы302597

52 28 ноя, 16:37 52 1302520

>>1301665
Ну в BSOD-то точно виновата не твоя кривая система, а язык программирования и Бреслав лично, лол )
А если бы ты в это время на АлиЭкспресс по китайски общался -- то китайцы.

Ответы302779

53 28 ноя, 19:15 53 1302571

Собираюсь писать под андройд на котлине с поверхностными знаниями в джабе, какие подводные?

54 28 ноя, 20:13 54 1302597

>>1301667
хабропидор не палится

Ответы302780

55 29 ноя, 03:46 55 1302779

>>1302520
Эм... если после BSOD слетают все настройки IDE, то IDE не виновата? Ты здоров?

56 29 ноя, 03:48 56 1302780

>>1302597
Это ты про автора статьи или читателя?

Тред утонул или удален.
Это копия, сохраненная 27 декабря 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion