Вы видите копию треда, сохраненную 1 января 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
>Что имеем:
У нас есть синтаксический сахар поверх джавы, немного ФП (удобные лямбды), корутины с асинхронщинной, 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). Джаву никто и ничто не заменит в ближайшие 10-15 лет, у этого языка чрезвычайно огромный капитал написанного кода, поэтому переживать за неё не стоит. В любом случае конкуренция это хорошо, джава стала развиваться (попутно завозя годноту в байткод).
>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/
На практике, если точно не уверены, можно просто кликнуть и посмотреть исходник функции (не вникая в контракты).
>Контент
https://youtu.be/xH-RZ9YlxH0
Если вам нравится kotlin или java и вы умеете читать документацию сами, то можете просто кидать в тред годный контент, новости и прочее из мира jvm.
Питухон хорош пока пишешь маленькие скрипты, как только приложение вырастает, начинается боль и страдание, ибо динамика есть динамика.
Ну еще этот йоба синтаксис, не рекомендовал бы начинать с него, так как языков с Си-подобным синтаксисом больше (из популярных). Это кажется фигней, но на самом деле очень важно, я видел как людей ломала после питона и руби, у них усиленная утиная болезнь.
Как по мне учить котлин не зная джаву самоубийство. Все книжки написаны по типу "вот это работает как в джаве, только чуть чуть подругому". Базовые вещи вообще не обьясняются
Короче удачи и терпения)
Сейчас качество книг такое, что учить по книжками становится самоубийством тупо развод на бабло по завышенной цене, куча ошибок, куча воды, устаревшие техники и приемы, порой изложения материала усложняет даже сам материал. И такие книги еще в топах рекомендациях на всяких нубо-форумах
"пилятЬся"
это потому что ты нихуя никогда не учил, тем более котлин, но взвизгнуть что то нечленораздельное горазд
Turbo Pascal
3 года в вебе- JS, NodeJS, React. Вот думаю расширить кругозор андроид разработкой и статически типизированным языком, тем более есть вариант отчуиться за счет компании
Тоже повелся на инфоцыган обещающих вкат после 30 без вышки?
Что не так?
Но я как раз таки вкатился после 30 и без вышки(с купленным за 25к дипломом)
>не возьмут
>уволили сразу 2 молодых и шутливых
А что сразу пердунов за 30 не взяли? Или кладбище на карантине?
Ты бы хотя бы википедию открыл перед постингом инфы, в которой не уверен.
Ну вот в Go, шарпе и паскале тоже есть var. Это теперь динамически типизированные языки просто потому, что в JS так обозначают переменные?
А вот и секта свидетелей мягкого знака пожаловала, бывшая секта свидетелей буквы "ё", "кофе" и "запасный".
Вы никогда не думали, что орфография искусственно усложнена, видимо просто по приколу, чтобы крестьяне не вкатились легко. Особенно радуют надуманные исключения в виде стеклянный, оловянный, деревянный. Или избыточные запятые для слов разделителей а, но, что...
Взять котлин точенный и снести js перченый, заменяя на kotlin-js мудреный.
А вообще nodejs лютая шляпа, реальная её популярность в js мире будет небольшая, все ваннаби программисты сидят на фронтенде и придумывают себе фреймворки, чтобы платили больше
Двачую, хоть здесь и не /fl/.
А ведь они ещё гордятся, мол, смотрите какой у нас язык сложный.
>nodejs
и я не понял причем тут фронтенд, по сути nodejs это контейнер для v8, расширяющий движок методами для создания сервака/отправки хттп запросов/etc. нода для того и предназначена, чтобы на бэке работать, используя js.
Почему у него на ноуте значок QoS?
единственный обосравшийся итт- ты, старина. я же тебя нахуй отправил, а ты все еще здесь. оформи съеб по бырому
Лол, что за маня графики? А пхп тут нет, чтобы не скалировать все значения в графике до 0,1%??
Другое радует, как в одном месте сравнивают платформы и фреймворки. А где тогда html? Я верю в хтмл
Смешались в кучу кони, люди...
Ну раз мы начали по стэковерфлоу мериться адепт, с мягким знаком тут все норм??, то смотри как получается, доля тегов с nodejs не такая большая в массе самого js (см. картинку).
А вообще рейтинг SO представляет собой отражение популярности инфоцыганных языков. Отсюда кстати и финомен популярности динамических языков, вкатывальщиков лучше всего на них развезти.
Тоже самое надо смотреть на дотнет и политику мягкий по внедрению курсов дотнета студентам.
Есть еще веселые динамически графики на ютубе, которые показывают как с годами менялся интерес к языкам. И самое забавное это всплеск вопросов в период сессий у некоторых языков.
Так что засунь себе SO в любое место (как и рейтинги по поиску), дабы не оказаться в каком-нибудь говне типа питона, пхп или жабаскрипт.
Вообще, если есть чуточку мозгов, то надо вкатываться не в самый популярный язык гуглящийся студентами. А в язык с хорошой оплатой. Выбирая, скажем, питухон, ты неожиданно можешь оказаться с тем, что на одно место будет сотни джунов готовых работать за еду. Пробуй, конкурируй. Там уже требования такие, которые 10 лет назад были на уровне синьера-помидора.
Остерегайтесь псевдо-хайповых языков. Ищите языки, которые будут кормить жаба мир, дотнет мир, системщики... итд
Если в окно успеешь, но уже открыто и скоро закроется
Если ты не понял, то джуному нужно быть уже сегодня тк уже через год за место джуна будут собеседовать под куполом смерти
Надеялся ошибками затриггерить "орфографного сектанта", но чет не зашло :(
Кормить будет жаба и бэкенд. В мобильную разработку я сильно не верю, сегодня там платформа андроид есть, завтра лет через 10 её может и не быть.
Но я старый енотик полоскун и что я могу понимать в том, как правильно чилить, кекать, панчить, флексить и рофлить.
Поясню.
Жаба мир, это устойчивое место, с накопленным большим капиталом кода. Его так много, что кушать его будут даже твои дети (или внуки, если ты знатный олд). Но жаба сама по себе уже топорна и неудобна, да, там, конечно, обещают в 2024 что-то завести, но натянуть сову на глобус будет проблемно. Поэтому нужны альтернативы.
Скала, это высер очередного мечтателя, практичности там нет.
Груви, это динамо-машина, которая удобна в одних случаях (скрипты), но костыль в других.
Так уж вышло что сейчас не 2000 годы и скрипты порой представляют маленькие приложения-утилиты. Поэтому надобность в типах , ощущается даже в небольших утилитках и на динамико-дрисне писать становится трудозатратно никто не говорит, что невозможно, я говорю что не рационально
Получается, до текущего времени, не было рабочей лошадки для JVM мира, на котором нужно было просто удобно работать и вот котлин таким дополнением и стал. Так что если хочешь котлин и хорошую зарплату, нужно все равно вляпаться в котлин, в бэкгрануд жабы. Может быть лет через 10 джава будет моветоном и нужен будет только котлин, но точно не сегодня.
Посмотри графики, как в разного рода ИТ сферах менялись монополисты. В свое время мягкие даже распустили группу разработчиков IE6, потому что тот отжал 80-90% рынка и они думали что "все", победа, пока лиса, а потом хром не изменил все в корню.
Так же и андроид, слишком узкая платформа, в отличие от ставшего стандартом IBM-PC и тем более серверных решений (бэкенд устойчив, а платформа мобильников еще может меняться, даже сам гугл там что-то новое пилит, хотя скорее всего обосрутся снова).
ну не будет андроида, выпустит гугл свою фуксию и что, мобильная разработка от этого никуда не денется, 2 млрд устройств не испарятся. короче, хуйню какую то несешь, оторванную от реальности, старина
Другая платформа, другие особенности разработки, твои знания об андроид станут ненужны и устаревшими. И весь капитал кода, который удерживал язык - помножиться на ноль
>Другая платформа
лол, какая? фуксия- просто новая ос для смартфонов
> твои знания об андроид станут ненужны и устаревшими
понятия, принципы мобильной разработки будут на месте, ну и котлин никуда от переезда на новую ос не денется
перестать поддерживать 2млрд устройств- нереально, если кто то думает, что возможны настолько радикальные изменения, то ему следует вернуться в детский сад
Система слишком сложная, твои понятия и принципы объясняются за 30 минут, а вот детали и тонкости, на которые ты потратил месяцы станут другими, исчезнут.
Я вот помню общие поняти UI и событий, что такое модальное окошко и прочие, но это не говорит что я могу сейчас десктоп приложение написать на разных фреймворках.
Общие знания бесполезны, они лишь ускорят немного твое обучение к новому и все.
Если общие знания помогают изучать новое, так ли они бесполезны, рассуждая в контексте твоих мыслей о том, что технологии переменчивы и непредсказуемы? Сам себе противоречишь.
Всё как раз наоборот - если область твоих знаний позволяет работать только в одном стеке, что бывает довольно часто, каждый раз делая одно и то же, следуя привычному скрипту действий, со сменой технологий неизбежно возникнут проблемы. Это похоже на боль многочисленных C++ олдов, которые пачками выгорали, не желая изучать новое и расширять свои знания.
>Если общие знания помогают изучать новое, так ли они бесполезны
Тебе сказали, объем твоих знаний и опыта может быть равен годам. Объем общих знаний пригодный для двух систем может быть равен часу обучения, ну может дню обучения.
От чего ты там выиграл то? Теряя многолетние знания (инвестиции своего времени).
Как только ты садишься учить что-то с нуля (именно заменяя новым, а не расширяя старые), ты уже проиграл. Не выдумывай этому оправдания, цени свои инвестиции, не будь информационной шлюхой, твой ресурс не бесконечен реально не бесконечен
>Если общие знания помогают изучать новое, так ли они бесполезны
Если говорить языком игр, тебя это бустанет на процентов 1-5% от объема других новый знаний. Ты даже будешь путаться в новом UI, так как старые привычки будут замусориваться с новыми.
Хорошо когда ты сам решил перекатиться, на что-то новое, ты делаешь выбор. Но в других случаях тебя просто кидают на твой опыт.
Так что олдускульные прогеры понимают что делают, ресурс обучения конечен. Буст от молодости скоро пройдет и печально будет, когда твой пласт знаний станет ненужным.
>>07890
>Теряя многолетние знания (инвестиции своего времени)
теряя какие знания, ты о чем вообще? очередной оторванный от реальности пук, хоть примеры бы привел, а мы бы посмеялись
>Если говорить языком игр, тебя это бустанет на процентов 1-5% от объема других новый знаний
это ты откуда взял, почему не на 50% или не на 10%?
>Ты даже будешь путаться в новом UI
в каком UI блять, это просто интерфейс, он может быть каким угодно, че ты несешь нахуй, причем тут блять UI. при работе с субд например с тем же постгресом(SQL) или касандрой(NoSQL) я хз, тебе вообще не надо никакого UI, все запросы можно писать в терминале, тупо подключившись к субд. ты вообще понимаешь, что такое UI? приведи пример того о чем этот взвизг
>Как только ты садишься учить что-то с нуля, ты уже проиграл
и зачем ты ссышь на голову самому себе
>Но в других случаях тебя просто кидают на твой опыт
кто тебя кидает, на какой опыт, о чем ты вообще?
> олдускульные прогеры
это которые software engineer или по русски инженеры-программисты? ну иди расскажи им как им не нужно постоянно учить что то новое. я тебе открою великую тайну, есть только задачи, которые нужно решать, а ЯП и платформа значения не имеют, ну можешь съебать на мороз, если не способен выполнять работу инженера
ты походу верстала какой то, который вообще о программировании ни сном ни духом. детский лепет, который ты пытаешься пафосно подавать смотрится убого, в каждом предложении какие то пространные оторванные от реальности размышления школьника
>твой ресурс не бесконечен
Согласен, просто знания нужно оптимизировать. Изучая что-тохотя это же относится и к имеющимся знаниям, нужно чётко видеть его место в хронологии развития, понимать причину изменений и результат, читай цель, ради которой изменения происходят. Языки различны синтаксисом и, не побоюсь этого слова, незначительными особенностями, которые поддаются категоризации как на концептуальном уровне, так и на прикладном. Алгоритмы и архитектура универсальны, но допустимость их реализации определяется предметной областью.
Я это к тому, что имея более-менее осмысленные знания/способность анализировать и перекатываясь, невозможно делать это с нуля. Ты в любом случае будешь опираться на имеющиеся знания и опыт, от которых и зависит то, насколько быстро и грамотно ты способен "въехать".
>>07861
>старые привычки будут замусориваться с новыми
Видишь разницу между
"Теперь надо делать вот так, раньше я так не делал"
и
"Там я делал так, а здесь надо вот так. Тут похоже, а это отличается."?
>в других случаях тебя просто кидают на твой опыт
Тем не менее, никто тебя не лишит права выбора. Хотя я знаю опытных сидельцев за зп, в чей отдел спускают поручение сверху и им приходится падать в незнакомый стек и барахтаться в нём, пока начальство не придумает что-то ещё. Они и раньше ничего толком не знали, а тут им действительно надо с нуля пытаться осилить хоть что-то, чтобы создать видимость деятельности. Как так вышло? Их ценность стремится к нулю, они просто не могут позволить себе уйти, потому что им нечего предложить, а вкатываться ещё куда-то слишком накладно, ведь придется начать делать хоть что-то. Но не стоит забывать, что это их выбор.
>это ты откуда взял, почему не на 50% или не на 10%?
Это образный пример, чтобы показать как мало. В реале, можно даже посчитать, обобщенный (общий) объем информации для платформ и количество новой, которую нужно будет освоить (все API, все новые классы, методы, директивы и т.д.).
Там реально будет где-то 0,01-0,001% твоих знаний которыми ты гордишься сейчас.
Очень легко прочувствовать это, просто перекатись с андроида на макось. Потом расскажешь сколько потребовалось времени чтобы поднять уровень до текущего уровня андроид разработчика и как тебе твои знания андроида помогли.
Я хотел тебе отвечать дальше, но ты нихера не понял мою мысль, начал зачем-то про SQL писать и общий опыт разработчика, когда мы говорим про мобильные платформы. забавно, что разные ORM фреймворки, в разных языках реализованы по разному, и зная один, тебе все равно придется изучать другой, перекатываясь
Ты слишком туп чтобы оценить свое вложенное время и силы и осознать, что новая платформа (не обязательно фукцсия) помножить твои знания почти на ноль и ты заново начнешь учиться, но уже конкурируя со следующими зумерами.
>твой ресурс не бесконечен
>Согласен
Твоя задача с минимум усилий, получить максимум. Инфоцыгани вам уже на кинетическом уровне внушили, что надо расширять кругозор и осваивать 100500 языков и прочее. Нет, надо становится специалистом в своей области иначе будет мидлом, но в нескольких.
Ты живешь в физическом мире где все ограниченно и твои мозги тоже. Ты должен их использовать максимум эффективно, а не сделать его библиотекой с пылящимися книгами.
У тебя есть буст с 10-25 лет, а дальше все знания будут даваться по утроенной цене. на самом деле на учебе выгорают раньше, выгорание можно назвать момент, когда сосуд "знаний" заполнен
Первые симптомы, это падение мотивации, мозг как уставшая мышца, дает знать, что она истощена. Но в отличие от мышц, мозг больше не растет (и некуда).
Так что в свободная время у вас появиться мысли - не изучить ли питон или раст, знай, что в переполненном мозгу, новые знания будут давать за счет старых и с трудом.
Я, например, уже с трудом помню молодость и школьное время, даже лица одноклассников. Не особо нужная инфомации, но страшно осозновать, что постоянная учеба стирает твою жизнь и память о прошлом.
Неожиданно в старости получиться так, что в голове останется память не о том, как ты в 20 лет машку за ляжку таскал, а том что в питоне join надо выполнять от строки, а не от списка. Это повлияет и на тебя как на личность, ты станешь биокалькулятором для дяди
>Это образный пример
вообще не аргумент, можно перевести так- это я наманяфантазировал
>ты нихера не понял мою мысль
так нет же никаких мыслей, просто пространная дичь про UI. и это как раз ты не понял мою мысль, манюнь, т.к. я не просто так подписал SQL/NoSQL
>помножить твои знания на ноль
о каких знаниях речь?
>ты заново начнешь учиться
прикинь, школьник, многие делают это по много раз в течении жизни.
>Очень легко прочувствовать это, просто перекатись с андроида на макось
очередная тупая хуйня, детектящая в тебе неразбирающегося васька. с андроида на iOS, тут да, есть смысл. но опять же, при переходе с Kotlin на Swift например, никаких проблем не будет, тем более в пределах одного проекта. не говоря уже о том, что эти языки очень похожи
кстати ни на один вопрос ты не ответил по итогу, чего и следовало ожидать
>Они и раньше ничего толком не знали
>спускают поручение сверху и им приходится падать в незнакомый стек
ты сам себе противоречишь, очередной манюнь. если компании и потребуется кого то переводить на новый стек, то поручат это лучшим, а не тем кто нихуя не может
Попробуй сначала прочитать то, что я написал, а потом ответить. Я согласился с тем, что есть предел, но ты чересчур утрируешь. до такой степени, что это больше походит на стёб, особенно про классы и методы 0,01-0,001% ты совсем уж неудачно взял с потолка, потому что это уровень человека, который впервые взял в руки смартфон. Во-первых, что ты считаешь "пылящимися книгами"? Если ты считаешь бесполезным знание математики, я всё равно не пойму ход твоих мыслей. Во-вторых, ощущение отвращения к деятельности во время учебы может возникнуть и в голове без малейшего намёка на знания.
Вообще, если ты пишешь всё это только из-за того, что конкретно у тебя что-то не получается, попробуй подумать над тем, что ты делаешь не так, и изменить подход. Про твою грамотность и слова не скажу, но это своеобразный маркер. Дружище, нужно быть открытым к иному мнению и задумываться о собственных недостатках, признавая их, а не переводить стрелки на инфоцыган, которые тут вообще ни при чём. Осилить можно почти всё, уложившись в лимит ресурсов, если правильно думать. Даже грамоту.
Лучшие не будут ныть из-за того, что при очередной реструктуризации их выгонят и "что делать дальше, куда идти, я ничего не знаю". Тут нет противоречий, потому что в дерьмо окунают тех, кто на большее не способен, они как чернорабочие, а на хороших спецов рассчитывают, зная их уровень. Со своими манюнями можешь пойти нахуй в ньюфаг-тред, там обитают токсики вроде тебя.
ребенок, ты хотя бы логику данного поступка отслеживаешь? какой здравомыслящий работодатель/PM/exec будет переводить людей на новый стек, очевидно на новый проект, при этом зная, что это неумехи и как ты там взвизгнул, чернорабочие на которых похуй. какой в этом смысл, алло? они же все сломают, сделают криво и проебут все полимеры.
вот пример из реальной жизни одной из контор в которой я работал- основной проект достиг своего пика и в конторе решили делать еще несколько, но с новым стеком и на новой платформе, десктоп/iOS/Android. для этого выбрали самую продуктивную команду и перевели её на этот новый проект. эти парни составили всю необходимую документацию, оформили фундамент для последующей разработки и выкатили версию 1.0, только после этого перевили еще 2 команды.
а ты, тупо малолетнее чмо, которое ни к какой разработке отношения не имеет, ни тем более к менеджменту, по сути ты профнепригоден
у меня такой вопрос к вам, есть проект, энное время вы над ним работаете, но по сути это легаси, которое не плохо бы переписать и вот приходит день, когда PM говорит вам, парни, перепиливаем! изучите вот это, это и еще это покурите. я правильно понимаю, что вы, школотуны, тут же проявите независимый характер, плюнете и скажете- "НИТ! МЫ НОВАЕ НИ УЧИМ, ЭТО ВО ВРЕД НАШИМ КАРЬЕРАМ АРЯ!!"- и тут же пойдете искать другую работу?
Все забываю что с вкатывальщиками общаюсь.
Я тебе говорю, у тебя реальный шанс пощупать что такое другая платформа это слезть с андроида на айос
Я тебе говорю про разное API платформ, а мне джуны рассказывают как легко с котлина на свифт пересесть. Конечно, ведь надо изучить только синтаксис
Мои макаки пересели с джавы на котлин, у них производительно по времени просела 2-4 раза, особенно в первые недели, как джуны копошились. Только спустя, примерно, 3-4 месяцев набили руку и начали писать как на жабе. То что ты легко можешь между языками скакать - это бред, изучить синтаксис не значит набраться опыта.
Реальность жестока, хочется верить что еще успеешь выучить "то" и "то" и стать великим мастером...
>какой в этом смысл, алло?
Такой, что это происходило в крупной компании, где неумёхам спускали проекты по принципу "зайдёт/не зайдёт". Мне плевать на твои примеры, хоть я и не отрицаю, что это правильный подход, потому что в жизни не всё сводится к принципу здравомыслия, тому и приведённый пример, знакомый лично мне. Я это дерьмо презираю.
>а ты, тупо малолетнее чмо, которое ни к какой разработке отношения не имеет, ни тем более к менеджменту, по сути ты профнепригоден
Ути-пути, какой ты злой, аж страшно за твоих коллег. Хотя на работе ты, вероятно, самый тихий.
>>08053
Конечно, ведь по факту сказать нечего, "вывсёврёти".
Какой смысл говорить с человеком, если у него представление объема знаний API разных платформ, это разница между синтаксисом котлина и свифта??
Это как те долбаебы, которые говорят что между жабой и си шарпом легко перекатиться, не подразумевая, что там бэкграунд знаний между инфраструктурой джавы и дотнета - два разных мира. Да даже эта разница между линуксом и виндом я сейчас не говорю про core или mono, если оно живо еще.
То есть, они реально воспринимают всю сложность между платформами только по объему знаний синтаксиса языка, которые реально похожи. не узнаешь тут себя??
>>08053
Да еще сам с собой говоришь, малолетнее чудо.
>неумёхам спускали проекты по принципу "зайдёт/не зайдёт"
еще раз спрашиваю, какой в этом смысл, кто блять будет оплачивать часы неумехам, чтобы потестить "зайдет-не зайдет"?
да и как оно в принципе может зайти, если работал над этим неумеха. не бачу логики. да и нет её в твоем высере
>я и не отрицаю, что это правильный подход
только таким подходом и будут руководствоваться здравомыслящие люди. а то что ты приводишь в пример- тупорылый высер не имеющий смысла. никто не будет вкладывать в неумех, покажите мне такого руководителя, который будет, хочу смеяться 5 минут
Хоть ты еще глупенький, но вот тебе тоже аналогия.
Работаешь ты гинекологии в больнице, у тебя 10 лет опыта и 7 лет учебы, а потом приходит глав отделения и говорит что сейчас тренды в проктологии, бросайте эту херню, будет у нас отделение проктологов, быстро все переучитесь (за свой счет, конечно).
Нелепо, да? Хотя казалось бы, какая разница, ведь там дырка и там дырка? Наверное учить немного :)
Но вот айтишников так дурят и благодаря твоей тупизне, это прокатывает до сих пор.
даже между JS и Kotlin/Swift легко перекатиться. ты либо программист, либо в хую дыра, выбирай
более детского примера придумать невозможно.
вот тебе другой пример- монтажники привыкли работать с перфораторами фирмы Makita, но теперь им купили перфораторы фирмы Bosch. и че, теперь они массово будут уходить не желая работать с новым перфом, только из за того, что у него внутренности по другому расположены и кнопка "пуск" с другой стороны?
яп- не более чем инструмент, если ты программист конечно, а не верстальщик типа тебя
У меня хорошие ребятки, я их в шутку так зову.
Они сами попросили и мне тоже зашло. Реального профита эффективности не особо много, но вот удобство людям добавило.
Не люблю аналогии, но это как после плохого неудобного инструмента (например, затупленной пилы), взять удобный инструмент (например, пилу с хорошим заточенным полотном).
Этому барану говоришь про API платформ, а он все синтаксис сравнивает.
Между фронтендом и бэкендом легко перекатиться? Между бэкендом и иос легко перекатиться? Между формашлепаньем в десктопе и кодом управление балестических ракет - легко перекатиться? Но ведь легко же? Да? Я же знаю уже Qt5
Серьезно, они говорят про языки и синтаксис.
Им говорят про платформы, а они про синтаксис. Я умываю руки.
>>08124
да, легко, даже в геймдев легко вкатиться из веба, не говоря уже о перекате на андроид или iOS. еще раз повторяю, если ты программист, то такого вопроса даже не стоит, ты просто изучаешь новый инструмент и используешь.
>API платформ
охуеть блять, квантовая механика, съеби из /pr, тебе тут нехуй делать
>Между фронтендом и бэкендом
а зачем перекатываться, когда можно и нужно становиться фулстеком, нынче даже к джунам фронтендерам предъявляют требования по знанию ноды при приеме на работу. хуя вы тут отсталые чучмеки
Помню в ранней юности взял толстую книгу по С++, первый мой язык. Она такая толстенная была и я думал, что прочитав её, я стану полноценным программистом (ну реально, толстенная же какая). Оказалось там только про синтаксис (и то не весь) и это только начало пути.
Местная детвора верит, что если изучит свифт после котлина, они станут иос разработчиками.
Блин, я изучил котлин, но не стал андроид разработчиком, что я делаю не так :(
Тогда сиди в проктологах, раз цена твоему переобучению ровна нулю.
Ты демпингующий калькулятор.
за мое переобучение платит работодатель, иначе оно мне нахуй не упало. НО, могу сказать точно, что cv в котором 5 лет JS < cv в котором 3 года JS и 2 года Kotlin
Есть такая вещь, как ООП, благодаря знанию которой ты можешь понять структуру наследования компонентов и их реализации. Ты читаешь документацию, детектишь структуру базовых компонентов и у тебя уже складывается представление о том, как всё устроено, учитывая то, что твой ленивый мозг проводит параллели с тем, как ты реализовывал подобное на другой платформеесли был такой опыт. Никто, блять, не выдумывает структуру таким образом, чтобы её было сложнее понять. Напротив, построение происходит так, чтобы хуйлуша, который думает, что не справится, увидел, что не всё так страшно и есть определённые закономерности, которые позволяют минимизировать время, необходимое для понимания.
>Да еще сам с собой говоришь, малолетнее чудо.
Делать мне больше нечего
>>08107
Задавай этот вопрос эффективным управленцам, которые это допускают. Если тебя, бездаря, когда-нибудь посадят в кресло, не делай так, как они. Хотя тебя даже спрашивать не будут, так-то.
>покажите мне такого руководителя
Сейчас бы деанонить корпоративных царьков ради того, чтобы что-то доказать взрослому человеку с наивным мышлением ребёнка. Не повезёт - ты сам с таким столкнешься, а если нет - считай, что повезло.
>>08123
>балестических
В голос
Лол, это настолько ущербно и по малолетнему звучит, что мне даже смеяться противно.
То есть, ты сейчас сказал, что надо вот только знать ООП, наследование компонентов и их реализации чего? и на этом строится все программирование и все сложности решаются?
"Кококо, надо только вкатиться в ООП, дальше пойдет как по маслу."
Норм :)
>балестических
Я бухой и ни разу это слово не писал, так что норм. Иди пердолься с тем сектантом с мягким знаком, стеклянный, деревянный ты наш.
Опять сам собой говоришь?
Глупышка,
>Есть такая вещь, как ООП,
а не
>надо вот только знать ООП
Напрягись немножко, разницу поймешь.
>их реализации
Структура реализации наследуемых компонентов. Это когда ты складываешь домик из палочек и видишь, что одна палочка подходит сюда, а другая туда.
>Я бухой и ни разу это слово не писал, так что норм.
Манёвры. Будь аккуратнее, последние полтора нейрона помрут и туши свет.
>Структура реализации наследуемых компонентов
Реферат что ли пишешь?
>Это когда ты складываешь домик из палочек
А ты так себе строитель. Но вот фантазер и любитель придумывать свои понятия шизик отменный, поэтому теперь тебя будут кличать "Строитель домов, мастер над палочками и магистр ООП, родом из котлин-треда".
неплохо ты прикладываешь это пьяное быдло, старина
Нельзя, потому что считается, что это нинужно.
Можно только объявить несколько переменных через такой костыль:
var (a, b) = arrayOf(1, 2)
Скорее всего он имел ввиду это
https://pl.kotl.in/xYU6iJnII
Собственно в описание говориться, что присваивание это не выражение. Это сделано чтобы избежать сложно уловимой (и порой плавающей) ошибки, когда вместо "==" случайно написал "=" в if. может еще где-то кейс есть, я уже не помню.
>>08806
Ты высрал дичь, в твоем примере возвращается два разных значения и это совсем другая фича.
Я думаю очевидно, если присваивание не выражение, то и такая запись будет невалидна
var a = true
var b = false
a = b= true
>новый язык на превосходно отточенной jvm с богатейшим набором библиотек от java.
Паразиты.
гугли суды оракла и гугл по джаве
Ты же тоже самое сказал, только другими словами, а что за сюрпрайзинг поведение?
Ввиду того, что точка с запятой является опциональной, код чувствителен к переносу строк, потому стоит соблюдать Java-стиль, дабы избежать непредсказуемого поведения - например, когда ты переносишь скобку и тело не детектится, возникает ошибка. Такое редко случается, просто следи за скобками.
Добавь в условие длинные имена переменных, которые не умещаются в строку и которые ты переносишь по привычке разделителем слева (+ varname) и получишь такую валидную ошибку.
Такого рода ошибки свойственны не только котлину, это цена за опциональный ";"
А зачем вообще нужно было отказываться от ; и вводить эти сюрпрайзинг поведения, я ещё не всю их доку прочитал, это у них задокументировано, эти потенциальные возможности обосраться? Понятно дело что можно тут возразить, пиши как тебе сказали и не будет проблем, а точка с запятой это в большинстве случаев избыточно и ничего не значит, но всё таки.
Вон в пщ то же самое.
Пытались и в JS, но никто не оценил.
Ну а в питоне синтаксис вообще прибит гвоздями к отступам.
>зачем вообще нужно было отказываться от ; и вводить эти сюрпрайзинг поведения
Ошибки детектятся легко, возникают редко, но писать без ; намного удобнее и быстрее. Когда пишу на Java или C#, частенько забываю их ставить, т.к. отсутствие ; вызывает сильное привыкание, уж очень удобно.
>>10855
>в питоне синтаксис вообще прибит гвоздями к отступам
А вот это сильно раздражает, особенно в длинном коде. Иной раз приходится декомпозировать функцию, дабы не было спагетти.
Там есть предупреждение. Благо в статическом языке это детектиться.
Гугл подсказывает "приём платежей".
Спасибо, посмотрю, может и оно.
Мне нужно как на пикрил, как это все делается не UI конечно или хотяб что гуглить.
https://blog.jetbrains.com/kotlin/2020/06/kotlin-1-4-m2-released/
Есть nullable-типы
https://kotlinlang.org/docs/reference/null-safety.html
Ну и можно джавовский Optional юзать.
А ещё java.lang.Object вместо Any.
Как в свифте и скотлине - описываем все в классах а их потом в рантайме ебут в жопу (петушиная модель). Или нормальная - класс как конструктор объекта, который мы потом используем и ебем где хочем и как хочем?
>А вот это сильно раздражает, особенно в длинном коде. Иной раз приходится декомпозировать функцию, дабы не было спагетти.
Желающим поругать питон за отступы рекомендую освижить в памяти однострочники на перле, и подумать так ли уж глуп был создатель пихона.
>скотлине
Ой, прошу прощения, в скалке конечно же.
Постоянно освежают в питон-треде. Вместо 2-3 понятных строчек всё пытаются сделать в одно выражение на 150 символов из генераторов списков, лямбд и прочей хуйни, будто их хаскеллисты покусали.
> описываем все в классах а их потом в рантайме ебут в жопу
Это как? Тут почти никто не видел ничего, кроме джавы, и делают почти как в ней.
Он вроде сам говорил (или какой-то большой хер из питона), что отступы, возможно не лучший выбор и можно было так гвоздями не прибивать синтаксис к ним.
Вообще, практика показывает, что нельзя сажать за дизайн языка человека с бурной фантазией, надо чтобы были люди из вне, которые могли бы макать мордой в говнище, которую плодить разум "гения". Кому язык инструмент самовыражения, а кому-то надо потом сопровождать эту радость.
Что уже каникулы начались??
Надо понимать что все они создавались в эпоху где нормой было 1000 строк кода настучать для домашней странички или утилитку написать для линукса. Но никак не для программирования вообще.
Вы пробовали разобраться в ООП коде PHP-фреймворка? ООП в динамико-говне просто нечитаемо.
Пора уже признать эти языки - недо-языками, ваннаби-языками, квази-языками. Понятно, что какому-то инженеру проще там звезды двигать через питон, чем через си. Но он и пишет чаще именно скрипты, а не приложения.
https://insights.stackoverflow.com/survey/2020#most-popular-technologies
> Да всё это не нужно
> Python
С парой пунктов можно поспорить, но да похуй.
Всякие небольшие лендинги/интернет-магазины/сайтики с курсами так и будут писать на динамикодрисне, благо что кода там немного, а толку от них мало. На джавашарпах их писать мало кто будет, слишком дорого и долго. Там заказчикам главное - побыстрее и подешевле выйти на рынок, а не надёжность.
Что не так? Попробуй такое написать в их загоне, портфелями закидают.
То что нормальный джавист стоит дороже макаки, это понятно. Но почему на джавашарпах дольше писать, когда весь стек ты пару строк в каком-нибудь мавене подгружаешь (спринганутые вообще тебе расскажут как в две строчки сайт развернуть)
Ну может и не дольше. Просто в той же пыхе программирование местами доведено до примитивизма, когда даже не кодишь, а настраиваешь виджеты с шаблонами, хуяк-хуяк - и готовый сайт. В джаве так делать в целом не принято.
У них там в топе node.js и сам js, надо подстраиваться под аудиторию.
А вообще, белый - цвет угнетения
Выкатился давно из пыхи, можешь показать сие подход в действие? ткни в какой-то туториал или блог с примером, что ли
А я голую джаву почти не видел.
Это вообще нормально в мире жвм что данные в глобалах хранить некомельфо так как их гарбажколлектор подчищает?
LOVED
Go 62.3%
Что с ними не так?? Я серьезно, я просто не понимаю, как? Просто на авторитете гугла так выезжают или что?
Например, на ютубе вбить в поиске "wordpress блог за 5 минут". Там будет такого полно.
Он ничего не подчистит, если это будет какой-нибудь public static объект. Но да, так делать не принято, это по сути глобальная переменная со всеми вытекающими. Данные обычно грузятся из базы, на уровне приложения хранится максимум кеш.
Хм за 5 минут, а видео 8, 12 минут...
А понял про что ты, про всякие виджеты к CMS'кам. Я просто на мгновение подумал, что появились какие-то фрейворки и появились какие-то полноценные компоненты, которые как модули добавляешь на сайт.
Почему когда видишь вкатывальщика в жабу, у них сразу вопросы про ГЦ, как не гадить в памяти. Но при этом вкатывальщик в жс или питон вообще не думает не о каких-то там сборщиках мусора и что это такое, как-будто сборка мусора это лишь жабовский какой-то недостаток.
В питоне сборка мусора происходит только если сам Гвидо разрешит.
Значит все таки все жвм бейзт такие.
Без обид но я впервые испытал отвращение к тому что я делаю. В аду меня будут черти заставлять писать на этом прикладные приложения, да впрочем и веб приложения наверняка наверняка не легче.
Каждому своё. У меня вот отвращение к фронтенду, но объективных причин для этого вроде бы нет.
Потому что я же туда вот строку положил, а во время работы там нульпоинтер. Где строка? Спиздили! Гарбажколлектор спиздил строку, сука!
В жс вкладка закрылась, объекты удалились вот и весь гарбажколлектор. И вообще там на некоторых объектах стали по сишному добавлять методы типа free()/destroy() URL.createObjectUrl(blob) -> string //создает глобальный url адрес блоба
URL.removeObjectUrl(string) //удаляет блоб из памяти
Впервые о таком слышу. GC никогда ничего не удалит, если у тебя есть хоть малейшая возможность добраться до этого объекта. Это где-то на уровне Unsafe или JNI надо намудрить, чтобы подобное случилось.
Ну я не с позиции фронтенда а вообще, си/плюсы увлекают, жс/питон тоже, но вот джаваподобные производят впечатление наоборот, може правда мой моск испорчен си подобными.
И правда ведь, опшенл не нужон.
Да этот дебил сложил 2 + 2 и получил 5. Он подумал что NPE у него от того что ГЦ съел объект, а не потому что он его всрал. Ну ребенок же.
Точняк. Хорошо, что я не стал с этим связываться.
Как понять всрал?
NPE это исключение которое рантайм выплевывает когда ты с ним что то пытаешься сделать
Это когда в твоей переменной нет объекта, то есть null. Это всегда ошибка на стороне юзера (где-то не проинициализировал или где-то не проверил).
Просто хочется знать, как это сделать, чтобы не было больно. Если юзать Hibernate, то переключение между саспендящимся и блокирующим кодом уродское (да и выгода от реактивности снижается). Если без Hibernate, а например, через спринговый DatabaseClient, то больно грузить саязи и к ним обращаться.
>Вы никогда не думали, что орфография искусственно усложнена
Вообще-то, она ещё и искусственно создана, причём любая.
Но разумеется, поэты-писатели-лингвисты-этнографы изъёбывались как могли, выжимая всё возможное из языка и обогащая его, именно для того, чтобы потомки копротивлялись за право быть долбоёбами, не читающими в своей жизни никаких книг и переизобретающими правописание путём угадывания его на слух, как дети ёбаные.
Да естественные языки - это самое что ни наесть легаси, которое тащит любое говно из прошлого, потому что так повелось и никто не будет переучиваться
Ну вот я как то так и решил вроде - держал строку в какой то глобальной структуре, в виде объекта-блоба.
Теперь вот в ходе дискуссии между строк улавливаю что "не объекты" похоже что в жабе не живут и запись в глобальную переменную это на самом деле была запись в локальную неинициализированную. Окей, последний неудобный вопрос - что происходит если я не ставлю в коде проверок на нульпоинтеры (ну типа специально хочу чтоб он прилетел и сломал программу) - видно будет откуда и где стрельнуло или просто как в си жидко пукнет и обмякнет не проронив ни слова. То есть проверка и генерация исключений на совести программиста?
> и запись в глобальную переменную - это была запись в неинициализированную переменную внутри вызываемого метода класса.
fix. (Может быть такое? )
Неужели за эсперанто топишь?
А вот и секта противников буквы "ё", но свидетелей букв "е", "ю" и "я".
>Вы никогда не думали, что орфография искусственно усложнена
Думали, но правила существуют для того, чтобы текст, написанный разными людьми, выглядел единообразно, благодаря чему разные люди оказываются способны понять друг друга.
Плохие правила, хорошие, переусложнённые, не переусложнённые — но они есть и ты им следуешь.
Не нравится — cilre la .lojban. , и говори там по тамошним простым как валенок правилам, но коль говоришь на языкнейм, то будь добр хотя бы расстрельные ошибки фильтровать.
Ну если ты в методе объявил локальную с таким же названием, как глобальную, то может быть такое.
При этом на такой прикол чаще в питоне натыкаются, где переменные декларировать не надо, и если просто написать x = 1, думая, что x глобальная, то потом удивишься, что в глобальной x - None. (чтобы работало надо в функции явно написать global x).
>>17345
Если ты про Kotlin, то ты получишь NPE, если попробуешь вызвать метод на null, который null'ом быть не должен. Например, такие фокусы возможны, если через рефлексию в not-nullable поле записать null.
Если хочешь посмотреть на приколы с null-ами в Kotlin, рекомендую посмотреть https://www.youtube.com/watch?v=mKnY_uI3Z9Q
Не, я же написал "неинициализированную", то есть локально такую же не объявляли.
Ясно в общем, спасибо. Может правда вкатится в котлин заранее пока изучивших его мало, судя по описанию не такой отвратительный как скалка или свифт.
Неинициализированная и необъявленная - не одно и то же.
Сейчас бы высеры древних графоманов чтить. Язык должен быть простым, логичным, информативным. Век, когда можно было подрочить под лучами свечи, попукивая с мыслью какой же ты охуенный, закладывая свои испражнения в умы таких же читателей, прошли, настал информационный век. Каждый байт на счету!
Ну получишь исключение, NPE это обычное исключение. А где оно произошло увидишь по стектрейсу.
Как в си не падает, это был и есть главный поинт джавы в свое время.
Ну еще ты можешь NPE и другие исключения поймать и залогировать (даже особо сложные исключения, современные логеры продуманные)
Да есть драйвера, даже целых 3: R2DBC, vert.x и этот.
Только Hibernate не умеет в них, а без него работать очень больно, так как надо как-то подгружать связи, и переходить по ним.
Ты наверное из тех людей которые будут себе елку в жопу засовывать, если это станет правилом? Ну да, неудобно, но что же теперь, за то мы елочники друг друга понимаем
К сожалению, довольно мало на эту тему. И то решение, которое есть (явное использование withContext для перехода на тредпул для операций с БД), мне не нравится, потому что уродство писать этот withContext в каждом сервисе.
Поэтому и спрашиваю опыт анонов.
Не совсем я понимаю, но так наоборот же круто, что у тебя есть отдельный контекст и тредпул. Гоферы вон варятся в куче (смешались люди, кони), а ты тут можешь отдельно держать пул потоков, в котором пул корутин (скажем для хттп, для бд, для записей в файл, для тяжелых операций, например парсинг картинок).
> Гоферы вон варятся в куче
В случае, если блокирующих вызовов нет в принципе, то это ничем не плохо.Ну разве что на парсинг картинок может быть нужно как-то ресурсы ограничить.
А плохо, потому что меня раздражает контекст переключать явно, вроде мелочь, но раздражает.
> изъёбывались как могли
Зря старались.
> чтобы потомки копротивлялись
А ещё потомки "копротивлялись" за равные права, отмену рабства и уничтожение сословий. Чёт не вижу вскукареков снобов, дрочащих на тех, кто всё это напридумывал.
Так кажется, пока не начнешь писать приложение по серьезному. В го приходится вместо пула потока делать целый лишний микросервис (с очередным лишним API)
Ну так расскажи, с какими проблемами столкнулся, разрабатывая серьёзное приложение, и почему пришлось переносить в микросервис.
Может даже на статью на хабр инфы наберёшь.
>хабр
Спасибо что не ЖЖ. Как там в 2010?
>Ну так расскажи, с какими проблемами столкнулся
Тебе сказали, нет возможности контролить потоки ОС, неожиданно какая-то числодробилка может положить поток с простыми хттп запросами или другим чем-то важным есть там костыль для ОС-потоков, конечно, но для других целей и реально костыль.
>хабр
Никогда не понимал феномен, как взрослые и технически образованные люди, писали/пишут статьи на хабре ради лайков? И ведь там реально бывают работы на которые тратиться не один день. Интересно смеются ли они над девушками, которые выкладывают фото ради лайков в соцсетях?
По такому определению взрослых людей вообще единицы. Все так или иначе пытаются самоутвердиться, кто-то за лайками гонится, кто-то на пишет провокационные посты на двачах. На то мы и человеки.
> Интересно смеются ли они над девушками, которые выкладывают фото ради лайков в соцсетях?
За обсуждение такого там обычно минусуют, но да.
Статьи пишут что бы больше людей увидело, прочитало и оценило. Иначе зачем их писать?
Пиздец такие очевидные вещи же.
Может у тебя еще и ученые в журналах публикуются ради лайков и внимания?
Статья на хабре которая набрала много лайков не хуже для поиска работы чем зеленый гитхаб.
Ты всех, кто явно не написал "Да" на твой пост, записал в лайкодауны? Даун здесь только ты.
Поясни какая связь у программирования/айти с чьей то самооценкой?
Ты в айти сферу пришел чтоб потом перед кем то этим выебываться? Если так, то у меня для тебя плохие новости.
Мне из-за комментов на хабре работу предлагали, а тут статьи.
Другой вопрос, нахуя нужна работа и известность в рашке
> Смотрите, я не такой как все и не читаю хабр, потому что он на русском, посмотрите на меня, ПОСМОТРИТЕ
>Мне из-за комментов на хабре работу предлагали
Наверное, тогда тебе это самооценку подняло, да?
Лол, стоит только засветить где-то свои данные и у тебя уже пачка писем от хрюш, которые хотят тебя в базу свою засунуть.
Первый случай это наследование.
Второй случай это уточнение для всяких inner классов и прочих лямбда выражений.
Но если объединить момент наследования и вот этого уточнения, может получиться адок? Не?
Хотя может просто исторически так сложилось.
Больше разных синтаксисов для одного и то же. Глядишь, наконец-то получим что-то, сравнимое по сложности с крестами.
Как ни странно, но я когда это читал почему то про C++ с его костылями вспомнил.
C# уверенно превращают в всратого франкенштейна.
>Больше разных синтаксисов для одного и то же.
В каком месте это одно и тоже?
1. Случай доступа к методам родительского класса.
2. Второе решение проблемы затенения переменной, потери контекста (чаще для this).
Если у тебя наследуется класс и в нем еще inner класс, да еще с пересекающими названиями - ты получишь "PEN-PINEAPPLE-APPLE-PEN", то есть жопу. А так у тебя будет возможность явно указать что ты хочешь. мне правда лень пример печатать, надеюсь текстом дойдет
Так менее травматично?
> if (javaClass != other?.javaClass) return false
Что за джава тут? Котлин же кроссплатформенный и нацелился на независимоть от JVM.
Ну нульчане можно было вставлять блоки кода, а тут так можно?
[code]test[code]
>Котлин же кроссплатформенный
А жаба какая?
>нацелился на независимоть от JVM.
Дурачок, как он нацелиться на независимость от своей основы. Это надо весь этот говноязык переписывать.
> Дурачок, как он нацелиться на независимость от своей основы.
На сайте написанно у них, компилируются в Жабу, ПарашаСкрипт и нейтив ещё какой то там ллвм вроде.
>ПарашаСкрипт
Умеют примерно все, да и нахуй не нужно с приходом васма.
>нейтив ещё какой то там ллвм вроде
Ага, а родовые жава-травмы (вроде крешей при попытке изменения констант в рантайме) остались. Ещё какая-то мутная модель памяти, которая без гц работает так ахуенно, что из-за неё в к/н 2+ года пытались протащить мультитрединг (кекус).
Тут уж либо надо рвать с жвм и делать нормальный нативный язык, либо жрать кучу говна ради совместимости с жвм которая нахуй не нужна сейчас полезут аргументы про мобильную кроссплатформу, но что ты там нахуй сделаешь кроссплатформой? Запросы на сервер? Чтобы написать к каждому сервису ещё по биндингу и ебаться с форматами данных/тредами/итд?
> нахуй не нужна
Нахуй не нужна в нативной разработке. Хотя хз кому она вообще вне жавы может понадобиться. Написать утилитку которую можно будет и на сервере с JIT-ом гонять, и на клиенте без прогрева запускать? Ахуеть.
> Умеют примерно все, да и нахуй не нужно с приходом васма.
Ничего не понял.
Но со всем остальным согласен.
А вопрос то был чего они тогда непереносимый код генерируют для ПОЖО если есть претензия на крос-питушение.
> нахуй не нужно с приходом васма
В васме нет доступа к DOM, принципиально. Годится исключительно для тяжёлых вычислений без интенсивного обращения к функциям JS.
> ради совместимости с жвм которая нахуй не нужна
То есть высрать очередной язык без инфраструктуры, тулинга и либ? Котлин создавался как улучшенная джава, а не как новый язык, и одна из основных целей - сохранение совместимости с джавой. Это как C и C++.
>> if (javaClass != other?.javaClass) return false
О боже мой, нет.. НЕЕЕТ...
ну нахуя они это сделали
name?.obj!.test() - я не понимаю в чем смысл, если name нульпоинтер то оно мимо этой проверки пройдет и я не буду знать почему у меня нихуя не работает, а на obj нульпоинтер оно просто встанет и все. Хуяк и программа умерла (может кстати из за этого переменные терялись) кому вот это жизнь упрощает? Нет ладно бы еслиб это опция была, но в свифте том же если вот эту говнину не расставлять оно или ворниншует или не компилит вообще.
>пик
Блять да это прям тот же свифт. Нет, в общем нахуй, не мое это такого рода языки, я не понимаю мышление тех кто их создает.
А что ты предлагаешь вместо этого?
Использовать KClass из kotlin-reflect, подключая отдельную зависимость?
Ты дурачок какой-то. Принудительно извлекая что-то ты литерали говоришь я знаю что делаю, но судя по крашу нихуя ты не знаешь, и язык, который позиционирует себя как типобезопасный, пытается защитить тебя от этого обращая внимание на проблемные места. Подумай нахуя в замыканиях свифта везде заставляют селф расставлять и почему нет казалось бы такой очевидной вещи как доступ к символу строки по целочисленному индексу.
Конечно не понимаешь, ты же не писал на них не строчки.
И нихуя не тот же свифт, он куда чище.
То есть, разрабатывая под платформу на jvm ты хочешь чтобы платформеный код запускался на javascript, а javascript запускался для jvm? Семен, ты перепил.
Сам язык мультиплатформенный. Один синтаксис, одна стд, одна любовь. Понятно что у тебя не получиться писать под ардуину на jvm, или чтобы jvm вдруг неожиданно появиться браузерный DOM.
Хех ну да, еще бэк и даже фронт на котлине пишут, ведь есть korlin-js! А работы нет
Очередной пук-среньк, не имеющий к реальности ничего общего (см. пикчу).
Просто инфоцыгане не очень грамотные технологически и если берут котлин то проводят "прямую" только для андроид. Но в реале, даже мобильные приложения, нередко требует для себя сервер (бэкенд). Ну и надо быть дебилом необязательно малолетним, чтобы зная котлин не писать бэкенд на котлине, тем более когда там есть родные корутины теперь не надо плакать и страдать кушая всякое громоздкое реактивное программирование, или куда страшнее, писать на го
Лично я к мобильной разработки не имею никакого отношения, сейчас пишем все на котлине, причем поверх старой жабы если рефакторим, то сразу в котлин
https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=query
Забавно что на той же машине, некоторые результаты выдали на 23% ниже в сравнение с прошлым раундом.
Лол, этот парниша пошел дальше разводить со своим языком и пилит уже шустрые бенчи. Рано вы V тред закопали.
Лан, буду в следующий раз репортить всех кто доминирует в споре.
Получилось норм, но не понял, чем он сильно лучше джавы.
https://github.com/Stingray42/coffee-machine
Рейт
Что тебя расстроило, мой друг? Ты хочешь об этом говорить? Вступай в нашу группу анонимных джава-кодеров
То, что кроме огромного количества сахара в Котлине особо ничего полезного нет.
А что там еще должно быть? Я просто не в курсе, может уже появилось место где что-то обещают и ты разочаровался?
Скажи, что там должно быть еще, чтобы это стоило твоего внимание? Совместимость с .NET? Компиляция в го-рантайм? Автокомплит по голосу? Совместимость с TI-99/4A?
Никогда не поздно вернуться к javascript
Мне лень смотреть ссылку, то неужели там наконец-то велосипед BigDecimal?
Кто не в курсе, на котлин-нейтив там что-то пилят для webAssembly, в подкасте вскользь это упоминают.
Возможно, доживем до того момента, когда на хорошем языке можно будет писать и фронт и бэкенд.
https://habr.com/ru/company/jugru/blog/441140/
А, ну и properties вместо fields - тоже классно. Но синтаксис аксессоров всратоват.
Собственно этого в джаве и не хватало. Никто не хочет вторую скалу, нам просто хочется работать в инфраструктуре джавы, но только чтобы было удобнее.
Я не совсем понимаю о чем ты. Но думаю, тут речь не про "написал один раз, работает везде", эту похлебку покушали за тебя другое поколение. Тут речь, что ты на одном языке пишешь под разные платформы.
Согласен что код на ардуино будет совсем другой чем код для DOM браузера? Но согласен, что на ардуино или в браузере будет приятнее писать на котлине (чем на квази С++ и жабаскрипте)
document.getElementById("elem", Div::class).innerHTML = "Hello, world"
</script>
Интересно, они тоже учат детей ruby или же дают выбрать, когда те подрастут?
Равенство (сравнение) может быть самой частой операцией, эти нано-фиксы будут ощутимы для большого приложения
Потому что у него синтаксис сложнее. А ещё на него тратят меньше денег т.к. он их не приносит.
Ты не сможешь просто так дергать код из js, native, jvm одновременно. У тебя будет только кусок общего кода и все.
Это даже характерно для js на фронтенде и node.js.
Мне не надо ничего дергать, мне надо объекты сравнить.
Дочитал я до инлайн функций и не локальных return-ов, впечатление двоякое. Было бы конечно хорошо, если бы они инлайнились в рантайме, но это похоже не возможно, я ведь правильно понял они инлайнятся во время компиляции? У меня не складывается в уме как дела обстоят с динамически подгружаемыми библиотеками.
bool jvmEquals() { ... }
bool jsEquals() { ... }
bool nativeEquals() { ... }
bool equals() { if (isJvm()) { return jvmEquals(); } ... }
Ну будет Void, а не Unit. Ну и сам подумай, Void и Nothing, как бы синонимы по смыслу и получается как то не красиво, а тут Unit и Nothing.
Для заглушки неиспользуемых типов в генериках, такой void-для-генериков.
Вот есть у тебя например какой нибудь модный реактивный поток Publisher<Data, Error>, а ты знаешь что в нём не нужно хэндлить ошибки и суешь в Error Nothing. inb4: void это полноценный тип и компилятор его не может игнорить.
По моему ты не прав, он помечает что метод ничего не возвращает, и кидает исключение и больше ничего.
Дополню этого. Например, пусть мы хотим реализовать метод let.
fun <R> let(block: (MyClass) -> R): R
На Java пришлось бы делать два метода let, один для void-функций, другой для функций, возвращающих что-то. А на Kotlin достаточно одного.
так не* получится
Короче компилятор будет знать что если где то вызывается функция с нотхин' то, после вызова ничего далее исполняться не будет
Объяснили выше.
Например, если функция всегда кидает исключение.
Полезно для всяких вспомогательных функций, формирующих исключение и кидающих его.
Пример использования:
fun throwException(): Nothing
fun doSomeComplexOperation(): Int {
if (some condition) {
return <some complex expression>;
} else {
throwException();
}
}
Если бы throwException имел тип Unit, пришлось бы после его вызова явно писать return. А с Nothing компиляор понимает, что после вызова throwException произоёдет исключение, и не требует return.
>А почему не Publisher<Data, *>?
Потому что СТРАШНА ВЫРУБАЙ. Посмотри на скалу и её генерики с _ через _, и поймёшь.
А если страшна, то не надо было в котлин такое вводить. И in\out вместо ламповых extends/super тоже
Отличный пример кстати на жабе всегда пишу:
public static <T> T throwNotImplemented() {
throw new ...
}
И потом:
@Override
public int f() {
return throwNotImplemented();
}
Если страшна то просто не надо усердствовать со всякими операторами, иначе будет хаскель.
>И in\out вместо ламповых extends/super тоже
Ты же понимаешь, что уже готов кушать каки просто из-за того, что привык? Зачем делать новый язык и тащить туда всё говно?
Как ты их сравнишь код? Тебе нужен общий код для двух и более решений и только его ты можешь на всех сторонах сравнить. Вообще иди читай уже, у тебя каша в голове, ты словил триггер на сравнение там, где не надо
Есть этому объяснение, более качественная система типов.
Мотивация понятна.
Но я в приципе не понимаю, как такое можно было бы реализовать с поддержкой нелокальных return (а без них смысла в inline-функциях особо нет).
Вообще меня котлиновские инлайны удивили, полный контроль и определенность, а не как в сплюсплюс, может заинлайню, а может нет.
Так основной смысл инлайна в котлине не в увеличении производительности, а в возможности менять локальные переменные из коллбэков, переданных в инлайн-функцию.
В C++ это есть и без инлайна, так как в лямбде можно захватить локальные переменные по ссылке и менять сколько хочешь, только это немного опасно тем, что лямбда может вызваться после выхода из функции, локальные переменные которой модифицируются.
Тут некоторым нужно несколько раз объяснять.
Замыкание есть и не на инлайн функциях, это вообще основная фича лямб. Основная вкусняшка инлайн функции это reified type
Ого, а ведь это круто.
Я думал, что в котлине так же как в Java - не-инлайн-лямбды могут использовать только effectively-final переменные. Оказывается, что не так: вместо этого компилятор оборачивает локальную переменную в контейнер, ссылку на который передает лямбде.
Ну тогда да, плюсами inline остаются только reified и non-local return.
Что касатеся C++, то reified там просто везде, потому что только так работают темплейты. А non-local return там нет в принципе.
Не могу понять, почему они обязательно требуют inline? Ведь то же самое можно сделать автоматическим добавлением параметра KClass.
То есть так, как это сделано с неявным TypeTag в Scala.
Тут большинство - ынтырпрайз джависты на работе, которые в свободное время тыкают котлин. Ну и немного андроидеров.
Рассчитывается на интероп с джавой. Ну и нельзя нарушать абстракцию байткода, придется создавать целый слой костылей над костылями, погоняя костылями (причем даже там где это не нужно).
Я уже молчу про производительность, с такими метеоданными можно получить второй питон.
У мобильщиков каникулы, ближе к сентябрю вернуться. без шуток, мобильная разработка это центр притяжения юных вкатывальщиков школьно-студенческого возраста.
На работе тоже тыкаем.
> Рассчитывается на интероп с джавой
Методы с reified-типами и сейчас не могут быть вызваны из Java
> Ну и нельзя нарушать абстракцию байткода
Ничего от этого не нарушается.
Просто в сигнатуру метода добавляется ещё один параметр типа KClass.
> Я уже молчу про производительность
Довольно часто метод делают reified чисто для того, чтобы использовать рефлексию на типе. В этом случае никаких проблем с производительностью не будет.
Но так не всегда, да. Например, filterIsInstance, он бы действительно потерял в производиельности.
> но чего-то я, видимо, не понимаю
А что получается?
По идее delay должен кинуть CancellationException, и если ты его нигде случайно не поймал, то корутина должна завершиться.
>Методы с reified-типами и сейчас не могут быть вызваны из Java
Никто не обещал интероп с котлином. О чем ты? Сейчас бы повозмущаться тому, что жабаскрипт не может в фичи тайпскрипта, например получить доступ к типам
>Ничего от этого не нарушается.
Ты просто тупенький.
>Просто в сигнатуру метода добавляется ещё один параметр типа KClass.
Действительно, просто. кстати, зачем добавлять в сигнатуру, когда можно добавить информацию сразу в тело функции?? Но это тупо, даже не хочу объяснять. Другая фишка это добавлять к объектам мета-данные. Но тут мы пришли к динамическому программированию и его проблемы производительности
>Довольно часто метод делают reified
Нужен для того чтобы делать красивой API, и не для попыток натянуть сову на глобус.
> Никто не обещал интероп с котлином. О чем ты?
Ну ок. Тогда неясно, как такой способ реализации reified нарушает интерпоп с Java.
> Ты просто тупенький.
Это не аргумент.
> когда можно добавить информацию сразу в тело функции
Речь идёт о реализации reified без требования inline. В этом случае так не сделать, так как функция может быть вызвана с любым типом.
>
> Не могу понять, почему они обязательно требуют inline? Ведь то же самое можно сделать автоматическим добавлением параметра KClass.
KClass не передает всей возможной информации о типе. В некоторых случаях этого достаточно, но если ты хочешь узнать например nullability типа или его дженерик-аргументы, то через KClass это не сделать.
Могли бы передавать KType, но его сложно сконструировать. В большинстве случаев это был бы оверкилл.
> Могли бы передавать KType, но его сложно сконструировать.
В Scala есть TypeTag и ClassTag, и можно выбрать, что конструировать. Аналогичные выбор можно было ввести и в Котлине. К тому же конструировать надо всего один раз за время работы программы.
А вообще, из дискуссии тут и размышлений, похоже на то, что reified сделали требующим inline тупо для простоты и производительности.
Всё же inline - не такая и большая проблема. Да и reified нужен нечасто, а для функций, которые не просто получают KClass из reified и передают его другой функции - ещё реже.
Кстати, как можно просто найти все reified-функции в исходниках или в байткоде? Понятно, что можно найти парсер языка, натравить его, и обработать результаты. Ну в рантайме через classpath scanning и рефлексию. Но может есть что-то, позволяющее сделать такое в 2 клика.
Решил проблему. Перенёс часть кода в invokeOnCompletion и вынес инициализацию Job из оверрайд геттера. Сначала, правда, пофиксил иначе - добавил булевый volatile для проверки состояния, но это слишком грязно.
override fun runOnExecutor(executor: ExecutorService) = Unit
Типо как в яве:
void f(Foo v) {
// Do nothing
}
Потому что ещё можно написать не
= Unit
А
{}
Это вопрос по код стайлу, на сайте у них рекомендации не нашёл
В чем кардинальное преимущество котлина перед явой?
У скалы была-есть серьезная поддержка ФП, которая обеспечила ей определенную узкую популярность, икоторая дает возможность пользоваться преимуществами ФП парадигым.
А у котлина то что, все никак не въеду. Чуть подкрашенный синтаксис и корутины - это все?
А ну да, и это все это опять будет неотрывно юзать яву, ее библиотеки и так далее.
Код-стайл нужен для улучшения сопровождения кода (твоего восприятия кода).
Запись "= Unit" больше выпендреж возможностей котлина, чем реальная потребность. Поэтому новичок или уставший человек может подвиснуть на этом участке кода, когда в действительности этот человек должен за один взгляд проглотить и побежать дальше.
Поэтому, с моей точки зрения, "{}" лучше и привычнее, но поверь, найдутся тимлиды, которые будут топить ровно наоборот, потому что они победители по жизни победители специальных олимпиад. И если это хер будет из какого-нибудь гугла, то это станет станет стандартом де факто. А пока это не стало - используй то что понятнее, возможно даже через год, читая свой код ты сам на нем случайно не запнешься.
И да, визуально это пересекается с нормальной сигнатурой (двоеточие)
fun runOnExecutor(executor: ExecutorService): Unit
Что тоже плохо.
И не называй методы - функциями (а то можно ввести в заблуждение)
>У скалы была-есть серьезная поддержка ФП, которая обеспечила ей определенную узкую популярность
Нет, нихуя. Скала взлетела потому что жава в то время обновлялась раз в 5 лет, и то нихуя нового в сам язык не добавляли, а из конкурентов на жвм были только всякие кложа (говно говна) и груви (годный язык, если бы там были нормальные типы а не динамичкское скрипто-испражнение — скала бы так и осталась в своей швейцарской консерватории а котлина бы никогда и не было).
Сейчас же, когда каждые пол года выкатывают новую джаву с самыми сочными плюшками — ни скала, ни котлин никому нахуй не упёрлись. Только гуглу, который нагнул оракл до очередного всплеска NIH-синдрома и очередного го-дарта-2.0.
Если твой разум не видит для себя преимущества, то их значит и нет. Прекращай мучить себя странными вопросами. Этот язык не нужен тебе. Мы не секта по типу сообщества го или раста, мы не собираем адептов. Тут просто люди, которые тупо попробовали и им зашло. Никакой магии нет.
Забавно, что несколько лет назад я поплювался от котлина и не стал даже особо играться с ним, а вот сейчас я кроме него уже не могу ни на чем писать.
Че за демагогию ты развел?
Я вприцнипе не смотрел на этот язык, кроме пары статей, и спрашиваю у тех, кто пользуется им давно - в чем преимущество.
Прочитанное в обзорах меня вообще не убедило, выглядит как беттер-джава с подкрученным синтаксисом, как будто бы явовский плох.
Странно, что для человека, занимающегося технарством, этот вопрос непрозрачен.
Забавно что в 2020 до сих пор есть люди, которые воспринимают мегакорпорации как единую человекоподобную личность. Поверь, в гугле 100500 загонов, где одновременно могут пилить го, дарт, андроид, фуксию, V8 и коммитить в котлин. Ресурс компании позволяет, компания потом тупо выбирает что выстрелит с моей точки зрения идиотский подход, где гугл больше закрепляет позиции по брошенным проектам.
Котлин не гугловый проект. Откуда вы такие лезете, тоже непонятно, видимо где-то появился очередной пастух-ютубер, который вам заливает.
>>29566
Кардинальные плюсы котлина - он убирает бойлерплейт джавы, сохраняя нормально интероп, при этом оставаясь практичным языком, а не потоком говно фантазий очередного гения. Даже тот же груви местами вызывает изумление, про скалу вообще молчу (а за кложу просто страшно).
Другой момент, джетбрейнс пытаются воплотить самые влажные мечты любого тру-программиста, это сделать один язык для всех платформ. И это круто, не факт что получиться, но к этому уже нужно стремиться, а то как кустари каждый в своем загоне, на своем языке пилим одни и теже велосипеды, 21 век как никак.
>Странно, что для человека, занимающегося технарством, этот вопрос непрозрачен.
Странно что ты себя считаешь технарем. Открой любую книжку или конфиренцию двухлетней давности и там будет вводная глава "почему котлин". А если хочешь технарский ответ, давай конкретнее по свойствам и мы с тобой обсудим.
>Странно что ты себя считаешь технарем.
Да я как бы нигде этого не утверждал, ты снова не можешь в информацию и логику.
>Да я как бы нигде этого не утверждал, ты снова не можешь в информацию и логику.
Ну вот видишь, поэтому я с тобой и говорил как с гуманитарием. и это было правильно, раз ранее прочитанные технические факты тебя не убедили совсем
Ты опять не можешь в логику, прекрати обсираться, какой ты технарь. Отсутвие утверждения не равно отрицанию, что ты несешь.
>с моей точки зрения идиотский подход, где гугл больше закрепляет позиции по брошенным проектам
А с точки зрения гугла — во всём нужна конкуренция. Тащемта, у тебя нормальный взгял среднего совка.
>Котлин не гугловый проект.
Если бы не гугл с андроидом у котлина не было бы и трети текущей популярности, ты о чём вообще?
>Даже тот же груви местами вызывает изумление
Какими, например? Он не взлетел просто потому, что а) никому кроме апача нахуй не нужен, б) это динамический язык на крайне консервативной платформе. Но в своё время был просто ебать какой бомбой, в отличие от котлина, который от жавы серьёзно отличается только наличием null safety и пропертями, которые уже очевидно, что затащат в джаву ещё через год-другой. Котлин без андроида ещё лет через 5 мы обсуждали бы точно так же.
>Другой момент, джетбрейнс пытаются воплотить самые влажные мечты любого тру-программиста, это сделать один язык для всех платформ
Так они уже есть, их аж 2 — жс и ц++. Надеюсь эта универсальность хоть кому-то что-то хорошее в жизнь привнесла, кроме испорченной крови и посаженных нервов, лол.
>Беттер джава
Хорошо не хуже, как говориться, и на том спасибо.
Ты же понимаешь что программирование сложная штука, а наш мозг ограничен в восприятии?
Вот смотри, у меня есть друг, ему котлин нравится за красивые лямбды "{...}" и возможность писать DSL. У него такая работа, он там грубо конфиги пишет и ему это нравится. Ему так же нравится что не нужно больше писать на говно-питоне. Его не втыкают там корутины, ему не нужно было писать геттеры или сеттеры. У него свое восприятие плюсов языка, но как факты это все сомнительно, да?
Если ты ничего для себя не нашел и тебе кажется что это сахар поверх жабы, то так оно и есть (для тебя), что ты от нас то хочешь услышать? Неведомую скрытую серебряную пулю, которые скрыли от тебя маркетологи и евангелисты языка?
>Тащемта, у тебя нормальный взгял среднего совка.
Что за бред? Кладбище проектов, рождает пониженный интерес к новым, а значит к убыткам там, где их возможно не было бы. Каким местом тут совок вкрался, когда тут проблема маркетинга, я хз. Но раз ты такой шизик, то кормить я тебя больше не буду.
Я привел пример скалы, которая фундаментально отличается от явы наличие либ, позволяющих писать код без сайдэффектов и тд.
Тебя, как я понял, задел ярлык беттер джавы - но по описанию это так. ЧТо же, судя по всему эта ниши всегда будет, ее кто то должен занимать. Не понимаю, в чем ваша проблема с принятием этой нишевости.
Ты сейчас ахуеешь, но победа в конкуренции — это когда конкуренты сдохли. Да, это не эффективно на старте, но эффективно на долгой дистанции. А если твой проект начинает задыхаться — значит он проиграл и его легче добить. Стоимость гугла (Alphabet Inc) как бы сама за себя говорит.
Тащемта, посмотри на космическую отрасль США. Там сейчас на коне SpaceX, а правительство уже активно кормит его конкурентов. Это эффективно? Нет. Где эффективный Роскосмос у которого 0 конкурентов и 20 лет монополии на рынке? Пускает ракеты которые разработаны несколько десятков лет, зато эффективненько, лишних денег на конкуренцию не тратится.
Тащемта, и так во всём, правда никто не понимает что проблема-то в головах.
>Если бы не гугл с андроидом у котлина не было бы и трети текущей популярности, ты о чём вообще?
Поверь для бэкенд разработчика от этого ни тепло ни холодно порой даже мешает.
>Вот смотри, у меня есть друг, ему котлин нравится за красивые лямбды "{...}" и возможность писать DSL
Ты ему покажи груви, откуда котлин это всё позаимствовал. Он ахуеет ещё сильнее.
Меня ничего не задело, я просто пытаюсь общаться с каждым на их уровне. Если котлин можно назвать "лучшей джавой" то это хорошо. Потому что скалу, я так назвать не могу. Не скажу что хуже, скажу что она "налево".
Только если этот бэкэндер работает в стартапе и сам решает на чём писать. В любой большой компании менеджмент хотя и так почти везде пошлёт тебя послал бы нахуй, если бы котлин не бампнул бы рейтинги и кол-во вакансий с "Kotlin" в названии за счёт гугла, ведь и не было бы аргумента что "найти разраба на котлине относительно легко".
Я ему это по началу и говорил. Ему как раз зашел типизированный DSL. Это тот случай, когда маркетологи попали точно в цель. возможно единичную, но блин, такие вот кейсы оказывается бывают. Он даже мне объяснял почему DSL на динамических языках это не очень удобно и почему котлин тут ему помог. Хотя не отрицаю тут у него вау-эффект.
Ты очередной диванный HR.
Поверь, снизить усталость ребят от жабы, которую они ябут 10-15 лет и уже краем глаза смотрят как устроить мне очередную текучку кадров, это порой важнее, чем найти жабиста и натянуть на него котлин (который хорошо натягивается, в отличие от совы).
Ты сам написал
>Ты очередной диванный HR.
хотя про них там не было ни слова, а сам высрал типичный эйчарский аргумент в пользу стартапов "мы не можем заплатить конкурентную зарплату, но технологии нескучные!".
Проблема в том, что программисту не объяснишь, что на следующей работе его ждет очередное легаси. А тут есть шанс освежить свое говно чем-то новым, при этом вменяемым, если вспоминать скалу.
Мы явно не модные и молодежные стартаперы, просто программисты выгорают.
А так это реально целая проблема, куда не посади программиста, он превращает все в легаси. Сделай язык, который убирает энтропию кода для программиста - станешь известным новаторам тысячелетия, может даже богатым.
Я говорю, "ты плохой технарь", ты возражаешь и говоришь что "не говорил что технарь".
Раз это возражение и у нас всего два состояния (технарь или не технарь), а по технарю ты возразил, то я смело могут делать вывод что ты гуманитарь. И не важно, что ты там подразумевал, тут как сказано так и понято.
То есть, по де-факто правилу (хз какому там), ты должен был уточнить, чтобы я тебя правильно понял. Но представь как этого глупо выглядело бы -"Я не говорил что я технарь, но я технарь". Абсурд, да?
В общем, ты и гуманитарь так себе.
>Я говорю, "ты плохой технарь"
>Странно что ты себя считаешь технарем.
Вранье не тянет даже на демагогический прием, прекрати свой позор, ты обосрался уже давно и много раз.
Судя по треду, на картинке ты.
Что за чушь? Каким образом Unit портит читабельность, если это явное указание на возвращаемое значение и ошибиться в этом случае просто невозможно, какой бы ни сложной не была функция?
Нет, просто любая неявная декларация - минус к удобству.
Потому что автовывод сигнатуры функции (возвращаемого значения) зло и хипстерство:
fun foo(x: Int) = someFun(x)
Когда должна быть допустим только такой вариант
fun foo(x: Int): String = someFun(x)
Это удобно в некоторых случаях, но дай только такую возможность, начнут срать везде
Пспс, поэтому синтаксис явы и хорош.
Да, это бойлерплейт, но зато наглядно все написано и читается лучше, чем во всяких котлино-скалах
У всего есть своя цена, но я согласен, что джава код можно бегло без IDE прочитать на каком-нибудь гитхламе.
Правда это справедливо для небольшого кода, а серьезно читать код без IDE, это уже идиотизм. Поэтому не особо большая потеря, за удобства автовывода и более чистого кода (визуально).
Исключение, конечно, сигнатуры функции. Это то еще зло.
>читается лучше
Ровно до того, пока не начинаешь недостатки языка через паттерны реализовывать.
Стоп, речь не об этом. Я ответил на это:
>Запись "= Unit" больше выпендреж возможностей котлина, чем реальная потребность.
>Поэтому, с моей точки зрения, "{}" лучше и привычнее
А в том виде, который описал ты, это действительно лишнее, но только в том случае, если этого не требует нуллабельность(например, когда возвращаемое значение автоматически преобразовывается в Type!) или вариантность - когда происходит приведение к верхнему объекту, если отсутствуют ограничения проецирования. В таких случаях тип нужно указывать явно.
>наглядно все написано и читается лучше, чем во всяких котлино-скалах
Кстати говоря, соглашусь с тем, что джава хороша с точки зрения наличия защиты от дурака. В Котлине чистота кода во многом зависит от тебя самого, от соблюдения правил написания читабельного кода. Не знаю, правда, можно ли считать это плюсом, это скорее особенность. Так или иначе, это ещё одно требование, в отношении которого ты должен быть компетентен, говоря о Котлине.
Очевидно что "= Unit" заглушка для будущей процедуры (функции которая не возвращает значение). А значит в любом случае она будет описана тело через "{}".
Поэтому и понты.
Моя главная претензия в том, что функции и методы должны всегда явно описывать сигнатуру. Не писать явно сигнатуру зло. И куда хуже если завтра вообще будет там не Unit, а другая функция которая возвращает тип.
В любом случае ты залипаешь на эту функцию, тратя свое время, потому что в ней ты не видишь ни сигнатур ни API.
В третьих, нельзя оставлять валидные заглушки. Всегда нужно ронять исключением, в котлине вроде даже есть TODO-сахарок-функция.
Самое первое что в голову пришло и вспомнилось - визитор, потокобезопасный синглетон. А вообще я даже тебе картинку сделал, ибо мальчик уже взрослый и можешь сам гуглить.
>можешь сам гуглить
На дваче спрашивать хоть и медленее, зато релевантность выше. Всегда найдется лошок, который все за меня сделает.
То что сейчас в джаве воспринимает стильно, создавалось кровью и потом. Сходите к плюсовикам, там до сих пор не договорились о стиле.
То есть, заслуга эта не джавы, а комьюнити. А то до сих пор бы сейчас встречали код с публичными полями вместо геттеров и сеттеров.
Когда ты уточняешь что-то, это ты ставишь себя на ранг ньюфага. А вот, отвечающему по кайфу чувствовать превосходство своего интеллекта. На всем этом и держится вся эта форумная или SO фигня, тешить свое самолюбие отвечая на очевидные вопросы (поэтому на сложные вопросы фиг когда ответа дождешься, а в чатиках максимум помогает по синтаксису, ибо это легко и быстро).
Ты думаешь что ты победил, но на самом деле ты просто покормил мое самолюбие, и где-то подсознательно ты это почувствовал, написав такой оскорбительный пост, чтобы в ответ задеть мои чувства. Но нет, я уже насытился и ощущаю превосходство над тобой. Как-будто ты лежишь у меня в ногах и что-то там пытаешься тявкнуть.
Согласен, но всё равно считаю, что в самой Джаве больше ограничений.
>>30023
Пиши как угодно, если это не во вред, вот и всё. Все те случаи, которые ты описываешь, сводятся к тому, что код должен быть достаточно информативным, поэтому нужно использовать все средства, которые доступны. Функции/методы должны быть описательными, не вызывающими лишних вопросов. Увы, некоторые этим пренебрегают, но от этого никуда не деться, сам понимаешь. Тут даже дело не столько в языках, сколько в людях, которые пишут код. Тем не менее, на Котлине можно писать чисто. И, разумеется, нужно.
Так и это не ответ, а утверждение, суть которого я развернуто изложил.
В жабе надо делать бочку с методами потому, что авторы не осилили значения по умолчанию.
>что-то наподобие RoR
Тонна магического необузданного говна?
Spring, play2
Тут может что найдешь
https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=fortune&l=xan9tr-1r&c=6
>Сейчас уклон в около модульную архитектуру
И пососы с факапами на интерконнекте при малейшей нагрузке. А при чуть более сильной - лавинообразное складывание всех микросервисов у БУТЫЛОЧНОГО ГОРЛА.
Я ничего не говорил про микросервисы, я говорил про модули.
Например ОРМ жестко не зашит в фреймворк.
И это самое смешное во всей этой микросервисной кухне - по сути взяли хипстанов и заставили заниматься по-сути тем же, чем занимаются на протяжении всего своего существования джунипер и циско.
Только вместо ебейших седых инженеров с годами опыта создания всех этих интернетов и его протоколов за плечами - хипстеры со стремительно ТЕРЯЮЩИМИ МОДУ СТЕКАМИ.
https://www.reddit.com/r/Kotlin/comments/hdbqs1/within_24_hours_kotlin_will_overtake_the_scala/
Команда сообщества котлин, всегда поможет в трудную минуту выбора стека.
Ну, как и говорили, я обосрался без знания джавы. Не знаю что делать, смотрю и в вакансиях ее еще требуют, а котлин в довесок идет.
Джава же огромная, там учить можно бесконечно.
Джава весьма примитивный язык, она не огромная
Что в джаве огромное - так это библиотеки, включая стандартную.
Сам синтаксис в джаве простейший, фишечек там минимум. Проще, наверное, только в сишке и го. Даже JS сложнее.
К тому же, если учишь Котлин, то эти библиотеки тоже надо знать, потому что они используются и в котлине.
Обосрался в каком смысле этого слова? Не осилил мануалы, где всё сводится к "в отличие от Java..." хи-хи
От Java-джуна требуется знание SE с фишечками из восьмёрки, sql. ООП Плюсом будет, если ты хоть сколько-то поковырял EE и осилил сервлеты, что-то знаешь о Спринге и используемом стеке как таковом (зачем и почему). Паттерны и иные концептуальные вещи ситуативны и напрямую зависят от серьёзности задач на предлагаемой должности. Важно то, что в энтерпрайзе ты не можешь не знать Java.
> От Java-джуна требуется знание SE с фишечками из восьмёрки, sql. ООП
> Немного сервлеты и спринга
Правда ли, что для джуна этого сейчас достаточно?
Я вот смотрю одну из вакансий на джуна и вижу, что требуется опыт в Hibernate и Spring. Но неясно, какого размера опыт требуется.
Одно дело написание TODO-листа, другое дело написание относительно крупного проекта с использованием advanced-фич Spring и Hibernate (например, для Spring собственные BeanPostprocessor, scope, для Hibernate какие-то ебанутые маппинги с кастомными типами на несколько столбцов).
С требованиями SQL тоже неясно. Одно дело - уметь простые select+join+group by. Другое дело - ебанутые запросы с window-функциями, при том умение их оптимизировать, а также хорошее знание реализации изоляции транзакции в конкретной БД,
Они пишут это для того, чтобы кандидат имел представление о том, с чем придется работать, и ожидают, что ты имеешь достаточный уровень знаний, чтобы решать ту часть задач, которую тебе делегируют. Очевидно, что тебе не будут давать сложные задачи, потому что это просто невыгодно, так что бояться этого не нужно. Размер опыта условен и предполагает лишь то, что человек способен ориентироваться в рабочем процессе и не потеряется на пустом месте. Тут нужно не гадать, а пробовать свои силы на интервью, заодно и свои пробелы найдёшь.
> и ожидают, что ты имеешь достаточный уровень знаний, чтобы решать ту часть задач, которую тебе делегируют
Ну так кандидатов, которые имеют достаточный уровень знаний для решения задач, существенно больше, чем число вакансий, разве нет? Поэтому чтобы устроиться на работу надо знать больше, чем реально нужно для решения задач.
Особенно сейчас с карантином, зашёл на hh и поразился, как мало стало джунских вакансий.
А я и не говорил, что не нужно знать больше. :)
Я говорил о требованиях работодателя, а не о конкуренции, которая является отдельной темой. Возвращаясь к требованиям, важно понимать и то, что границы размыты слишком сильно, равно как велико и количество факторов, которые влияют на положительный результат трудоустройство в той или иной степени. Дело тут вот в чём: "достаточность" собственных знаний условную готовность довольно сложно оценить, поэтому нужно начать пробовать собеседоваться на определённом этапе, когда ты понимаешь, что можешь вникнуть в суть проекта и что-то предложить.
Кандидатов всегда будет много, но если ты усердно трудишься, тебе достанется место того, кто трудился хуже тебя.
Все спортсмены на месте
/r/Kotlin/ 33.887 Members
Котлин идет по пятам
Стоит ли в 40 лет учить джаву? Есть ли будущее у котлина?
Ебать ты здоровый
Он самый.
Пацаны, есть ли среди вас апвокеры?
> better Java
> стандартная либа отдельным пакетом
> "стандартные" корутины отдельным пакетом
> рефлексия отдельным пакетом
> скрипты .kts не могут импортировать друг друга
> для юзания фреймворков, использующих кодогенерацию, нужно опциями компилятора отключить final by default
> отдельный плагин компилятора для поддержки спринга
> отдельный плагин коомпилятора для поддержки JPA
> ::class.java
> @JvmStatic
Нет, спасибо, вернусь к вам через пару лет.
>отдельным пакетом
А как должно быть? Зачем тянуть то, что может не использоваться?
>для юзания фреймворков, использующих кодогенерацию
Например?
>отдельный плагин компилятора для поддержки спринга
>отдельный плагин коомпилятора для поддержки JPA
Не проблема. В целом, работать удобно.
> А как должно быть? Зачем тянуть то, что может не использоваться?
Ну бля, это же стандартные вещи, которые с большой вероятностью будут использоваться везде, и они просто в силу стандартности должны быть из коробки, иначе стандартными их называть нельзя. Всё равно каждый первый проект их тащит. Так можно до каких-нибудь крестов докатиться, где без сторонних библиотек максимум с файлами можно поиграться. Вообще, сильная привязка к тулингу, сложно запустить простые тестовые примеры без долгой предварительной конфигурации, а даже для хеллоуворлда с корутинами нужно создавать помник на полсотник строчек. В реальном проекте без этого не обойтись, но обучению не очень способствует.
> Например?
Собственно, спринг, хибернейт, да хоть Java EE. Некоторые аннотации генерят код, чтобы под капотом унаследовать какие-то классы и что-то с ними делать. Причём делается это в рантайме, ибо компилируется без ошибок, а при запуске стектрейсит.
> Не проблема. В целом, работать удобно.
Непрозрачно. Не получается абстрагироваться от деталей реализации, приходится держать их в голове. Да и то, что приходится писать плагины для ядра языка, чтобы поддерживать сторонние фреймворки, выглядит странно. Неужели для каждого нового фреймворка нужно писать по плагину, чтобы доделать язык под них, потому что стандартных средств не хватает?
Впрочем, это всё с непривычки, возможно. Но некоторые решения вызывают очень много вопросов.
Я понял ход твоих мыслей и не буду что-то доказывать, что вывсёврёти, потому что в чём-то сложностей действительно больше. Те же плагины, например, необходимы для того, чтобы не просто добавить поддержку языка давайте просто будем использовать better java , как такового, но и адаптировать новые возможности языка под фреймворк, исключая ограничения, которые могут возникнуть как со стороны системы-реципиента, так и со стороны внедряемого, потому что многие вещи, которые были сильно переработаны в Котлине а в контексте стабильности системы это очень значительно, являются основой реализации фреймворков на Java.
>Неужели для каждого нового фреймворка нужно писать по плагину, чтобы доделать язык под них, потому что стандартных средств не хватает?
Если говорить о Спринге и его структурной сложности, плагин - наименьшее зло.
> стандартная либа отдельным пакетом
> "стандартные" корутины отдельным пакетом
> рефлексия отдельным пакетом
Это норма. Тебе может еще в СТД спринг добавить?
>скрипты .kts не могут импортировать друг друга
Хз что там, но скрипты должны быть скриптами, а не библиотеками питона на тысячи строк. Если уж надумал настрогать утилиту, будь добр пиши как есть в jar с менеджером пакетов.
Но в тоже время соглашусь, было бы неплохо если бы это выглядело лучше.
> для юзания фреймворков, использующих кодогенерацию, нужно опциями компилятора отключить final by default
> отдельный плагин компилятора для поддержки спринга
> отдельный плагин коомпилятора для поддержки JPA
Прекращайте юзать фреймворки с кодогенирацией, спринг и JPA.
Тут они конечно обосрались, но в то же время мне это говно не нужно, всегда пытаюсь котлиновский стэк собрать.
>@JvmStatic
Потому что совместимость.
https://habr.com/ru/post/503956/
Думал, что там будет про конкретные проблемы в дизайне языка, прочитал, хуй там. Вообще, речи в таком духе выдают авторы любых взлетевших технологий, и все говорят только про организационную составляющую, а самой сути нет. Да, он уже отвечал на все вопросы много раз, но смысл от подобных статей, их на хабре сотни по одному шаблону, меняются только имена участников и название технологии.
Вообще, я раньше не понимал, почему все гонят на хабру, теперь, похоже, начинаю догонять.
Тот момент, когда лучше бы он молчал. Со временем, субъективно сложилось мнение, что у него какие-то психологические проблемы, пускай не сильные, но мешающие ему и, мол, от этого, он даже ударился в психологию (такое я часто видел). Это не говорит о нем, как о плохом инженере, но слова о том, что в первое время надо было набрать команду, натолкнуло меня на мысль об очередном "Гвидоподобном гении одиночки" который видит мир через свою призму правильного и не правильного. Но вроде, со временем, он это и сам понял.
Другой момент, сложилось впечатление, что он от него уже устал. В принципе, это нормально, даже у гоферов меняли там людей, хотя он простой как палка.
О проблемах и не говорят. Как бы себя программисты не считали сторонниками точных наук или инженерами, а языки инструментами (ага). Реальность такова что человек субъективно и по своим вкусам выбирает ту или иную технологию (а чаще просто по популярности, чтобы в рынок вписаться) и в конечном счете у него образуются догматические убеждения. И если начать говорить о недостатках, то можно отпугнуть оставшихся (мало кто понимает, что недостатки есть всегда).
При всей моей любви к котлину, он не получился таким уж гладким как хотелось бы. Конечно, с большими оговорками, но я считаю у котлина наилучший синтаксис на сегодня (имхо) и ближайщее лет 5 точно фиг кто переплюнет. Но этот синтаксис скорее натянут на сову или глобус, чем выглядит продуманной архитектурой.
Котлин бы реально зашел за новую мажорную версию java, чем за новый язык.
Вторая проблема, я не вижу чтобы котлин набирал обороты в мире бэкенда. Да, там на телефонах радуются, но у них там маня-мир на отшибе, со своими блэкджеком. Все эти котлин нейтив, котлин js, multiplatform, их понесло не туда.
https://www.reddit.com/r/Kotlin/ - 34161
https://www.reddit.com/r/scala/ - 34111
Там выше анон писал свою историю успеха. Короче, учи сначала джаву.
У тебя неправильный угол зрения.
Не учить джаву, уча котлин, это как слизать сливки с кофе, но не пить само кофе. Или как купить хороший телевизор, но не включать его.
Именно наличие бэкграунда джавовских либ (дохера их), делает тебя "сильным" программистом. Даже в сравнение с петухоном.
Котлин тебе нужен лишь для того, чтобы писать на джаве более практично и с удовольствием. пока язык не стал по настоящему мультиплатформенным (если станет)
Идея рабочая, так ты и будешь писать, но только тогда когда будешь знать саму джаву.
Не забывай про байт-код, в котором можно утонуть без знания Джавы. Все эти "можно ли сразу в Котлин" - несерьёзно, потому что ты работаешь с JVM и твоя задача - знать всё, что тебе нужно для комфортной работы с ней.
Дополню, забыл ответить анону
>>37941
Я Андроид дев и я ответственно заявляю, что это действительно мертвая затея. Когда ты работаешь со старыми версиями API, ты идёшь в документацию и видишь там код для реализации на Джаве. Когда у тебя что-то падает из-за кодогенерации, ты читаешь сгенерированный код на джаве, где видишь отнюдь не Котлиновский синтаксис, потому что у тебя появляются новые модификаторы, конструкции, всё выглядит незнакомо и хочется плакать, потому что ты вкатывался в Котлин . И придется тебе тратить уйму времени на то, чтобы разобраться. Не стоит забывать о том, что часто приходится работать с Джавовским легаси. Короче, это до такой степени изъезженная тема, что нет сил и желания что-то в очередной раз писать.
Не так часто, как хотелось бы, но суть в том, что от необходимости знать Джаву не убежать
Вкатыш не палится!
Не будь занудой.
>>38060
Ничто не мешает попробовать, не так уж всё страшно, если у тебя есть опыт программирования. В действительности же, соотносимость Джавы и Котлина построена на закономерностях, вытекающих из некоторых недостатков или ограничений первой (только с точки зрения Котлина, предлагаемых им решений и идиом, потому что он, в свою очередь, тоже имеет ограничения, но не об этом), многие из которых довольно очевидны.
Вообще, их сравнение является основой всех ныне существующих книг по Котлину. Я прочитал, как мне кажется, почти все изданные книги и везде первостепенной задачей было показать концептуальную различность. (Что вполне понятно, ведь далеко не все готовы рисковать, говоря о бизнесе, которому не нужны лишние сложности)
Я это всё к тому, что разобраться в этом реально, важно лишь помнить о том, что ты: 1) работаешь с JVM, 2) с большой вероятностью будешь работать с легаси. Пробуй, может легко ухватишься за суть и всё пойдет.
Спасибо, только не пойму почему буду работать с легаси, работать котлинистом я не планирую, просто хочу приложения/игры на андроид попробывать написать, а значит я типо волен выбирать свежие библиотеки/фреймворки для своего проекта
Смотрите, ЭППЛ СИЛЛИКОН ебошит в небо, по тестам и производительности АРМ архитектура как минимум убивает х86 в ноутбуках, но это как минимум.
Сраный проц, позапрошлого айпада в транзит ките уделывает последний I5, Шиндовс пытается в АРМ, но вторая попытка тоже завяла.
И вот я задумался, у нас стоит проблема e-waste и global warming, ну и еще low income countries с poor power grid
То есть, мобилы стали гораздо более производительны к операция/ватт/$ в 4-6 раз чем десктопы и ноутбуки. Сраный ZTE за 8 тыщ рублей в целом имеет железо для поддержки 4 4к дисплеев и полный пакет браузинга-рендеринга-офис джоба-гейминга
Почему бы Андройду не сделать нормальный десктоп мод? тыкнул как ночной мод свитч, подключил к монитору, собпряг уши, мышь, клаву и готово, десктопный браузер-офис-рендеринг-гейминг, миллионы приложух которые будут перепилены под десктоп за полгодика, вот и виндовс пойдет нахуй на свалку.
Через год МакОСь будет запускать все приложухи эпплстора, половину из которых успешно перепишут на десктоповый функционал и экосистема будет намного богаче чем сраный шиндовс.
1) миллиарды бедных людей хотят девайсы и активно уничтожают окружающую среду в попытке заработать на них деньги
2) сами девайсы превращаются в мусор через 10 лет и активно уничтожают окружающую среду
Ну то есть в любой мобиле начиная с 14 нанометрового тех. процесса есть столько лошадок, что она одновременно может выступать персональным компьютером без изъянов, почему бы просто не допилить андройд до уровня ПК? подключаешь мобилу к монитору и вклчаешь полноценный ПК режим, только реально нормальный с нормальным браузером и рабочими приложухами.
Мне кажется это надо форсить прямо сверху кнутом, прямо как аппл просто кнутом делает транзит на свои процессоры, рыночек не хочет, рыночку сложна.
Ты сам себе отвечаешь на вопрос.
1) миллиарды бедных людей хотят девайсы и активно уничтожают окружающую среду в попытке заработать на них деньги
2) сами девайсы превращаются в мусор через 10 лет и активно уничтожают окружающую среду
Зачем что-то менять, когда и так все идеально. 10 лет ты конечно загнул, мне сейчас топ менеджер сказал менять телефон раз 2 года
Или ты хочешь чтобы у всех были твои андроид-пэкашки и миллиарды бедных перестали покупать девайсы?
> почему бы просто не допилить андройд до уровня ПК?
Андроид настолько ущербен в сравнении с настольными ОС, что вместо допиливания андроида легче взять эти ОС и сделать так, чтобы на мобилках они запускались в урезанном облегчённом режиме.
Вообще, уже был Ubuntu touch с десктоп модом, но хз, что там с ним сейчас.
Сейчас допилят вам веб webassembly и будете везде покупать "сайты" веб-приложения на всех устройствах. Не переживайте.
>ндроид настолько ущербен в сравнении с настольными ОС
Так можно просто сбоку практически вторую ось достроить и свич прихуячить
>>38979
И.о. топ менеджера с гугла здесь
По сути, всё движется к тому, что в скором времени смартфоны смогут стать полноценной заменой пк не забываем о том, что для тяжёлых задач можно задействовать технологию облачных вычислений, чье развитие будет только ускоряться, но проблема в том, что успешность этого процесса обусловлена унификацией на уровне технологических стандартов, потому что так устроен рынок - крупнейшие игроки тянут на себя одеяло, форсируя инициативы на основе денежных вливаний и преследуя свои цели. На мой взгляд, чтобы это стало реальностью, необходимы новые технологии, чья "революционность" будет неоспорима ровно в той мере, чтобы идти по пути индивидуальной инициативы было максимально невыгодно. Нужна некая обобщающая парадигма, которая даст возможность развиваться каждому, не выходя за её рамки.
Как только появиться вменяемая голограмма, очки или проекция в глаз/мозга. О смартфонах даже не вспомнят.
>Или ты хочешь чтобы у всех были твои андроид-пэкашки и миллиарды бедных перестали покупать девайсы?
Проблема в том, что продажа каждый год несколько новых миллиардов девайсов не совсем сустейнабл, после 5-6 таких циклов всё вокруг люто засрется если только робототехника не сможет в 99.9% переработку девайсов, но чет особых движений в эту сторону нет.
>Как только появиться вменяемая голограмма, очки или проекция в глаз/мозга. О смартфонах даже не вспомнят.
Мы подходим к S-curve в ЦПУ и ГПУ, после 3 нанометров прирост будет по 2-5% в год
Это надо еще раз в 15 ТДП снижать.
Во-первых, я рассуждаю в пределах ближайших десятилетий, во-вторых, речь идёт о массовом продукте, вероятность убыточности которого сведена к минимуму. Так что, хочется этого или нет, пока ни о каких голограммах и очках в качестве недорогой и конкурентноспособной альтернативы не может быть и речи. Бизнес любит определённость.
котлин учить как первый язык, ну или "без знания джавы" - трата времени?
Сейчас, я думаю, технологии больше в "аккумуляторы" уперлись
Не выгодно и местами будет проблемно
Да, это очень хуёвая идея, несколько раз выше обсуждалось.
>Q: Стоит ли сразу вкатиться в котлин минуя джаву?
A: Нет. Не стоит. Есть точка зрения, что котлин позиционируется как "удобная/лучшая джава", подразумевая то, что ты хочешь писать на джаве, но более современно и практично. Да и глупо игнорировать джавоский мир, который является в топе по числу библиотек и решений, где тебе все равно придется погрузиться когда-то в его синтаксис.
>Q: Но если меня интересует только разработка под андроид, стоит ли вкатываться в джаву?
A: Стоит. Доки старого API на джаве, кодогенерация, байткод близкий к джаве. Ну и легаси, оно тоже на джаве.
Рано
Вы видите копию треда, сохраненную 1 января 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.