Pull to refresh
33
0.2
Send message

Наоборот, я знаю о нём столько, что точно понимаю, что он ухудшенный С++

Расскажите, пожалуйста, поподробнее и, если можно, с примерами для иллюстрации

Вас не смущает, что почти все программисты на Rust это и есть бывшие программисты на C++? Заметил, что язвительные комментарии пишут те, кто просто не осилил переход. Воспринимайте Rust как улучшенный C++, также как C++ был улучшенным Си, и все встанет на свои места.

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

А я еще раз упомяну о другом аспекте, заставившем меня пару лет назад окончательно перейти на Rust. У C++ до сих пор экосистема из 80ых, ее просто нет в едином виде.

  1. Добавление библиотеки почти всегда квест. Многие библиотеки их быдлокодерами разработчиками предлагается собирать и ставить по уникальной инструкции прямо в глобальное окружение (!) для того чтобы использовать в проекте.

  2. Есть сборщик CMake, который состоит на 100% из костылей и по хорошему никогда не должен был существовать. Минимальный проект заводится с простыней кода конфигурации на отдельном недоязыке (обычно ее копируют из старого проекта, поскольку почти никто не понимает как оно работает).

  3. Есть менеджеры зависимостей Conan и vcpkg, которые чуточку исправляют ситуацию, но с отдельными registry, плохой совместимостью между собой, точно также обложены лютыми костылями и точно также требуют конфигурации на ровном месте.

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

Именно из-за всего этого ада в мире C++ стали настолько популярны header-only библиотеки, состоящие из одного заголовочного файла. Вовсе не из-за особых хакерских умений или минимализма разработчиков, а просто для того, чтобы их поделия вообще можно было хоть как-то подключить в другой проект.

А что же в Rust? А в Rust, без преувеличения, лучший менеджер зависимостей среди всех известных мне языков — Cargo, и одна общая экосистема на всех, что дает языку огромный буст к развитию. Чтобы сборка завелась нужно написать... ноль конфигурации! Из коробки действуют разумные соглашения по умолчанию, код лежит в src, точка входа в main.rs. Хотите подключить библиотеку? Одна строчка в Cargo.toml. Хотите подключить из своего registry или из git'а? Уложитесь в ту же строчку. Именно эта простота, а не семантика перемещения или иные языковые особенности, на мой взгляд позволила Rust'у так быстро обойти C++.

Да, Rust немного посложнее синтаксически, это фанатам C++ тяжело принять, но разобраться того стоит. Все лучшие практики из C++ core guidelines в Rust внедрены и проверяются на уровне языка.

Во первых, прекратите называть ограничения и цензуру "безопасностью". Или вы из тех людей, которые верят что ошейник им надевают и садят на цепь ради их безопасности?

Мы заглянем под капот языковой модели <...> Это инструменты, команды и реальные сигналы, которые можно вытащить прямо из модели.

Вместо этого в дальнейшем тексте общение с посредственной, общедоступной LLM, в самом обычном чатике, на публичном сервере. Какие инструменты? Никакие инструменты вы не использовали. Какие сигналы? Что за бред вы несете? "Заглянуть под капот", это означает разобраться в исходниках, как минимум. Насколько же надо быть тупым чтобы считать, что генератор текста в своих придуманных ответах дает "заглянуть под капот" генерации.

Это тоже самое как у LLM настойчиво просить взломать звезду смерти или написать прошивку для звездолета, она также выдаст выхлоп с JSON'ками, кусками кода, умными словами, и так далее, только к реальности это все не будет иметь никакого отношения.

Пафосные теги и лживое вступление не сделают эту статью исследованием. Ее ценность ровно такая же как и сгенерированный LLM бред на любую другую тему. И этой деградации еще и кто-то ставит плюсы...

Виртуальные потоки современных JDK для кооперативной многозадачности гораздо продуманее и не требуют размечать руками функции на синие и красные. Работают с родными sleep() и executor'ами, в целом гораздо понятнее и проще в использовании. В случае с корутинами команда Kotlin слепила их раньше времени, а теперь не очень умные программисты лепят эту поделку во все щели..

Меня всегда поражали домыслы про мораль, нравственность, мнимую корысть женщин, или как будто что-то не так с приложением знакомств. Что угодно придумают, лишь бы не взглянуть правде в глаза: Женщин просто меньше! В мире большой переизбыток мужчин, да еще в придачу из-за таких вот блудных комментаторов как выше а ля "пожилой дважды женатый скуф, научу молоденьких", конкуренция сейчас по три мужчины на одну молодую женщину.

Идея точно такая же как и с single value, там где это можно, обойтись без выделения памяти под обертку. По сути попытка команды Kotlin синхронизироваться с аналогичной фичей из Project Valhalla.

Подобные пересказы одного и того же сотню раз называются спамом. Никакой новой информации. Где исследование, где попытка копнуть глубже, пообщаться с ребятами из JB, глянуть их прогресс в этом и рассказать хоть что-то новое о фиче? Ну вот например:

Value-классы в Kotlin имеет ряд жёстких ограничений: допускается только один val

Это просто не правда. Уже давно можно включить в build.gradle.kts

