граница AI
(chatgpt4, который умеет ходить по ссылкам)
Пересказать на другом языке новостную статью - запросто. Просто отлично.
Попросить пересказать идеи из faultlore (https://faultlore.com/blah/tower-of-weakenings/) - его корёжит, пучит, ломает (в буквальном смысле - error in the stream), три попытки, и ни разу ни чего, хотя бы отдалённо напоминащего разумный пересказ сложной идеи.
В целом, наверное, так и надо тестирвать AI. Даёшь сложную статью, просишь пересказать своими словами идею статьи. Человек может понять Арию, AI - нет.
Пересказать на другом языке новостную статью - запросто. Просто отлично.
Попросить пересказать идеи из faultlore (https://faultlore.com/blah/tower-of-weakenings/) - его корёжит, пучит, ломает (в буквальном смысле - error in the stream), три попытки, и ни разу ни чего, хотя бы отдалённо напоминащего разумный пересказ сложной идеи.
В целом, наверное, так и надо тестирвать AI. Даёшь сложную статью, просишь пересказать своими словами идею статьи. Человек может понять Арию, AI - нет.
no subject
Bruh that's cringe
no subject
Я понимаю, что тебе за что-то нестерпимо стыдно, но не имею ни малейшего представления за что.
no subject
no subject
Во-первых, ты мне не брат. Во-вторых, это проблема твоя и твоего психолога, да?
no subject
no subject
Является ли мимопроходящее хамство поводом к самоиронии? Иногда, и чаще всего без "само".
no subject
no subject
Главное придумать себе достойного противника, чтобы потом разгромно его сокрушить.
no subject
no subject
Я не бегаю в блог Ван Россума с целью рассказать как он неправильно всё делает. Более того, я не бегаю по блогам питонистов. Я программирую на питоне, учу Раст, и многие вещи после Раста в питоне выглядят странно. О чём я пишу в своём личном блоге.
Но тебе очень важно прийдти в чужой блог и... и что? Пока что я слышал от тебя немного оскорбительно и ничего конструктивного. Возможно, в душе ты думаешь, что делаешь хорошее дело, но наружу для окружающих (т.е. меня, в этой ситуации) это совсем не заметно.
no subject
no subject
Я понял твоё мнение по этому вопросу. В то же самое время я вижу как rust решает инженерные проблемы, и лично мне это очень нравится. Так же как мне нравится тонкий балланс между монадическими эффекторными семисерафимами типов и грубой битовой кувалды (niche и всё такое). Я Rust в продакшене (хоть в каком-то продакшене) использовал два раза пока что, оба раза, как замену Си. Получилось быстрее и понятнее для коллег (хотя они не видели всей магии мономорфизации снизу, но на неё и не надо смотреть - код-то читается).
В остальном Rust я использую для душевного отдыха, потому что мне очень не нравится питон, но к сожалению, это язык, который я пока что знаю лучше всего, и тулстек у меня на 40% на питоне (причём самые его кровоточащие части - совпадение или нет?), и де-факто язык Питон. Но я работаю над тем, чтобы это поменять.
Я понимаю, что тебе не нравится комьюнити. Допустим. Но я вижу насколько они тщательно и правильно решают проблемы, которые в Питоне либо не обсуждаются (например, конфликтующие зависимости зависимостей, мне нужно foo и bar, foo хочет foobar < 2.0.0, а bar хочет foo >=3.14), либо решаются через миллион прослоек, которые друг с другом не всегда договариваются (свежий пример: установка ansible-lint через poetry). И мне вот эта инженерная тщательность очень приятна.
А ещё мне нравится, что Rust - первый язык (из тех, которые я видел), который не закукливается в уютном рантайме. Надо свой аллокатор? Вздохнули, пишем. Надо обработать прерывание? Вздохнули, naked functions.
no subject
Но вот по поводу тонкого баланса для душевного отдыха,
найдётся ли у вас минутка поговорить опробовал Common Lisp? Это же буквально непротиворечивая комбинация страшно низкоуровневых вещей (disassemble, sb-vm::define-vop, declare optimize) и высокоуровневых (макросы, полиморфизм, gradual typing и прочая).no subject
Я смотрел издалека на Схему, и меня страшно выбесили скобочки. Несправедливо, неэстетично.
Кроме того, лисп - это песочница.
Я открыл рандомный код (https://github.com/sbcl/sbcl/blob/master/contrib/sb-rotate-byte/x86-64-vm.lisp) - нет, в таком виде я не хочу писать. Просто по эстетическим соображениям. Нет лиспу и xml.
no subject
Скобочки не проблема с paredit/smartparens, проблема — новомодные синтаксические конструкции, которые нужно запоминать на каждой неделе в других новомодных языках.
no subject
Для меня внутренее удовольствие от работы очень важно. Я не буду писать на 1С, XML и lisp'е, потому что мне визуально неприятно на них смотреть. И да, читаемость MATTER, иначе мы быстро скатимся в мир BOOK ONE/OBEY (language H).
насчёт новомодных конструкций... Ну, вот, lifetimes - это очень серьёзно. С интересом жду, когда кто-то прожуёт effect theory и даст на выходе что-то индустриальное.
В том же расте сахара не так уж и много, но насколько он офигенный. Range как тип, !include_bytes, божественная свобода в match'е, чуть-чуть магии трейтов в for.
И да, Rust'овое
for T: A + B<'a, Item=C<D<'_>>выглядит жутко, но у него есть причины.А у скобок лиспа причины нет, есть только "так повелось". (ну или скрытая скобкофилия, ведущая с тяжёлому xml в последствии)
no subject
no subject
Смотри, какой минимальный синтакис позволяет реализовать любую программу? (Т.е. является тьюринг-полным)? По умным учебникам CS, это операция "минус 1 с условным переходом". Это совершенно единообразный синтаксис, потому что у тебя есть только одна-единственная операция, которой всё программирование и производится. В чуть меньшем экстриме - -1 и JNZ, две инструкции. Изящно, просто анализировать, отвратительно читать.
Альтернатива - наиболее выразительные для человека конструкции. итератор, который через сахар превращается в "для каждого", match вместо пачки goto, dyn вместо таблицы с методами.
Программы пишутся не для компьютера, программы пишутся для человека. Человеку должно быть легко и хорошо читать код.
Идея внутри лиспа - забавная, но не более, и выворачивать мозг во имя этой идеи - спасибо, нет.
А что за история в Rust'е? Я знаю, что там есть процедурные макросы, но даже близко к ним не приближался.
no subject
История в расте, что один прошаренный чувак (никнейм Bjorkus Dorkus, он в комитет C входит) хотел на растоконфе сделать доклад про перспективы развития вычислений в компайлтайме, но орги понизили его в статусе с кейнота до обычного доклада, он бомбанул и вообще отказался, потом ещё и выяснилось, что он внезапно негр, начались набросы про то, что "да он изначально был подписан на кейнот только тому що негр", скандал, срач, драма. Обычный день растокоммьюнити, короче.
no subject
А, ты про эту драму в стакане. Ну, окей. Печально, но да, такое случается. К языку-то это как относится? У меня ощущение, что большая часть твоей критики языка оносится к фанбоям и коллективу разработчиков.
Человек != код, который он пишет. В обе стороны.
no subject
no subject
Потому что, какие альтернативы? Скобочки на лиспе? нуну.
Я тут ткнулся в гошный год поревьюить, с ходу у человека нашёл 3 race condition (я го едва знаю, так что вопросы я задавал на уровне блок-схем). РАЗУМЕЕТСЯ, там мутация из горутин, и разумеется, конкурентная. И разумеется, компилятор совершенно счастлив делать любую фигню, включая UB, без малейшего предупреждения. Типовой Си, вид сбоку.
А если не go, то что? Чтобы бинарь, чтобы быстро, чтобы на современном языке. Остаётся Rust.
no subject
Ну кроме шуток Common Lisp. Разве что насчёт "современного" не подходит, но лучше уж пусть новые фичи добавляют в язык опциональными third-party библиотеками с макросами и профурсетками, чем каждый понедельник учить новый нескучный синтаксис, который разработчики языка от нечего делать добавили в очередную минорную версию.
no subject
Я уже понял, что слаще лиспа ничего нет. Я его запишу в список технологий на изучение, сразу после русского синтаксиса 1C и индоктринации XML'ом (который я к своему несчастию знаю сколько-то, но не люблю).
А пока что мне больше нравится Rust. Визуально и технически.
О, вот, ща я тебе задам сложный вопрос по lisp'у и мы посмотрим, насколько это современный язык.
Допустим, у меня есть программа, которая зависит от библиотеки foo и bar (надеюсь, в лиспе есть библиотеки?). foo зависит от superteck версии 1.1 (не старше 2.0), а bar - от superteck версии 4.0.0+, и API superteck 1.1 и 4.0.0 различается от слова совсем.
Как ты соберёшь программу, использующую одновременно foo и bar. Покажи мне как ты запишешь зависимости в своём проекте и как резолвер их решать будет.
no subject
no subject
!markdown
В Rust (и в других нормально типизированных языках) принято использовать builder.
Всё то же самое, но значительно более читаемое.
На самом деле, у меня нет претензии к lisp для открывающих скобок. У меня есть претензия к закрывающим. Много, низкая плотность смысла, монотонность.
Я пишу на множестве птичьих языков, и для меня лисповые выкрутасы (во имя ast) ничем не лучше джинжевой бездны с пробелами. "Ну не шмогла лучше, любите какой есть".
no subject
Окей, потрём ещё за синтаксис. Clojure, другой более современный диалект лиспа, популяризовала т.н. "стрелка-макросы" ( https://clojuredocs.org/clojure.core/-%3E ). Смотри, как выглядел бы твой пример с ними (очень приблизительно, я не распарсил весь этот всратый синтаксис из него):
В твоём примере семь пар скобок, в вышеприведённом коде четыре. drops the mic
no subject
И я всё равно не понимаю, почему мне тут нужна открывающая скобка.
Алсо, ты пропустил кошмарик |x|x(x), который вызывает foo с ref foo, а вовсе не identity.
Более того, в выбранных примерах всё просто. Допустим, замыкания были бы не функциями, а замыканиями. Специально сделаю так, чтобы было сложнее упрощать:
no subject
My brother in Christ, мутабельность — это грех.
Если объяснишь, что означает вот эта залупа
в качестве аргумента функции (если я опять-таки правильно распарсил этот цыганский синтаксис), то, возможно, я даже покажу, как на лиспах это можно сделать ✨ K P A C U B O ✨
no subject
Рассказываю.
render принимает ссылку (shared reference) на name, а так же принимает во владение (ownership) нечто (допустим, u8 буффер большого размера), который создаётся buffer::new. В new передаётся результат выполнения get_size (допустим, это usize, то есть тип Copy), который в свою очередь считает его от reference на render.
Заметим, тут ни в одном месте нет мутабельности. & - немутабельная ссылка. А вывод buffer::new передаётся через владение, то есть после передачи в render, никто больше к нему доступа не имеет.
no subject
В проститутки!
no subject
Мы пока ещё не совсем там, но, возможно, проблемы с job security не только у второй древнейшей профессии.
no subject
Не согласен! ИИ тоже может понять, но его, этого ИИ, пока еще нет.
Есть умелый проходитель теста Тьюринга, читерящий на том, что собеседники ему, в массе своей, достаются обделенные ЕИ.
no subject
Ну, я имею в виду, тот ИИ, с которым мы имеем дело сейчас. В целом, я бы сказал, что прохождение теста Тьюринга менее важно, чем способность пересказать не трвиальное, а, наоборот, что-то существенное. Ария великолепна, но читать её сложновато. Для человека. Для ИИ (текущего уровня) - невозможно.
То есть попросить пересказать сюжет худпроизведения, вроде бы, можно (хотя надо будет проверить на каком-то малоизвестном высокохудожественном рассказе), а вот нетривиальные знания - нет.