Это копия, сохраненная 30 сентября 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вкатываемся в новый язык на превосходно отточенной jvm с богатейшим набором библиотек от java.
>Что имеем:
У нас есть синтаксический сахар поверх джавы, немного ФП (удобные лямбды), корутины с асинхронщинной, DSL и многое другое.
В синтаксисе можно встретить много WTF-решений (как же без них), но в целом, плюсы перевешивают минусы. Так-то, во всех языках есть что-то что раздражает.
Параллельно jvm платформы пиляться kotlin-js (котлин для javascript) и kotlin-native (компилируемый в нативный код котлин). В целом, DSL позволяет даже писать на HTML и CSS, если кому-то это надо.
Котлин имеет полный интероп с джавой, от чего его не совсем корректно сравнивать со scala.
>Хайп:
Язык был подкреплен гуглом в связки мобильной разработки, а с недавних пор рекомендован как основной язык для андроида, из-за чего начался рост популярности языка.
Также для языка был создан фонд, чтобы в случае покупки создателей не повторилась судьба с джавой. Вероятно условия гугла.
В связи с этим, котлин очень популярен в мобильной разработке, порой даже раздражает, что весь свежий контент пишут именно о телефонах. Но нужно помнить, котлин это та же джава и сейчас мы видим, многие фреймворки предлагают решения сразу на двух языках (как минимум пишут примеры, но в целом котлин имеет хороший интероп и так).
>Производительность.
Не забываем, что java (с JIT) одна из самых производительных платформ. Она делит топ 10 наравне с многими другими производительными платформами. Также у джавы хорошо оптимизированный драйвер базы данных, что видно по тестам.
https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=query
Нередко именно база-данных является узким местом в веб-приложениях.
>Q: Котлин это что-то про разработку на андроиде?
A: Нет, не только. Объем разработки на JVM высок, но в основном где-то на галерах. Смотрим статистику:
https://www.jetbrains.com/ru-ru/lp/devecosystem-2019/kotlin/
>Q: ...кококо, котлин уничтожит джаву!
A: Нет. Котлин сильно завязан на джаву и не заменяет её, а скорее дополняет (как typescript дополняет javascript). Джаву никто и ничто не заменит в ближайшие 15-20 лет, у этого языка чрезвычайно огромный капитал написанного кода, поэтому переживать за неё не стоит. В любом случае конкуренция это хорошо, джава стала развиваться (попутно завозя годноту в байткод).
>IDE - среда разработки.
Бесплатная community edition - обычно более чем достаточно (и работает шустро), но можете попробовать триал-версию.
https://www.jetbrains.com/idea/download/
>Официальный сайт и там же чтиво
https://kotlinlang.org/docs/reference/
>То же с переводом (на первый, взгляд ру-перевод, впервые выглядит не заброшенным):
https://kotlinlang.ru/
>Котлин в примерах
https://play.kotlinlang.org/byExample/overview
>Try Kotlin (пробуй и кодь)
https://try.kotlinlang.org/
>Онлайн компилятор (вставить код или просто что-то потестить)
https://play.kotlinlang.org/
>Awesome (либы близкие к kotlin, но не стоит забывать про java решения)
https://kotlin.link/
или
https://github.com/KotlinBy/awesome-kotlin#libraries-frameworks-web
>Telegram
В телеге есть чаты по котлину. Это полу-белорусское комьюнити, которое клонирует пачками чаты (раньше про джаву - JavaBy и KotlinBy в Gitter). Крайне не рекомендую посещать это рассадник из ЧСВ макак. В чатах лобызаются одни и те же лица и если ты им не понравишься (а ты им не понравишься) будут постоянно тебя подстрекать пассивной агрессией или принуждать к анальным правилам, которые они вспоминают только тогда, когда пишешь ты. Конечно, ты можешь терпеть и сидеть в этой помойке, но если не хочешь словить негатив и получить ложное представление о ру-комьюнити, не рекомендую посещать этих ребят. Лично видел как токсично слили пчела за расспрос про api java.
Если можешь в ангельский, лучше сразу нырнуть в слаку.
https://kotlinlang.org/community/#kotlin-online-resources
Но лично я рекомендую не заниматься херней в чатиках, а спрашивать сразу на StackOverflow, тем самым ты сразу поможешь тысячи другим пользователям (и себе в будущем, если забудешь):
https://stackoverflow.com/questions/tagged/kotlin
Там можно спрашивать даже банальные вещи (кроме неопределенных), они потом хорошо гугляться и превращаются в простой справочник. Серьезно, анон, прекращайте спрашивать на древних форумах, бестолковых чатах, и даже двачах. Если уж совсем плохо с английским и не можешь в переводчик, то там есть ру-язычная версия сайта, но это так себе идея
>РАЗНОЕ
>Шпаргалка по run, let, apply, also
https://pbs.twimg.com/media/EENzl8CWwAApP3W?format=png
или статья по теме
https://www.rockandnull.com/kotlin-let/
На практике, если точно не уверены, можно просто кликнуть и посмотреть исходник функции (не вникая в контракты).
Если вам нравится kotlin или java и вы умеете читать документацию сами, то можете просто кидать в тред годный контент, новости и прочее из мира jvm.
Пох, буду сюда периодично контент кидать какой-то. Может не часто, но стабильно.
Моей активности для очередного паблика или блога не хватит, а вот для треда контента найдется.
Мне не нравится что треды не перекатывают. А висеть с 1,5 аноном в дохлом треде, такое себе удовольствие (кому контент то кидать? Самому себе не очень, а так хоть мимокрокодил какой пробежит, проникнется).
>Мне не нравится что треды не перекатывают.
Они превращают java-тред в cobol-тред.
Я еще не так стар для этого.
Асинхронное программирование.
Есть системные потоки, они легче чем процессы, но все равно достаточно тяжелые для некоторых решений. Поэтому и используют такие типо "микропотоки", которые постоянно переключаются средствами программы (а не ОС).
Скажем в среднем больше 1.000-10.000 потоков не создашь на машине, а вот 100.000-1.000.000 корутин это нормально.
Ну и утилизация ресурсов. Пока твоя корутина открывает файл или читает из файла (стоит в ожидание, это долго), другая в это время может поработать.
Это как в го, только тут можешь управлять всем этим.
Простой пример (условный), скажем есть у тебя приложение которая отдает 100байт json, с потоками отдает у тебя (условно) 1000 запросов в секунду, а вот с корутинами 100.000.
Если у тебя бложик про котят, с html шаблоном в 500кб, то тебе, корутины скорее всего не нужны, у тебя канал забьется быстрее чем ты 200 запросов в секунду будет.
То есть асинхронное программирование не всегда нужно, но хорошо когда оно есть.
Потому что это горутины взяли из корутин (не котлиновских, а вообще из ранних)
Братишка, давай шашки из грязи сделаем. Я просто придумал. Чёрные мы из грязи просто слепим, шашки, так? А белые, значит, мы тоже из грязи слепим, и, я как раз вот, от папироски бумажку, я её выкидывать-то не буду. Я её на мелкие такие кусочки нарву, и, и в эту грязь сверху аккуратно вставлю, так? И будем, ну, чтоб совсем уже тебе грустно не было, мы будем на интерес играть какой-нибудь, хочешь? В шашки?
давай тогда шахматы
Семён Семёныч...
Если не совсем понимаешь что это, то пока лучше не трогай.
Даже джава потянет.
ну я выше и писал,что пару тыщ онлайн-это уже успех
https://www.reddit.com/r/godot/comments/f07564/kotlin_gdnative/?utm_source=share&utm_medium=web2x
https://github.com/MrAkakuy/kotlin-godot-wrapper
https://snyk.io/blog/kotlin-overtakes-scala-and-clojure-to-become-the-2nd-most-popular-language-on-the-jvm/
не думал что кложа так популярна
Еще бы он не обогнал борщехлебов. Такое себе достижение.
У SO другая динамика.
Только сейчас увидел что питон из первого места "вырезан".
Это не цензура, лол, это их блядская статическая менюшка закрыла.
Кстати, офигел, как удобно парсить файлы на котлине (вот этот сахарок с лямбдами и функциями-расширениями). В общем, переписал все свои питон скрипты, которые по мелочи парсили файлы.
Я знаю что и котлин может в скрипты, но я "на месте" никогда не писал, деплоил все, поэтому fat jar оказались очень удобный для меня. Удобнее чем костыли с virtenv в питоне.
И да, на винде так же как и питон можно запустить по-клику (на .jar), подобно .exe файлу.
Почему?
сектант иди в го тред там все ваши
>кложа так популярна
кложа не так плоха, лисп синтаксис это если понравилось сразу то все остальное кажется убогим, вот в скале адок тот еще.
Шарп был хорош лет 10-15 назад, сейчас только за одну точку с запятой можно дропнуть язык. А эти нэймспейсы с вложением, жуть.
В общем, он хорош, но морально устарел.
Но главные фатальный недостаток - отсутствие такого же количества решений (либ) как в джава мире. Не факт что тебе чего-то не хватит, но согласись лучше когда все же имеется что-то чем этого нет.
И да, эта путаница с CORE. Что там есть, что читать, чего нет, нафига мне это?
На андроиде официальный язык это котлин (теперь). По производительности разнице нет. Бери что нравится.Возьми джаву, удиви народ
как и большинство - зашел в ассетстор и подвигал скаченные приколы
Почему?
Это как раз понятно. Раньше можно было говорить, что если .NET как платформа и не дотягивает до JVM, то уж точно всем очевидно, что как язык шарп превосходит джаву. Ну и джавистам было из-за чего пооблизываться в сторону конкурирующей платформы. А теперь есть котлин - удобынй современный язык для JVM, как раз плюс-минус аналог шарпа. Все, теперь .NET точно не нужен.
Хоспади, сколько же макакам библиотек нужно? Ещё бы говорить в 2к20 что у шарпа библиотек мало.
Неосилятор, плес.
мало
Если ограничить поиск в гитхабе от 1000 звезд, то мы увидим
https://github.com/search?l=C#&q=stars:>1000&type=Repositories
C# - 547 repository results
Java - 2,368 repository results
Kotlin - 183 repository results
Это печалит для шарпа. Он даже руби не догоняет. Хотя язык хорош, не спорю. Но котлин лучше.
PS
У го, конечно большие результаты, но что-то мне кажется, в условиях самописных костылей, они тупо накручивают звезды друг другу. Нечто подобное делали в свое время на гитхабе, массова плюсуя комменты или минусуя
Почему для крупной компании выгодно выкладывать продукт, за которого он заплатил (в случае группы программистов, заплатил не мало)?
это таже жаба которую почистили от говна обратной совместимости и добавили сахара.
Можно, котлин как раз про синтаксис свой.
Просто нужно будет понимать и уметь пользоваться джава либами (в том числе и из SDK типа коллекций, даты там...)
Так а нахуй нужен этот тред, если котлин от жабы только синтаксисом отличается?
Чтобы оп мог общаться с залетными, а в жаботреде ему скучно.
Да это пиздеж потому что. Связь котлина с джабой только в том, что они компилятся в байткод jvm и то, что котлин имеет интероп с джабой и все. Чтобы изучить котлин, джабу знать не надо.
И, в отличии от джабы, котлин может компилится в LLVM IR, поэтому можно писать не под jvm (например, чтобы писать код для ios).
котлета хостед язык, а не нативный, ессесно мультиплатформа, как кожура/кожураскрипт
Книги советуете какие? HeadFirst годно или хуета? Перекатываем жавовый энтерпрайз на Котлин, но в нем один человек шарит хорошо только.
Свят свят, не.
Читал 1, не оч на самом деле понравилось (но сойдет)
Видел 2, пока еще не читал.
А так мне офф документации хватило и чуток в try.kotlin поиграл.
Чувак такой, тролил прибитыми на ворота надписями.
У нас котлин поверх легаси и мы вот скорее не переписываем, а делаем рефакторинг. Но в монолите это дается сложно. А разгуляться на всю архитектуру не разрешают (есть зудящее желание начать рядом писать с нуля).
Алсо, подкиньте идей для игрухи
Мимо джава обезьяна
https://youtu.be/0S4RHhnq2jU?list=PLxrecpWr-albQmySsYPQ0_A_q0jpOiv7u
https://www.youtube.com/watch?v=HKo5DFxc6nI
Несмотря на пафос, можно въехать в базис, если раньше даже не представлял как это
ну наконец-то КОТлин
Каким же долбаебом надо быть, если все что ты не можешь понять называть говном?
Кейсы разные:
-Ты пришел с работы/вуза/школы/садика и хочешь полежать, почилить в видосики, а не снова убивать глаза об буквы в мониторе.
-Ты не хочешь с головой лесть в ебеня, а просто хочешь глазком глянуть, что же этот котлин такое (или другая технология).
-Ты матерый чел, который знает, что повторение материала с другого "ракурса" улучшает запоминание (при этом устав уже кодить или читать)
-Ты возишься и слушаешь видосики как подкаст на фоне, лишь периодично поглядывая на второй монитор, если кто-то говорит про незнакомые/интересные вещи.
-...
Как там с РАБоткой обстаят дела?
Насколько критично знание явы для вката в андройд разработку в 2к20? С точки зрения наличия вакансий в СНГ
Просто начать писать код. Меня так на проект взяли без знания Котлин - за месяц освоился.
Нах книги, тут пробежаться день-два по:
https://kotlinlang.org/docs/reference/
https://kotlinlang.ru/
Тут вот кидали ру-варианты
>>617947
Язык молодой, прям таких стойких по-убеждению коммьюнити книг еще не определили.
Я конечно понимаю, какому-нибудь питонисту синтаксис этот покажется магическим или вырвиглазным, но насколько это удобно (сам раньше питонячил мини-утилитки).
Это был сарказм, который как бы намекал анону отправится
и самому посмотреть что и как по вакансиями, особенно в его городе.
Таки котлин, с типами, все по честноку.
Ты же понимаешь что у лямбды apply значение this будет от новой мапы? И нужно заюзать замыкание.
Не понял. Библиотеки часто, синтаксис никогда.
Ты же не будешь писать свой логгер если нормальный на джаве уже написан и привычен?
Логика уровня программача.
У тебя есть две машины одной марки.
У первой все обычное, у второй салон шикарнее, компьютер в машине, удобные сиденья, кондиционер, музыка хорошая.
Какой смысл использовать вторую машину если у них двери одинаковые?
Действительно, причем...
J#
Для вкатывантя в Котлин и после в андроид дев нужно ли знать Яву, или можно сразу начинать с кота?
Кота хватит если разберешься с коллекциями и как вообще юзать сдк джавы, когда оно надо (понимать ООП вообще)
Как там у вас дела? Разрешили уже пакетный менджер?
Это навестить пришли
Как по мне, эти apply, also, run, let и прочие скобы - одни из самых спорных сахаров. Вроде удобно, мы можем опустить некоторые переменные, что приятно на глаз, но одновременно это плодит ещё одну вложенность, что не очень. Поэтому очень просто можно обосраться с ними.
чем те анонимные функции не угодили
Они очень удобны когда метод не возвращает this, а очень надо не размазывать инициализацию на 100500 строк (то есть, уместить все один логический блок).
В той картинке как раз этот случай, putAll возвращает void, а мог и this. Тогда можно было записать цепочку.
return mutableLIst().putAll(list)
Многие конструкции в коте очень удобны и не всегда очевидна их мощь на первый взгляд (особенно если перекатил из топорных языков типа джавы, го, питона).
PS: Для клонирования коллекций есть toList() и toMutableList(), я там просто в дженерики игрался из какого-то примера
живой тред, набирающего популярность инструмента.
можно и без л ямбд но придется размазывать код
Даже два. Могут себе позволить
⊂_ヽ
\\
\( ° ʖ °)
> ⌒ヽ
/ へ\
/ / \\
レ ノ ヽ_つ
/ /
/ /|
( (ヽ
| |、\
| 丿 \ ⌒)
| | ) /
ノ ) Lノ
(_/
Ну вообще я знал, что это лямбда и я не изучал руби а стоит?. Твой пример здесь очень кстати. Я просто вёл к тому, что если злоупотреблять этим выражением, то можно снизить читаемость самого кода
>то можно снизить читаемость самого кода
а если размазывать функции будешь, то явно не повысишь
Почему?
Любые конструкции любого языка надо использовать в меру и по назначению.
Помню когда первый раз увидел свифт и замыкание начинающееся с if let self = self, вот это было странно
Я в расте увидел запись
if let Ok(lines) = read_lines("./hosts")
И понял как глубоко можно упороться на ровном месте.
Вероятно, сначала let создает lines, потом отрабатывает Ok и уже потом if.
Как все таки легко придумать вторую скалу.
Спасибо <3
Лол, где?? Ok, let или if?
Что в этом бардаке происходит первым? Если let, то какого фига он за скобками??
read_line реал ворлд функция возвращающая Option(content) или Err
if let конструкция сопостовляет паттерн и двигает значение/указатель, если он есть, в переменную
Если паттерн не совпадает if let дает возможность не обрабатывать остальные случаи
readline("./hosts") -> Ok(%content%)
if сопостовляет паттер Ok и двигает %content% в let lines
В чем вообще профит такой магии?
Это же эквивалентно:
let lines = read_lines("./hosts")
if lines != null {...}
А для какой-нибудь джавы, котлину или там питону, вообще можно без null обойтись, потому что есть исключения.
В твоем примере переменная остается опциональной и на каждый чих ее нужно принудительно извлекать. Исключения разворачивают стек вызовов, уже поэтому их следует избегать, особенно на языке для мобильной платформы.
Не понимаю жирнишь ты или зелёный
Это уже миллиард раз обсасывалось
null - "The billion dollar mistake" мира программирования. Проскальзывает где угодно, семантически значить может вообще любую хуйню, в конце концов ты придешь или к стрелянию себе в ноги, или к лишней обработки кейса конкретно с null
Выбрасываемые исключения, обрабатываемые говном по типу try..catch, если ты про них - генератор миллиарда строк спагетти кода, который можно заменить той же простой структурой Option(/Maybe)/Result. Еще и калбек стак нахуй взрывает, да
if let пиздатая сахарная структура, полностью отрожающая происходящее и в логике, и в мувах памяти раста
Я тебе пофиксил без ошибки на миллиард долларов (на котлине), правда проблему динамических данных это не решает никак, зато стильно и молодежно
val lines = readLines("./hosts") ?: listOf()
if (lines.size > 0) {...}
Засовываешь в свой язык всякое говно мамонта вида Option(/Maybe)/Result, до посинения пишешь иерархию из угловых "скобок".
@
Где-то по соседству в каком-то котлине просто вводят тип с вопросиком "String?" и решают все проблемы через несколько операторов типа "?." или "?:"
Я буду угорать если kotlin-native допилят по производительности и он скинет раст или кресты.
>Я буду угорать если kotlin-native допилят по производительности и он скинет раст или кресты.
Не станет никогда
>несколько операторов типа "?." или "?:"
Никто в здравом уме не будет писать подобное унхендлед говно в продакшен
Я как человек пишущий на котлине с 2012 говорю
>Не станет никогда
Писать околосистемное на вменяемом синтаксисе. Это то что нужно человечеству уже давно. Тут больше вопрос производительности и работы с памятью. Если он будет решен, то проблем не будет. И так же будут писать игры на котлине, на каком-нибудь godot.
>Я как человек пишущий на котлине с 2012 говорю
>Ругает основные операторы работы с null
Вот тут мы конечно с тобой приехали, жалко не сразу понял что ты зеленый.
Так в этом васянском поделии есть возможность определять свои Union типы, как в dotty, или остаётся только юзать те что дали?
java != scala
java == kotlin
=>
kotlin != scala
иди на какую-нибудь ржавчину, там скорее всего будут йоба типы, и йоба синтаксис. Котлин все же для работы, а не для анонизма ЧСВ
Все так. Scala - не более чем академическая поделка мистера Обербского, который пилит грант за грантом в надежде досидеть до пенсии у себя в Лозанне. Какого-либо коммерческого и практического применения Scala нет и не может быть, когда есть тот же Kotlin или последняя версия Java. То, что решается на Java/Kotlin за пару часов - на Scala выливается в несколько месяцев усердной работы.
Где-то в нулевые было такое понятие как "ламер", в общем, не компетентный человек, который сам твердо уверенный в обратном. Вот при просмотре этого хера, несколько лет назад, у меня возникло именно такое впечатление. Его мнение соткано из десятков голословных высказываний о программировании, которые он нахватался где-то из инета, создавая впечатление продвинутого программиста.
Он как-то ляпнул, про то как часто приходится из интерфейсов делать абстрактные классы. То есть, человек совершенно не разбирается в фундаментальных понятиях. Он буквально как джун видит в абстрактный классах обычный класс, в который тупо можно напихать общее функции, -"ну, а если я уже их напихал туда, то зачем мне интерфейс теперь".
Инфоцыгане, как они есть.
В айти конечно, не слушай его.
Буду благодарен за любую инфу
Берешь известный тебе участок кода (или тупо импорты, как я скинул). Вбиваешь в поиск гитхаба и ищешь более менее интересные проекты или примеры по котлину.
https://github.com/search?l=Kotlin&q=org.springframework.boot.autoconfigure.SpringBootApplication&type=Code
Он никогда не работал прогером, он был сисадмином на хохлосайте и потом открыл свои курсы.
Ладно, я перетолстил. Он работал в тырпрайзе на jEE и древнем спринге еще без boot.
А вот ему обидно стало.
https://www.youtube.com/watch?v=GzWpNQHsMIA&feature=youtu.be&list=PLY8G5DMG6TiOBq7OWFPWF2Um3FRB5s2ke
https://youtu.be/9WEykChmcf0
Пилите на русском сами.
C# - 111 keywords
Kotlin - 72 keywords
Java - 50 keywords
Ну и кто тут ближе?
Я дурак...
Scala - 33
>Cobol - 300
Ебать. Нихуя бумерские языки для олдового тырпрайза были жесткие, а сейчас пиздюки даже джяву осилить не могут.
>Scala - 33
Уже размотали скакалку. Язык нигде не используется, кроме как в попильных конторах и команде мистера Обербского, который пилит гранты и считает деньки до выхода на пенсию.
>>1631257
Тут у вас какой-то обмудок посты трёт, так что пока его ссаными тряпками не выгоните, я ливаю (и вам рекомендую).
Двач превратился в форум нулевых, лол.
Ну толсто же.
Если смотреть по вакансиям, пока что надо.
Нужно уметь разбираться в джавовом API (например коллекции, работа с датой). Трудно сказать что кому нужно, я жабу трогал еще в 2009 и мало что там уже помню, просто имею большой бэкграунд разработки на разных языках и в котлин вкатывался без джавы вообще.
Котлин реально удобный.
И реально под себя.
Колбеки на максималках.
Начинать с джавы или идти смотреть курс от меил по котлину?
второе, жабкин синтаксис ненужон
Ну ну, ваши кроссплатформо-додики об этом вещают хуй знает сколько лет уже. Лет 20 пытаются идеальную залупу для шлёпанья кроссплатформы запилить, пока что самый лучший вариант — реакт натив с ъэловордами по 120 мб, кекс.
А на острове котлин есть корона?
Cейчас реально лучший вариант это flutter, до этого медленная js параша была, сейчас топ фреймворк с топ языком на ваще все ui платформы
А этот слоган хоть раз не обосрался ирл? Везде всё равно надо всё подпиливать напильником под каждую платформы, и везде всё одинаково убого выглядит (кроме как на линуксах, там вообще ебаный цирк с зоопарком и всё убого по умолчанию).
>>635749
Да нет, флаттер это хуитка уровня Qt — вроде как кросплатформа, и вроде как даже не такая уёбищно медленная как джава, но такая же ненативная и кривая, и под каждую платформу энивэй городить свою прослойку костылей. На выходе как всегда зоопарк из 3-4 технологий вместо 2-х на 2 платформы.
Реальное применение рн и флаттера — прототипирование. Можно посадить макаку-дизайнера выучить жс и пусть сам дрожит свои анимашки, кек. А заодно перестанет рисовать кучу картонной хуиты на каждый пук.
>с топ языком на ваще все ui платформы
>с топ языком
Вот тут орнул с жс-макакена
Я не знаю программирования(кроме турбопаскаля хаха).
Прогерство мне нужно для того чтобы стать очень богатым и счастливым.
Охуительные истории.
Есть куча компаний использующих рн в продакшене годами, причём как основную технологию для мобилок, расскажешь им про то что рн только для прототипирования. При этом там выигрыш по скорости разработки по сравнению с двумя отдельными приложениями минимум 50%.
За сишарперским столом твое место.
Нейтив, вроде, позволить писать сразу напрямую (вместо свифт/обжектив)? Нафига всякие Qt-flutter-костыли?
Если нюфаня, то пощупай сначала джаву.
Джава позволяет стать богатым, а котлин позволяет вытащить 30 сантиметровую фаллос из задницы и почувствовать себя человеком на современном языке.
Если хочешь го, то это та же 30 сантиметровая глыба в жопе, но еще с шипами.
> то пощупай сначала джаву.
Но мне ГО больше заходит, он красивее. Лаконичнее, что ли. Джвау боюсь.
Ну и что, что медленнее? Зато разрабатывать удобно. А люди купят телефон помощнее или будут подгрузку немного ждать.
Какой-то гаус-хуяус. Нахуй такие синтетические бенчмарки нужны?
Есть что-то на основе реальных приложений?
Он не только медленный, но еще и ненужный.
Бля, не туда
В дурке.
Конечно, ведь удобнее постоянно в одном потоке дрочить и строки в числа превращать (и на всякий случай еще раз, а то вдруг где-то там в строку маня функцией превратилось).
Если шипы в заднице не мешает, то проблем нет.
Но если уж есть говно, то я бы порекомендовал javascript, этот хотя бы действительно популярный.
Будут на вашем реакте 60fps?
На котлине работа сама находит тебя
>Есть куча компаний использующих рн в продакшене годами
Есть ещё хоть кто-то не слезший с него через год после старта?
>При этом там выигрыш по скорости разработки по сравнению с двумя отдельными приложениями минимум 50%.
Если ты пишешь приложуху для пиццерии с 2 экранами (на которых 2 списка картинка-текст) — то да, ахуенно забустит. Иначе на любом сложном экране это будет либо блевотина ебаная с 15 фпс, либо на половину нативный код для каждой платформы. Вот и нахуя это говно в прод тащить? Ты серьёзно считаешь, что какие нибудь airbnb обосрались на такой "оптимизации" рабочих процессов, а твой деревенский маня-стартап не обосрётся?
Единственное что там можно писать напрямую — это какой нибудь сервисный слой, и то при условии уже написанного бойлерплейта из абстракций с 3-х сторон, лол.
Хотя в больших прилагах, где целые отделы дрочат эти сервисные слои — это действительно может сэкономить кучу бабла (наверно).
>2 синтетических теста
>исходников нет
>нихуя нет
>но мы пилим кросплатформу!11
>она быстрее!11 верьти нам!11
>чел сравнил перформанс UIKit и SwiftUI (с кодом, где последний спамит объектами в память на каждой итерации, кек)
>но подписал как Свифт и обжс
>в обжс использовал обжсишный класс вместо аналогичного плюсового или сишных функций со статикдиспатчем
Дальше не смотрел, типичный бенчмарк уровня хохляцкого маркетолуха (очень релевантно ирл).
Можно дерагать api обжектива. На котлине сейчас уже можно писать UI под ios с помощью MPP.
Ну вот, а че анон говорил только сервисный слой.
По-моему посрать что там на нейтиве дергать.
Потому что тот анон (я) предлагал не менять рабочее шило на хуй пойми что, и говорил про возможный юзкейс где можно реально выиграть от использование к/н, а не заработать себе анальной боли.
Давай посчитаем плюсы и минусы твоего подхода:
+ Вроде как всё на одном языке
- Языки на самом деле разные, хоть и с одним синтаксисом
- Никаких shared библиотек между платформами кроме какого нибудь http/websocket клиента нет и не будет
- корутины в к/н в отличие от жвм версии работают только в 1 потоке
- ещё куча всяких заёбов унаследованных от жавы, вроде падений при изменении констант в рантами (кекус)
- или крашей при изменении любой переменной вне мэйн треда (лол, энджой юоур парсинг джейсон паузес 10 фпс)
- когда кто-то уйдет и потребуется замена — это на пол года минимум (хорошего свифтера за месяц можно спокойно найти, отсобеседовав десяток кандидатов)
- когда нужно будет заюзать какую-то нативную либу (IGListKit/Realm/etc) — пиздуй покрывать биндингами (и эти биндинги ещё тестами) всю либу
- когда нужно просто написать проект на каком нибудь Texture/ComponentKit — ты идёшь нахуй со своим котлином (см. пункт про многопоточность)
- проблемы с биндингами и версиями библиотек (привет из линукса, ц++ и 1995 года). Ну разве что если ты не работаешь в гугле и у вас там всё не лежит в ебаной монорепе.
Именно поэтому, глядь, анон и сказал что реально полезен этот к/н может быть разве что в сервисном слою.
Я не силен в этой нативной херне, но звучит больше так, что проблема больше свифта/обжектива, что он компилиться там в какую-то херню.
В там же в идеале должно только функции дергаться ну и какие-то там виртуальные функции поверх рантайма.
То есть, дерганье MyApi.yoba() должно быть одинаковым для всех?
Не пойму, почему нельзя в котлине дергать прям API обжектива напрямую, котлин тут скорее выступает тупо как транслятор как и с js (но там сложнее, там есть динамика).
>- корутины в к/н в отличие от жвм версии работают только в 1 потоке
Должен же местное дергать?
В общем, похер, думал просто котлин тут выступает как other_swift для обжектив-си
Откуда мы знаем что там тебя настапиздит.
Меня вот сначала копро и го понравился, а потом чет от го стало мерзко и противно. Все индивидуально, пока сам не попробуешь.
Вы, блядь, как докторскую собираетесь писать. Возьми язык да играйся с ним.
Зайдет не зайдет, похер вообще, главное фан.
Ну пожалуй сейчас самое, что можно использовать это moko-widgets.
В целом да, сейчас пока супер качественных средств для мультиплатформенного UI на котле нету, пока все ждут компоуз, который вроде как должен стать таким средством.
Но если UI на котле вынести за рамки и оставить его нативным (что является большим плюсом, для мобилок то точно), то все таки единая кодовая база даже только для одного сервисного слоя это большой плюс. Баги исправляются сразу под все платформы в одном месте, не надо привлекать двух разрабов на одинаковые задачи. В целом быстрее проекты делаются.
По поводу технических проблем, ну да, пока жизнь не сладкая, но с каждым релизом котлина становится лучше. С ABI вроде должны что-то решить, планируется свой удобный формат для mpp библиотек, планируется дорабатывать компилятор для KN.
Мультитредовые корутины должны появится уже в 1.3.71 (они уже готовы, должны были в 1.3.70 выкатить, но че то там накосячили с релизами).
Проблем с изменением переменных вне тредов нету, это такая безопасная модель памяти, чтобы в ноги из разных потоков себе не стрелять.
Нативные либы используются очень просто, никакие байдинги там ковырять не надо. Делается единый мультиплатформенный интерфейс, который реализуется на каждой платформе с использованием нативных либ. Со стороны ios можно как на KN сразу писать, либо прям на свифте сделать реализацию. Так сейчас почти все МПП либы и делают, интерфейс на котле, а реализации на нативных языках или KN.
Так что профиты свои есть и если правильно все приготовить, то будет больше плюсов, чем минусов. Всяко получше, чем флаттер-параша на мерзком дарте без перспектив.
>Я не силен в этой нативной херне, но звучит больше так, что проблема больше свифта/обжектива, что он компилиться там в какую-то херню.
В обыкновенные бинарныки он компилируется.
>В там же в идеале должно только функции дергаться ну и какие-то там виртуальные функции поверх рантайма.
Ну так пиши на C, с любым языком так и будет работать. Ну, только поебаться с размерами типов данных на разных компиляторах/плафтормах и временем жизни объектов.
>То есть, дерганье MyApi.yoba() должно быть одинаковым для всех?
Нет, не должно быть. От размеров данных, мемори менеджмента, фич языка и фич конкретного компилятора (как с плюсами) слишком дохуя зависит. Даже в выдроченных авторами вариантах (вроде swift-k/n) тебе всё равно придётся писать биндинги и заниматься прочим дрочерством, ловя баги на переходе из одного кода в другой. Даже эпл нормальные биндигни obj-c - swift не смогла написать, там типы постоянно конвертируются туда-сюда и получается лагучее говно.
> котлин тут скорее выступает тупо как транслятор
Вась, так он в машкод компилится, а не в обж-с, ты о чём нахуй? Ты хоть понимаешь, что
а) Трансляция в обж-с несёт больше ограничений и костылей для всех платформ где к/н вообще возможно будет работать, чем компиляция напрямую в машинный код?
б) У него уже куча таких костылей из жвм (вроде констант падающих в рантайме)?
>То есть, дерганье MyApi.yoba() должно быть одинаковым для всех?
И как вот это говно сделает твой код кроссплатформенным? Дёргая разные апи ты всё равно наплодишь платформозависимого кода.
А объективно, чисто как язык вне жвм, к/н сосёт у свифта, а про билбиотеки/коммунити/офф. саппорт можно и не говорить. Нахуя ухудшать себе условия работы?
Это те самые костыли из жвм торчат. Обратная совместимость есть обратна совместимость.
>В общем, похер, думал просто котлин тут выступает как other_swift для обжектив-си
Ты не джсер случаем?
>В целом да, сейчас пока супер качественных средств для мультиплатформенного UI на котле нету, пока все ждут компоуз, который вроде как должен стать таким средством.
Не станет. Ключевой поинт с которым я тут начал срать — то, что за 20 лет никому не удалось (от нокии в лучшие годы до оракла), то не удастся никому и сейчас.
>Баги исправляются сразу под все платформы в одном месте, не надо привлекать двух разрабов на одинаковые задачи.
Под какие задачи-то? Поправить строчки в кверибилдерах?
Хотя если там этих строчек пол ляма то я только за, кек.
>С ABI вроде должны что-то решить, планируется свой удобный формат для mpp библиотек, планируется дорабатывать компилятор для KN.
В плюсах уже лет так 30 делают этот ABI, кекус. Под всё и сразу его всё равно нельзя будет сделать, будет костыльная хуйня стоящая на куче компромиссов.
>Проблем с изменением переменных вне тредов нету, это такая безопасная модель памяти, чтобы в ноги из разных потоков себе не стрелять.
А выглядит как защита от макаки, которая в реальной жизни будет только мешать. Это же как ебаные эпловские глобал-стейе костыли, из-за которых всю работу с UI нужно делать на мэйн треде, нахуя так портить себе жизнь ради полутора джунов?
>Нативные либы используются очень просто, никакие байдинги там ковырять не надо.
>Делается единый мультиплатформенный интерфейс, который реализуется на каждой платформе с использованием нативных либ.
/0
Так это и есть биндинги, лол.
>Всяко получше, чем флаттер-параша на мерзком дарте без перспектив.
И в десяток раз меньше чем в нативной разработке. По факту это реальная замена каких нибудь плюсов в сервисных слоях (и кроссплатформенных либах вроде апишек всяких фаербейзов).
>Проблем с изменением переменных вне тредов нету, это такая безопасная модель памяти, чтобы в ноги из разных потоков себе не стрелять.
Ну вот опять же пример: есть на айоси Texture (ex AsyncDisplayKit), авторы которого подтирают говно за эплом, и помогают выносить всё что можно из мэин треда. Там чуть ли не 70% кода, обычно бегущего в главном потоке паралелится. Как что-то подобное использовать в связке с k/n если я хочу ебически сложные интерфейсы и 60фпс на говне мамонта?
Мультиплатформенный язык делал и делает, который полноценно в обещанный run everywhere так и не смог.
Не вижу проблем в связке с kn. Просто пишешь на свифте все свои многопоточные свистелки-перделки, а с общим кодом связь через один поток, а оно там на многопоточных корутинах все будет выполняться. Ну или просто не менять состояние kn объектов из других потоков и проблем не будет. Не представляю себе боль с многопоточным ui, в котором вьюшки из разных потоков взаимодействуют с логикой, там такого накуралесить можно.
Ораклу как раз таки насрать на кроссплатформенный десктоп.
javafx они выкинули, swing не развивают.
> javafx они выкинули
Java EE они тоже "выкинули", выходит, и на энтерпрайз ораклу насрать.
> swing не развивают
Он совершенен.
>Java EE они тоже "выкинули", выходит, и на энтерпрайз ораклу насрать.
А зачем им пердеть и развивать его, если все на пружине сидят? Теперь будут только в яву сахар вливать, а остальное коммьюнити пусть пилит.
Короче вот эти манямечты ран евривэа придумали сантехники в 90-ых, а не оракул. И все джавовские десктоп либы тоже их разработки, кроме swt.
> б) У него уже куча таких костылей из жвм (вроде констант падающих в рантайме)?
Что блядь за константы падающие в рантайме и причем здесь жвм?
Шпаргалка
https://play.kotlinlang.org/koans/Introduction/Hello, world!/Task.kt
>Что блядь за константы падающие в рантайме
Ну такие вот константы, работа с которыми не проверяется в компайлтайме. Я хз что это за хуйня, но свалить могу только на динамикомакаковую жвм.
С пружины уже тоже стараются слезть. Она стала слишком тяжёлой и с кучей side effects.
мы например от неё отказались
почему с Collections.sort() мы можем чисто лямбду кинуть (она конвертиться в компаратор), а вот с list.sortWith() уже нет, надо через анонимный класс?
https://pl.kotl.in/vFhnMZhtM
Как я сам понял, они не смогли реализовать SAM для котлина (работает только для джава) потому, что в отличие от джавы есть функциональные типы (в жабе только классы и интерфейсы) и, в общем, получается какой-то адок.
В какой-то степени вариант:
list.sortWith(Comparator { a, b -> a - b })
Мне даже нравится, он явный, иначе будет уже какой-то совсем ппц. Ты думаешь что функция лямбду принимает, а она там магически какой-то объект превращает).
Магия это всегда выстрел в ногу, явное лучше чем не явное. тьфу, пистон во рту застрял
Спринг был нужен только в былые времена, когда ЕЕ был убог и страшен.
Более менее современный ЕЕ делает его совершенно ненужным.
И сюда ваш спринг принесли. Фу. Прекращаем кушать монолиты, делаем модульный REST на ktor (или ему подобные решения)
> Прекращаем кушать монолиты
Поэтому все и переходят на спринг бут, чтобы на нём делать микросервисы с рестом.
Не только. У него ещё эмбеддед сервер из коробки, плюс тут принято всё со всеми зависимостями паковать в один жарник.
start.spring.io ведь изначально генерит помник со своим плагином, который всё это и делает. Не удивлюсь, если этот плагин и юзает под капотом jar plugin и dependency plugin.
Ну хуй его знает, я вот EE пытался учить, и он мне казался огромным, сложным и бесконечным, забил, легко вкатился в спринг.
Вот подумываю всё же нормально вкатиться в EE, но понятия не имею, как подступиться. Для поддержки легаси на работе наполовину осилил как-то сервлеты, EJB, JMS и JAXB и JSP, но и с ними очень заебался.
Зато это была последняя тру сановская джава.
Классика только с числами работает. И ещё не факт, что переполнение обработает нормально
Чтобы избежать переполнения можно:
a = a ^ b
b = a ^ b
a = a ^ b
Но всё равно только с целыми числами работает
Меня один раз так затроллили. Недо было поменять местами две колонки в двумерном массиве инт.
Я с ^= сделал, а мне подсунули на ввод одну и ту же колонку местами поменять и этой операцией я всю колонку в 0 превратил, ведь на само себя ноль дает.
Ты сам себя затроллил неправильно написав, потому что здесь что при равных значениях а и б ксорятся на ноль, а не на себя.
Не надо ничего вводить, при а = б будет
a = a ^ b = a ^ a = 0
b = a ^ b = 0 ^ b = b
a = a ^ b = 0 ^ b = b = a
> Но всё равно только с целыми числами работает
Теоретически, похуй, какие биты переставлять, пусть это хоть структура. Вот только высокоуровневые языки начинают выёбываться.
Да. Разве это плохо?
Котлин не компилируется в джаву. Можно даже назвать его другим языком, просто интероп с джавой делает его как тайпскрип для джаваскрипт.
Что в принципе хорошо, я бы не рекомендовал и на чистом javascript писать тоже.
>Котлин не компилируется в джаву
Ну в жабобайтоёбство компилируется какая разница - один хер на жава-машине выполняется.
K/N еще нон сириус бизнес продакшн реди.
> Ну в жабобайтоёбство компилируется какая разница - один хер на жава-машине выполняется.
Ну охуеть теперь, тогда сишка - это фреймворк для паскаля, всё равно в один код компилируется.
Знаю я ваш прод. Все чему меньше 10 лет - экспериментальная технолохия и туда не попадает
С каких пор JVM что-то плохое. Любой язык тащит за собой толстый рантайм. Со многих инженерных позиций, VM является техническим преимуществом, но с точки зрения прикладного разработчика без разницы, что там у него под боком - VM, интерпретатор, рантайм.
И только лишь для великовозрастных дебилов, с синдромом затянувшегося юношеского максимализма, очень важно что там у него под боком, не понимая, что такие удобство как исключения или JIT со спекулятивной оптимизацией это заслуги именно VM иди пиздуй ручками ошибки обрабатывай, глупый гофер, который не смог в жабу.
Разница большая - в проце транзисторы, в жаба машине - программная имитация процессора, причем стекового.
>С каких пор JVM что-то плохое.
С тех пор как вышел майнкрафт фор виндовс 10 все поняли какое же ЖАБАГОВНО жрали все эти годы. Когда графа уровня ПС1 требует топмашину и 8+ гигов оперативы.
Жаба - 32ГБ минималочка хелллоуворлда.
Ведроид - почувтсвуй себя яблочником с устаревшим айфоном с топовой моделью
Ебать ты жирный.
> майнкрафт
Ну напиши на js, python, php, ruby или ещё каком-нибудь не предназначенном для гейдева языке, будет то же самое.
> ведроид
Айфонов всего штук 5. А андроида - десятки тысяч за разные цены и от разных производителей. Попробуй всё это в одном приложении учесть.
Я писал парсер SQL файла на сях, который кушал ~ 80гигов.
Спустя 5 лет заставили переписать этот парсер на джаву с лимитом 8 гигов.
Забавно, да?
Мог бы и гиг уместить, но винт жалко.
>Я писал парсер SQL файла на сях, который кушал ~ 80гигов.
Писос, для сей есть флекс и бизон. Там вообще что ли лаба1 уровня if 1 then if 2 then if 3 then у тебя была?
Юношеский максимализм как есть.
Коротин.
https://habr.com/ru/post/493448/ Спринганутым
https://habr.com/ru/post/494098/ KTor и R2DBC
У Netty есть готовый HTTP сервер. Это конечно не спринг - когда пара аннотаций и у тебя и парсинг запроса и авторизация и логгирование и тразакции.
Да там больше кода, но это твой код, ты его видишь кто кого вызывает, что там под капотом. У тебя нет вопросов когда соединение будет возвращено в connection pool я сталкивался с проблемой когда в connection pool не возращаются соединения и новые запросы тупо встают раком. Если сервер возвращает 401 на валидный запрос - ты знаешь где у тебя авторизация происходит. Классы напрямую вызывает друг друга, а нее магически через кишочки спринга.
>Да там больше кода, но это твой код
Это самое страшное. Сервера уже отлажены и научены и причем тут спринг? Есть тонна годных решений, где у тебя вся бизнес-логика твоя,
и все у тебя пол контролем классические фреймворки с middleware подходом Я уверен что в нетти надо ручками за чанками следить, так же следить за пулом. А обосрешься где, узнаешь только через пол года, от анона которому не лень будет письмо написать у меня так было, полгода проект для определенных новичков частично не работал и не логировал, потому что был молод и глуп и думал что я могу писать более быстрый и качественный код.
Лучше kotlinlang.org/docs почитай
Ведь, если звезды зажигают —
значит — это кому-нибудь нужно?
Значит — кто-то хочет, чтобы они были?
Значит — кто-то называет эти плевочки жемчужиной?
Что это?
Оттуда так и "не перезвонили", хотя вступительный собес прошёл норм. Читал инфу, что HR там просто так обрабатывают кандидатов, чтобы набить себе KPI. Ещё варианты?
Там у них слака есть и там вроде даже есть разрабы, ныряй туда
https://kotlinlang.org/community/#kotlin-online-resources
Библиотека (у меня репозитарий уровнем выше проекта):
https://pastebin.com/HuczZpVs
Просто пример подключения уже в каком-то своем приложении:
https://pastebin.com/fBUpu9uu
За деньги не бери, если перекот из жавы, то слишком много воды и размазывание простых вещей. Пара глав годные, чтобы понять как писать полу ФП.
Не совсем подходит к "желательно ремоут и на за бугор", но как вариант принимается. Всё, что я слышал о Сбере - неплохие з/п, куча бюрократии - просто ТОННЫ её, так себе железо и вообще работать на любой из банков так себе затея. Всё правильно говорят? Вообще типо у меня ~ B1 (B2 листенинг, ридинг и врайтинг + A2-B1 толкинг) уровень инглиша и 2г стажа работы в общей сложности. Я понимаю, что это типо meeehh такое себе, нужно ещё обождать годик и подтянуть спикинг до B2 хотя бы, чтобы врываться в зарубежный щит или аутсос какой-нибудь, но бля... Хочется этот годик именно в таких условиях и провести, чтобы ин-плейс качался инглиш, была практика общения, плюс параллельно рос стаж и всё такое. Где блять такое искать?! Ну не хочу я сидеть в ёбаном душном офисе и ждать ёбаный год с хуем, чтобы потом начать действовать. Какой в этом смысл? Плюс у нас в команде всем похуй на инг, никто его толком не знает (фулл бумеры максимум B1 ридинг с переводчиком), работаем на внутренний рынок. Получается, что одно из моих преимуществ тупо простаивает и не прокачивается, т.к. свободного времени мало, да и хули толку учить слова и выражения, если потом попиздеть не с кем на ингле. Поэтому я сейчас хочу вкатиться хотя бы в околоанглоязычную среду, пусть даже за меньший прайс, поебать вообще. Но я хочу здесь и сейчас! нет, говна на палочке не хочу Но на хх прям динамо полное, никому нахуй не всрался недомидл :/
> Сбер
> неплохие з/п
Да.
> куча бюрократии
Это влияет максимум на сроки, ибо просто создаёшь на специальном портале заявку и ждёшь. Но нужно это сравнительно редко, да и никто тут никуда не торопится.
> так себе железо
Как повезёт. Мне дали ноут с i7, 32 оперативы и SSD На 250 гигов. Но я слышал и о тех, кому давали с древним i3 двумя гигами.
Посмотрел на их ваки, выглядит посолиднее, чем то, где я работаю сейчас. Плюс вроде как есть изучение инглиша в офисе. Возможно, стоит попробовать.
>>661366
Вот честно, работаю сейчас удалённо ~месяц в связи с понятно чем, не испытваю ни малейшего дискомфорта. Обращаюсь за помощью к коллегам в разы реже, чем в офисе, потому что ВНЕЗАПНО появилась бОльшая ответственность, меньшее кол-во отвлекающих факторов и т.д. Я просто сажусь и ебошу, разбираюсь в архитектуре сервиса, как он взаимодействует с другими и всё такое. В офисе, обычно, я пытался решать таски "в лоб" и побыстрее. Прочитал, понял суть, потом тут отвлекли, тут позвали на чаёк, тут кароч позвонили на телефон, в итоге уже 5 вечера, а я пообещал ПМу, что завтра будет готово. И ты такой спрашиваешь какого-неть суньёра или своего TL -- слууух, а я правильно понимаю, что вот тут "так и так, и потом нужно сделать вот так? и должно получиться вот это?" и далее следует одобрение и/или подсказки. На удалёнке же появляется время именно разобраться с тем как это РЕАЛЬНО работает, поиграться с реализацией, проявить проектировочные скиллы какие-то свои. Кароч хз, сумбурно описал, но мне на удалёнке норм. Тут я реально ощутил рост, скажем так. Я тут ещё и сроки стал ставить гораздо более реалистичные, чем в офисе. Вотъ.
Это я к тому, что... блин, ну не везде же нужны онли сеньёры на ремоут?! Я убеждён, что как бы всегда есть таски, которые "неплохо бы отдать вот этому новобранцу, пусть поучится/разберётся, пока мы занимаемся делами поважнее", не? Это, конечно же, уже не задачки уровня (изменить size с 10 на 1000 или добавить в аннотацию X - name = "jopa"), но как бы и ок, я люблю пожоще!
Ну и да, удалёнка не с пустого места возникла. Я просто живу в ебенях и каждый день по 30км то в одну сторону на работу, то в другую наворачиваю. Заебало пиздец просто. Времени на саморазвитие 0 или около того. А снимать хату дорого, мне мамке ещё приходится помогать финансово.
>>661422
Уговорили, попробую Сбер .
> вроде как есть изучение инглиша в офисе
Я не сильно этим интересовался, но там не всё так просто. Курсы есть, но слышал, что бесплатные они только после года работы.
Честно, мне достаточно, что они там просто есть. Я готов вкладывать в своё будущее монету, даже если эта монета будет разницей между з/п на моей текущей работе и будущей. Просто, как я уже описал выше, сейчас только в выходные есть время, которое, конечно же, не хочется полностью тратить на инг. А если сразу после работки на часок залетаешь в соседний кабинет и вот уже "Helou zere! Haw ar u tudei?" то эт совсем другое дело! Ну и вообще я планирую на след. месте не меньше 2-х лет проработать, т.к. надоело уже скакать так часто. 2 года - 3 работы (3м, 8м, 1г).
)))
Я тут радуюсь, что лямбдах теперь не надо в конце рисовать "});", а тут вообще адок со скобками, тире, квадратными скобками и амперсантом. И это только хеллоу-ворд
Такое может нравится только таким типам людей, которые просто по дефолту хотят казаться "не такими как все". Вопроса удобства в этом синтаксисе нет.
В 2020 такой синтаксис абсурден. Может, 60 лет назад и имело смысл экономить на грамматике языка (ниже требований к кодировкам, парсер занимает меньше места), но сейчас, в эпоху эмодзи в исходниках, толку от этого 0.
Тут кусок лиспа, который умудряется высрать "половину" символов с клавиатуры, всего в трех строчках. При этом, я уже вижу, что это не предел безумия со скобками. Понятно, что практического смысла это имеет мало и те кому это нравится, скорее вызывают ощущения асоциальности.
К счастью, современное программирование, это не экскременты одного супер-гения (коим продолжает кормить фольклор в кино и сериалах), программирование это продукт совместной работы многих программистов. И очень важно чтобы вы писали такой код, который смогли бы понять сами.
>в эпоху эмодзи в исходниках
Мы будем вспоминать хипстеров, которые уже канули в Лету и будем бугуртить с ниххотя можно еще увидеть задержку в развитие у некоторых и, например, встретить даже эмо. Есть слой профессиональных вменяемых разработчиков, которые даже твиттера не имеют. и им некуда срать свое мнение. И этим людям нужен просто удобный инструмент. То что тебя удивляет поддержка юникода в сорцах, это печально. хотя нахрена добавили смайлы в юникод, тоже отдельный вопрос, но я видел чисто ру-язычный проект, где тесты писали по русски и это лучше чем читать плохой английский.
>хотя можно еще увидеть задержку в развитие у некоторых и, например, встретить даже эмо
Они просто ОЛДЫ и ностальгируют по тому времени, когда они на сэкономленные деньги мамки ездили к своей любимой эмочке за 1000 км
На темных улиц лабиринт.
Там, где родится вновь рассвет,
Сейчас лишь фонари машин.
Вода струится по стеклу,
Теряясь где-то в темноте.
И свет холодных фонарей
Мне вновь напомнит о тебе.
Засыпают фонари, вспомни обо мне,
В твоем сне я приду к тебе,
Извне, наравне, на дне, не выдержишь
Последнего поцелуя, сдувая с щек слезы,
Ревнуя, почему ты, почему я...
В моей пропасти не произнести слово
Прости, нет злости, прощаю глупости.
В метро так тепло, почему оно?
Почему не ты??
Я роняю лепестки!
Дай же мне напиться тобой,
Чтоб столкнуть потоки,
Дай же сделать хоть глоток,
И увянуть навсегда,
Муки равнодушия, так жестоки!
В моей голове много мыслей и тебе,
Не понять, не подойти, не обнять,
Опять один, среди льдин, солнца свет,
Не поможет, нет, я храню обет молчания,
Твои обещания, так легко не сдержать,
Отчаяния...почему ты...почему я...
В моем городе нет ни света, ни тепла,
Наши тела разбросаны по полюсам,
Знаю сам наперед, что произойдет,
Проломится лед и я провалюсь,
Надеюсь, что ты забудешь про меня,
С этого дня меня не существует,
Ветер дует в моем поле нету боли,
Я на воле!
К замерзшему солнцу
Вниз
К осколкам разбитой
Судьбы
От нее не уйдешь
Даже если умрешь
Даже если разрушишь мосты
Ночь мы уснем, и даже дождь не разбудит
Прочь мы вдвоем уйдем, нас больше не будет
Я Донор и мне остается лишь петь
Я донор иллюзий, я хочу умереть
Нажми на курок, убей наши тела
Мы все равно останемся здесь, у нас дела
Для IDE тоже, но ниче, сидим, пыхтим, в блокноте на пару гигабайт.
То есть, я хочу отправлять запросы через котлин. Как это осуществляется?
Возможно. На клиенте взять либу, например, Retrofit, а на сервере должно быть API. У того же ВК есть VK API.
Не обязательно нужно API, можно пойти по пути какого-нибудь Selenium и не зависеть от всякого API.
Вообще, да, тупо грузить страницы, заполнять формы и отсылать их, а содержимое страниц парсить.
Интересно, много ли мобильных апок так делает?
Пипец конечно, ни в одном уважающем себя приложении этой строчки сверху нет, в андроид студии она не отображается, но стоит запустить приложение, и тадам, какая-то хрень сверху экрана.
Был же тут отдельный загон для андрочников, откуда вы свалились?
Котлин как ЯП для Android. Никто же не пишет на голых ЯПах в 2020м. Какие-нибудь фрейморвки используете для приложуха.apk?
ты имел в виду, что только Java для ведройда? А хуй там, Java тоже не конечный ЯП для системы
Мальчик, если тебя это смешит, то почему не смешно, когда говорят про ЯП C#/C это ведь тоже в итоге ассемблер
Kotlin бэкенд?) А энтон гугол гыварит, что это теперь 146% native android platform for work and entertaiment
До котла андроид был 146% Java, но это не мешало джаве жить в бекенде.
Врёти
Почему вообще нельзя было сделать допустим int a и const int a? Зачем каждый раз писать это блядское var? var a: Integer
У меня иногда ощущение, что некоторые языки делают хуёвый синтаксис просто что бы не сказали, что они похожи на C++/C#.
Вот тот же Go, где функции задом наперёд пишут.
> намудрили
В целом, заметно, что котлин в силу синтаксических фишечек несколько сложнее джавы.
> this
> super
Это и в джаве есть.
> init
Тоже джава, но с кейвордом читается лучше, чем незаметные фигурные скобки посреди класса.
> val/var
> int a и const int a
Предполагается, что ты будешь в основном юзать вывод типов, и достаточно указать, что у тебя переменная или константа.
> var a: Integer
> функции задом наперёд пишут
Говорят, что это должно влиять на мышление - сначала думаешь, какую именно сущность ты хочешь объявить и для чего, и уж только потом её тип. Но хуита это всё, тоже думаю, что языкоделы считают C++ абсолютным злом и пытаются делать как угодно, лишь бы не как в плюсах.
> Почему вообще нельзя было сделать допустим int a и const int a? Зачем каждый раз писать это блядское var? var a: Integer
Чтобы явно не указывать тип переменной, потому что компилятор сам может выводить типы. А чтобы было понятно, какая переменная объявляется, используют var и val.
>> var a: Integer
>> функции задом наперёд пишут
>Говорят, что это должно влиять на мышление
Да просто криптопаскалисты
> Как можно принудительно ограничить жор машины хотя бы до 300мб?
При запуске приложения укажи ключ -Xmx300m джаве
если я вызову setCurrentResolver в рантайме, этот класс поменяет поведение?
Нет, делегат сохраняется в поле класса при его инициализации и дальше не меняется все время жизни экземпляра класса.
Просто не используй и юзай либы джавы. Придётся в начале почти каждого файла писать import java.lang.*
Тащит, да. Некоторые классы ему нужны прям на уровне языка. Например, функция main обязательно принимает котлиновский Array<String>. А за ними и весь рантайм тащится.
А чем тебя рантайм не устраивает?
Ты делаешь свою библиотеку и не хочешь лишних зависимостей?
Интероп заключается в том, что можно юзать жабьи либы в котлиновском коде и наоборот, и с этим проблем нет. Но это не значит, что можно выкинуть стандартную либу, котлин - это не просто сахаорк поверх джавы, а отдельный язык.
Array<String> в котлине не существует в рантайме как настоящий класс, вместо него во время исполнения используется джавовский массив.
Но ты прав в том, что определенные конструкции языка требуют во время исполнения поддержки из рантайма, например, неявные проверки на налл, фукнциональне типы, делегаты и ссылки на методы/свойства.
> можно юзать жабьи либы в котлиновском коде и наоборот, и с этим проблем нет
Так с этим тогда и в скале проблем нет. Уж точно не сложнее, чем запускать котлиновские корутины в жаве.
>>674086
> А чем тебя рантайм не устраивает?
> Ты делаешь свою библиотеку и не хочешь лишних зависимостей?
Да, хочется получить типа-джавовую-библиотеку, и не хлебнуть потом говна когда кто-то заюзает её в котлине и получить эксепшен из-за бинарной несовместимости разных версий kotlin-stdlib.
так и есть.
> Да, хочется получить типа-джавовую-библиотеку, и не хлебнуть потом говна когда кто-то заюзает её в котлине и получить эксепшен из-за бинарной несовместимости разных версий kotlin-stdlib.
Это маловероятно, в котлине за этим следят. Вон okhttp например перешел в 4-й версии с джавы на котлин, и не парится по поводу зависимости на stdlib совершенно.
Но если это тебя так заботит, можешь всегда слить свою библиотеку с kotlin-stdlib и обработать прогардом, чтобы все лишнее выкинул. Только обязательно сделай релокацию пакетов kotlin, иначе тогда тебя точно котлин-пользователи на вилы поднимут.
сделал гуй для сревера: поля для порта и других настроек + кнопки старт/стоп
Сейчас понял, что сервер ktor, который я решил использовать, хуй заставишь стартовать не сразу, а в рантайме по нажатию кнопки.
Пока вижу выход: делать два jar файла - для гуя и для собственно сервера, гуй будет запускать jar-ку сервера.
Как это провернуть мавеном?
Нужно сделать два независимых модуля, или один в другом? сори если ебланский впорос
Разве ktor стартует не как embedded?
Если нет, то возьми embedded, не ктором единым сыт джава/котлин мир
>Почему в Kotline так всрато намудрили с конструкторами? Со всеми этими base this super init. И с переменными типа val/var?
Меньше бойлерплейта, когда поля тоже самое что аргументы.
Станет понятно с опытом. В дарте вроде наглядно и проще, просто видимо вдохновлялись скалой, а в скале ппц нафантазировали.
>Почему вообще нельзя было сделать допустим int a и const int a? Зачем каждый раз писать это блядское var? var a: Integer
Очевидно - короче, когда кодишь полжизни, начинает выбешивать бойлерплейт. Лучше вопрос - почему не let.
>У меня иногда ощущение, что некоторые языки делают хуёвый синтаксис просто что бы не сказали, что они похожи на C++/C#.
Многие языки, по ощущениям, писали больные на голову люди. Но тебе нужен удобный инструмент, или шашечка?
>Вот тот же Go
Есть мнение, что это язык внутренней кухни, который вытащили наружу, чтобы за счет легиона халявы опенсорса отдебажить этот кусок говна.
Есть мнение, что гугл не умеет в языки и даже в библиотеки.
Может за тебя еще и покакать?
Если на собесе по котлину спрашивают про жабу (а не jvm), то тикай оттуда.
На андройде еще сложнее удаленку найти, чем в вебе. Ты о чем?
Мне бы в pdf
Nothing не для этого нужен. Когда тебе ничего не хочется возвращать - не возвращай, будет Unit aka void. Nothing используется, чтобы указать, что функция никогда не завершится, т.е. не дойдёт до '}'.
Какое наилучшее дизайн-решение с использованием этого вашего котлина? Что у вас есть: корутины, асинхронщина, какой-нибудь быстрый HTTP-клиент на ультралегких файберах?
Хочу вкатиться в язык на какой-нибудь конкретной задаче, посоветуйте, в какую сторону смотреть.
Да потому что нихуя толку нет от этого вашего Котлина! Ахуенный язык, и хули?! Нет работы на нём. НЕТУ, СУКИ! Вы суки подсадили меня на Котлин, а я теперь не могу смотреть на другие языки, все они не такие как надо, а вот Котлин норм. Я хочу писать целыми днями на нём, ХОЧУ ЧИТАТЬ КНИЖКИ ПО НЕМУ, ХОЧУ ПАРСИТЬ САЙТЫ НА НЁМ, ХОЧУ ПИСАТЬ БОТОВ НА НЁМ, ХОЧУ... а работы НЕТУ, СУКИ, НЕТУ !!!!!!!!! Везде здравствуйте мы ознакомились с вашим резюме, скажите, вы на Джяве будете писать? Видим у вас ещё есть опыт С++ и Питона, может быть на них? Нет, к сожалению вакансий на Котлин у нас нет, всего доброго. СУКИ ВЫ ВСЕ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Оп, не переживай. Еще найдешь работу. Ты ж говорил, что энтерпрайз начали переписывать на него? Неужели нет вакансий?
Это тебе проклятье, за то что джаву коболом обозвал.
Че, котлин этот твой не может, да? Слабо?
Ну бери Ktor и на корутинах отправляй свои реквесты.
>До сих пор #1 тред. А ведь это было нес месяцев назад.
Проблема не в котлине, а в том в /pr большая часть народа это вкатывальщики и они, конечно, трутся в тредах топ языков. А другая половина это динозавры с форумов по программированию, тех же топ языков, потому что другого и не знают (и не хотят знать).
То есть, сам раздел /pr слишком дохлый для таких языков. исключение было с го, но там просто зеленые развлекались как могли, тред был полностью из лулзов
>>697924
Мимо ОП, лучше вялый тред, чем оффтоп и троллинг на весь тред превращение во флуд-чатик с говнометанием об вентилятор
И да, у нас все хорошо, полностью на котлине, даже дома. Язык реально удобный и после него говна кушать не хочется.
Мне на котлине нравится писать, а вот собирать контент от ваннаби программистов, оказалось скучно, это же не питон или js, где каждый час срут подкастами и вблогами. ну и да, весь ваннаби контент все еще производят в рамках мобильной разработки
Еще чучуть и перекатим, не тужьтесь сильно
Удобный то может и удобный, ты что делать прикажешь? Где мне работу на нём найти? Я не могу теперь смотреть на другие ЯП после него. Мне недавно хрюша сказала, что за 3г её работы не было ни одной ваки на котле для бэка. Агенство популярное, все слышали его название, сотрудничает с зарубежкой и нашими 50/50. ПлюсЫ да, жава да, шарп да, пайтон да, жс да, го да, руби да, котлин - ондроид онли и то с обязательным знанием жавы. Ховно этот ваш котлин, манятна?! Не нужно было пробовать эту наркоту, теперь не слезть...
Можешь пойти еще в скала треде поплакать.
HTTP клиент и механизм конкуррентности это разные вещи. Можешь хоть через HttpUrlConnection.
Я бы использовал OkHttp и корутины с семафором для контроля уровня параллелизации.
https://www.raywenderlich.com/6754-a-comparison-of-swift-and-kotlin-languages
Ты конъюнктурщик. Язык нужно выбрать для души и на годы вперед.
А ЖИТЬ КАК ПРИКАЖЕШЬ? Я С ГОЛОДУ ПОДЫХАЮ С ТВОИМ КОТЛИНОМ! НИКТО НЕ БЕРЁТ НА РАБОТУ ЗДРАВСТВУЙТЕ А ВЫ МОЖЕТЕ ЛУЧШЕ НА ДЖАВЕ ПИСАТЬ А ТО У НАС КОТЛИНА НЕТ НА БЭКЕ. HELLO SORRY WE ARE USING JAVA 14 ON THE PROJECT PLZ POSHEL NAHUI WITH KOTLIN !!!
> Язык нужно выбрать для души и на годы вперед.
Ну правильно. Ведь престарелая мать всегда сварит нажористого борщеца!
ну от этого будет зависеть моя зп и карьерный рост, естественно мне это интересно, я ведь смогу в итоге взять на себя и андроид и iOS разработку
и да, для души у меня есть огромный мир JS
Не особо похожи, на самом деле. Разве что синтаксически схожие места есть, а так в целом совсем разные языки, разные модели памяти. Сам пишу под андроид, но у нас в компании начинают все перекатывать на Kotlin Multiplatform. Потому самому иногда приходится и на свифте немного писать.
>у нас в компании начинают все перекатывать на Kotlin Multiplatform
И как она тебе? Норм уже?
Да вроде норм, в проде несколько проектов, полет нормальный. Очень удобно получается переиспользовать код. Для разработки под андроид кардинально ничего не меняется, все тоже самое, все привычно. Разве что многопоточных корутин нету в модуле с общим кодом, но это в 1.4 точно исправят. А вот айосникам страдать приходится, gradle осилить не могут, котлин учить надо и т.д.
>HELLO SORRY WE ARE USING JAVA 14 ON THE PROJECT P
Это же зорошо, они даже не на LTS'ках, а обновляются каждые полгода.
Ничего хорошего. Я не могу смотреть на жавку после котлина, уж слишком он хорош!
Чем хорош котлин - так это тем, что можно уже сейчас, сидя на джаве 8 без возможности её выкинуть, юзать сахарочек.
Но не в новых проектах.
У меня, конечно, есть подозрение что ты зеленый тролль. И я не эксперт по поиску работы на котлин, но в чем собственно проблема? Если вакансия котлина в связке джавы и работатель хочет чтобы ты знал джаву, то вероятно, там уже пишут все на котлине, просто остался легаси джавы или нужно просто разбираться в этом стеке, ибо если ты знаешь котлин без джавы, велик шанс получить андроид-разработчика у которого в голове совсем другие знания.
Немножко пропукаюсь...
Я реально раньше джаву уважал за свою консервативность, особенно когда сидел еще на пхп, а там умудрялись по молодежному высирать версию за версией как же было трудно перекатить проект даже с 5.2 версии на 5.3, а теперь я смотрю на это все и офигиваю.
Братушка, я бы очень хотел быть зеленью, но "зелёненький" я разве что по кол-ву опыта в разработке. Этот анон >>657311 - я. Проблема заключается в несостыковке с моими желаниями, а именно - работа на удалёночке. Java - это вонючий ентерпрайз и ремонтную работу тут хуй найдёшь. Но так уж получилось, что меня взяли сюда ещё будучи сопляком, причём основной язык у нас именно Kotlin, а не Java. Я за всё время, что прогаю (вообще, а не комм. опыт), испробовал достаточное количество языков, чтобы с уверенностью сказать, что Kotlin мне понравился больше всех. Было дело писал на шарпе в 2к17 и, помнится, похожее говорил про него тогда. Но я реально устал метаться туда-сюда и хвататься за новые яп и их фреймворки. Я не хочу юзать Python или Java лишь потому, что у них самый большой кусок рынка. Я хочу писать код и получать от этого удовольствие. Но вот незадача, спустя полтора месяца активного (!) поиска работы и хождения по собесам 2-3 раза в неделю, у меня до сих пор 0 предложений. Причина #1 - большинство вакансий предполагает работу именно на Java, про Kotlin говорят одно и то же нинужон, поэтому тут просто тренировка прохождения собесов, не более. Причина #2 - большинство вакансий это всё же ведроид, 90% моего опыта тут мимо. Причина #3 - по тем немногочисленным вакансиям, которые подходят, либо игнор, либо "извините, недостаточно опыта". Причина #4 - мб я просто ничегонезнающий хуй, и поэтому меня все динамят, но я с этим не согласен и готов спорить. И чего теперь делать я вообще не понимаю. То ли начинать активно осваивать андроид и вкатываться туда, раз весь котлин там... При этом сразу 2.5г опыта оказываются на помойке, и хоть я и считаю, что приобрёл очень хорошие фундаментальные знания в бэке, хрюше и TL с ехидной улыбкой на лице на это похуй, а за 40k я снова вкатываться не собираюсь. То ли сидеть и ждать хуй пойми чего - когда котлин взлетит до небес, а я тут как тут. Но что делать сейчас тогда?! Команда у нас разваливается и все активно ищут работу... и вроде я тоже могу найти спокойно... НО БЛЯТЬ НЕ НА ЁБАНОМ КОТЛИНЕ КОТОРЫЙ Я ЛЮБЛЮ БОЛЬШЕ СВОЕЙ ЖИЗНИ ГОСПОДИ ЗА ЧТО !!!!!!!!11
Братушка, я бы очень хотел быть зеленью, но "зелёненький" я разве что по кол-ву опыта в разработке. Этот анон >>657311 - я. Проблема заключается в несостыковке с моими желаниями, а именно - работа на удалёночке. Java - это вонючий ентерпрайз и ремонтную работу тут хуй найдёшь. Но так уж получилось, что меня взяли сюда ещё будучи сопляком, причём основной язык у нас именно Kotlin, а не Java. Я за всё время, что прогаю (вообще, а не комм. опыт), испробовал достаточное количество языков, чтобы с уверенностью сказать, что Kotlin мне понравился больше всех. Было дело писал на шарпе в 2к17 и, помнится, похожее говорил про него тогда. Но я реально устал метаться туда-сюда и хвататься за новые яп и их фреймворки. Я не хочу юзать Python или Java лишь потому, что у них самый большой кусок рынка. Я хочу писать код и получать от этого удовольствие. Но вот незадача, спустя полтора месяца активного (!) поиска работы и хождения по собесам 2-3 раза в неделю, у меня до сих пор 0 предложений. Причина #1 - большинство вакансий предполагает работу именно на Java, про Kotlin говорят одно и то же нинужон, поэтому тут просто тренировка прохождения собесов, не более. Причина #2 - большинство вакансий это всё же ведроид, 90% моего опыта тут мимо. Причина #3 - по тем немногочисленным вакансиям, которые подходят, либо игнор, либо "извините, недостаточно опыта". Причина #4 - мб я просто ничегонезнающий хуй, и поэтому меня все динамят, но я с этим не согласен и готов спорить. И чего теперь делать я вообще не понимаю. То ли начинать активно осваивать андроид и вкатываться туда, раз весь котлин там... При этом сразу 2.5г опыта оказываются на помойке, и хоть я и считаю, что приобрёл очень хорошие фундаментальные знания в бэке, хрюше и TL с ехидной улыбкой на лице на это похуй, а за 40k я снова вкатываться не собираюсь. То ли сидеть и ждать хуй пойми чего - когда котлин взлетит до небес, а я тут как тут. Но что делать сейчас тогда?! Команда у нас разваливается и все активно ищут работу... и вроде я тоже могу найти спокойно... НО БЛЯТЬ НЕ НА ЁБАНОМ КОТЛИНЕ КОТОРЫЙ Я ЛЮБЛЮ БОЛЬШЕ СВОЕЙ ЖИЗНИ ГОСПОДИ ЗА ЧТО !!!!!!!!11
> большинство вакансий это всё же ведроид
так это на котлине работу не найти или просто все вакансии для андроид разрабов?
>2.5г опыта оказываются на помойке
какого опыта, мань, ты кто блять software ingenier или примадонна, которой должны предоставить стек технологий, устраивающий нашу звезду? все эти языки- всего лишь инструмент, а ты тут вой поднял как будто фашисты твою хату сожгли
>engineer
Изначально звучало лучше. Это как пометка на полях "дальше не читай, я тут чисто просраться после универа зашел"
Начались маневры, там у тебя и не немецкий.
А ты француз??
все просто, тут нет быдла- веб макак и прочих олимпиадников с горящими глазами и призванием. а это именно они генерируют 99.9% постов в /pr
двачую. тут только сениоры с 15 опытом коммерческой разработки. лучший тред всея доски, если хочешь серьёзно попиздеть по теме
>>703591
На котлине настолько приятно работать, что хочется больше писать код, чем чесать языком. Если на каком-нибудь хаскле или расте или го, удобнее с пеной у рта защищать язык, чем на этом что-то долго писать, то котлин это как знакомство с ангелом, простое умиротворение. Даже погадить в треде не хочется.
Это не взаимозаменяемые языки. Даже если кто-то попытается юзать твой свифт в андроиде или тырпрайзе, он сразу столкнётся с отсутствием инфраструктуры.
Котлин - это не "ответ свифту", это в первую очередь ответ джаве. Соответственно, синтаксис сравнивается с джавой, а не с чем-то другим.
Но ведь это тред про язык, а не экосистему. Я просто хотел напомнить, что вы тут восхваляетесь номером два!
Есть спринг, есть джава ее. Было бы желание.
Это был какой-то зеленый. Котлин, по сути, та же джава. Проблем внедрить язык нет, а вот улучшить условия труда - да (потому что голая жаба, это невыносимый кусок говна - это тупо дрына, которой махать и махать. А вот котлин уже какая-нибудь рапира, легкая, удобная, с сотней вариантов тактик и подходов)
Это свершилось, перекатываемся, господа.
>>1705096 (OP)
>>1705096 (OP)
>>1705096 (OP)
>>1705096 (OP)
Это копия, сохраненная 30 сентября 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.