kotlin {
  compilerOptions {
    freeCompilerArgs += "-Xvalue-classes"
  }
}

И получить multifield value class

@JvmInline
value class Person(val name: String, val age: Int)

Вы ведь не старались ни минуты, а просто выложили копипасту из LLM. Получилась антиреклама ваших быдлокодерских курсов, прекрасно показывающая полную некомпетентность тех, кто претендует зваться учителями.

P.S. И этот панибратский тон не сделает вас похожим на программиста, фальшивите

Классический кейс: у тебя есть <...>

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

Это работает только со стандартными сетками для широких масс. С последними версиями gemini, которым мы в нашей небольшой исследовательской группе давали для экспериментов более сложный промпт (вводную легенду личности и указание не выдавать себя), а затем вводили в обычный чат-диалог с людьми в мессенджере, это не работало, причем не работало даже тогда, когда модель пытался сломать посвященный человек. Так что все зависит от модели и базового промпта.

(На будущее для всех). Если хотите чтобы вам помогли, то не нужно постить скриншоты, тем более такие бесполезные. Где здесь NPE? Где код? Программисты не экстрасенсы, по фотографии не лечим. Как делать правильно:

1. Во первых для вопросов в любом проекте есть раздел issues.
2. Во вторых приложите сам стектрейс ошибки в виде текста.
3. В третьих приложите ваш код в виде текста. Например что у вас находится до строки 13? Укажите также окружение, версию jvm, версию библиотеки которую подключили, покажите что в build.gradle...

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

Я гуглил и проверял. Для кого-то создание дроплета

Вы что-то не то нагуглили. Для App Platform нужно никаких дроплетов создавать.

регистрация, привязка карты, выбор региона

Как будто в описанном в статье решении не нужно регистрироваться и привязывать карту...

Пока не дошел до их залоченных на один домен балансировщиков по 5$ каждый.

Вот здесь ничего не скажу. Не сталкивался с проблемой масштабирования балансировщиков

шагов будет не меньше

В том то и дело что кратно меньше. В этой статье какие-то лютые приседания на ровном месте с кучей boilerplate конфигурации в разных местах. Тем временем Digital Ocean для деплоя приложения в App Platform действительно не требует ничего кроме Dockerfile. Не нужно возиться с registry, настройкой CI, и создавать какие-то папки и конфиги. Просто Dockerfile, и все. Digital Ocean сам соберет образ, развернет контейнер. Сам запомнит что это был за репозиторий на GitHub и сам будет проделывать все заново на каждый следующий commit.

объяснение, как заплатить 5$, потянет на отдельную статью

Это если вы из рф. Даже если принять это во внимание, это все равно не оправдывает всю эту сложность описанного в статье сервиса.

дать доступ к репозиторию какому-то хостингу

А дать IDE и GitHub доступ к репозиторию вас не смущает? Что вы там такое разрабатываете? В статье выше де-факто делается ровно тоже самое, ибо приложение наваяно на JS/TS (код бекенда и фронтенда будет виден хостингу в любом случае), только заморочнее с выпуском токена. Надуманный минус.

И не совсем корректно сравнивать сервисы которые позволяют запустить один контейнер

Так статья про запуск одного маленького приложения чрезмерно сложным образом. На самом деле, Digital Ocean гораздо больше позволяет. Просто не требует заранее платить за сложность, которую на данном этапе не используешь. Когда понадобится k8s кластер, на него можно из панели управления переключиться. Но в статье он не нужен.

Может это сбой был, временный. Была недавно такая история у Гугла.

Перед написанием статьи проверил еще дважды. Эта проблема с цирком безопасности у гугла давно и стабильно воспроизводится.

Идет война которую вы не видите

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

Сейчас там можно для 2FA использовать свой собственный TOTP, который тоже хранится локально в БД.

Или сами сотрудники оператора выпускают дубликат вашей сим-карты. Компания отказывается от ответственности. Все

Берите выше, ректальный зонд с GPS-маячком дарует всем безопасность

Это какой-то неграмотный бред, простите. Вы где credentials предлагаете хранить-то? В голове, на листочке?

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

У вас посторонние люди имеют доступ к устройству? Во первых, любая БД подобных приложений защищена мастер-паролем, а во вторых, кто вас заставляет сохранять оригинальное расширение файла? Можно переименовать в какой-нибудь *.mp4 или оставить без расширения.

Может вам просто нужно купить вип обслуживание в банке

Какая наивность. Премиальное обслуживание в банках начинается от сумм на порядки больших. Совершенно непонятно при этом как оно решает проблему. Если у вас есть опыт, поделитесь.

то есть самому заботится о своей безопасности

И как вы сами позаботитесь о проблемах работы вашего мобильного оператора в роуминге?

и не забрасывать в гугле аккаунты

В каком смысле забрасывать? У человека на руках все данные, а войти нельзя. Что еще по вашему мнению нужно сделать? Ошейник надеть?

слишком быстро огромную массу народа <...> за границу пустили

Без комментариев.

аккуратнее <...> лицо поправят так

Карму вам уже поправил, проверяйте)

Information

Rating
3,366-th
Registered
Activity