Doge
Да я не понимаю почему нельзя в jdbc сделать ДРУГОЙ апи. На футурах
Потому что миграции всех зависимых от него либ затянется на годы вперёд
Ayrat
Ну то есть не пытаться существующую кодобазу в миг сделать збс, а хотя бы дать возможность новую писать по-людски
Dr. Friedrich
Ну, типа, у меня же есть нативный код с нативными пулами тредов, и очень много. Есть вот этот вот идиотический гуй на маке, есть очень много всего, где гринтреды не будут работать, и где при этом хочется много IO.
Dr. Friedrich
А тут взял, врубил project loom и править код не надо
Только тебе потом надо призывать кибер шамана 80 уровня, чтобы понять, что в нём сломалось — ну, когда что-нибудь пойдёт не так.
Dr. Friedrich
Dr. Friedrich
Я не уверен, что станет работать лучше, но принципиально сломать не должен :)
Dr. Friedrich
А прикинь, что у тебя код-хитрожоп что-нибудь своё схороняет в TEB, например. И потом просто рили охреневает от того, что ему внезапно этот TEB подменили на ходу, после какого-нибудь IO.
Ayrat
Я из обсуждения так и не понял что мешает сделать асинхронное апи рядом с синхронным в ждбц драйвере
Doge
Я из обсуждения так и не понял что мешает сделать асинхронное апи рядом с синхронным в ждбц драйвере
То что мигрировать на него потом все либы будут буквально тысячу лет
Ayrat
То что мигрировать на него потом все либы будут буквально тысячу лет
Это очень плохой аргумент в жаба мире где все мигрируют постоянно откуда-то куда-то
Dr. Friedrich
Я из обсуждения так и не понял что мешает сделать асинхронное апи рядом с синхронным в ждбц драйвере
Никто не мешает его сделать, но очень долго придётся ждать, пока нужный тебе вендор его реализует. А ведь классическая асинхронность вирусная, то есть после этого придётся ещё ждать, пока весь стек обновится.
Doge
Это очень плохой аргумент в жаба мире где все мигрируют постоянно откуда-то куда-то
Решили, что эффективней по ресурсам не тратить на это время, а поменять рантайм
Dr. Friedrich
Ну и плюс, авторы фундаментальных либов уже не те щас. Кто-то на пенсии, а кто-то уже в дурке.
Dr. Friedrich
Кто тебе стек будет обновлять? Зумеры?
Doge
Не жили хорошо, нечего и начинать
Ну так вон, доделают project loom, все автоматом хорошо заживут
Dr. Friedrich
Не жили хорошо, нечего и начинать
В итоге лум превратился в лакмусовую бумажку для ленивцев
Dr. Friedrich
Не, я не буду рефакторить, зачем? Ведь скоро прожект лум выйдет, и вот тогда заживём!
Dr. Friedrich
Гарантирую, что после его выхода просто найдут новую несбыточную мечту, и рефакторинг будут откладывать и дальше :)
Ayrat
А вот для Кассандры сразу взяли и сделали хороший асинхронный драйвер. И никакого прожект лума не надо. Торчат наружу обычные листанабл футуры стандартные
Ayrat
И все живы
Ayrat
Чот я все равно не понял аргумент про вендоров. Мне надо будет, я сам напишу обвязки
Ayrat
Дайте мне сука драйвер
Doge
Причем даже в нескольких вариантах
Ayrat
Ну мне больше для db2 и всей этой старпер компании надо
Ayrat
Для новомолодежного говна понятно что все есть
Doge
Ты можешь бросать исключения в IO, это норм
Ayrat
Ты можешь бросать исключения в IO, это норм
Неясно зачем тогда вся эта история с Either
Vladislav
Надо работать над имиджем
Чтобы имидж был нужен чтобы кто-то книжек написал
Vladislav
Иначе аппелировать не к чему
Dr. Friedrich
Ты можешь бросать исключения в IO, это норм
Очень странно видеть и either, и исключения в соседних строчках. Может, оно так и задумано, но странно.
Stas
Надо работать над имиджем
начни писать статьи для нубов или видосики на ютуб!
Doge
Неясно зачем тогда вся эта история с Either
Там исключение скорее что-то вроде assert'а. А-ля, используется одна модель юзера там, где он может прийти без id и там, где он гарантированно приходит с id. Но на это один тип данных, поэтому тут делается ассерт, что из базы он нам точно с id пришел
Ayrat
Ну вот, опять что-то делать просят, а полежать на диване не дают
Ayrat
Там исключение скорее что-то вроде assert'а. А-ля, используется одна модель юзера там, где он может прийти без id и там, где он гарантированно приходит с id. Но на это один тип данных, поэтому тут делается ассерт, что из базы он нам точно с id пришел
Опять же, вся мощь системы типов, умные алгебры и все виды монад не позволили выразить это по-другому? Он же уже наоверинжинирил, почему нельзя было намазать сверху для совсем чистой фпшечки? Я прям не понял автора. Лишь укрепился в своём мнении на его счёт и кода в частности
Nikolay
Што ему надо?
Ayrat
Што ему надо?
Сделать Parse инлайном
Ayrat
Написано же всё!
Nikolay
Блин, но оно же не может быть инлайном
Ayrat
Подумай как Parse может не быть инлайном и при этом удовлетворять твоим srtp констрейнам
Ayrat
Мемберы в классах могут быть инлайн.
Nikolay
Ну я имею ввиду в либе оно не инлайн
Nikolay
Жизнь боль
Ayrat
Ну я имею ввиду в либе оно не инлайн
У тебя сам класс описан с типами которые выражаются только через инлайн
Ayrat
И ты такой тип пропихнул в параметр интерфейса
Ayrat
Я хз на что ты рассчитывал, но реализовать такой интерфейс с сртп типом можно только через инлайн функции
Vladislav
Што ему надо?
inline override?
Nikolay
Ну если интерфейс без женерика, оно тоже не работает
Ayrat
Ну если интерфейс без женерика, оно тоже не работает
Да бля, не интерфейс виноват, Николай!
Ayrat
Ты описал тип 'a
Ayrat
Через жопу с сртп
Ayrat
После этого любой метод который принимает или возвращает такой тип должен быть инлайн
Nikolay
Nikolay
Вот метод не использует тип
Nikolay
Но ругает меня
Ayrat
Вот метод не использует тип
Но видимо использует. Или это компилятор ещё тупит
Ayrat
Напиши там () и компильни
Nikolay
type IExample = abstract member Parse : unit -> unit type Example<'a when 'a : (static member parse : unit -> unit)>() = interface IExample with member x.Parse() = ()
Nikolay
Вот пример не работает
Nikolay
а что ты хочешь
Понять, простить
Nikolay
Даппер ковыряю
Ayrat
Вот пример не работает
Любопытно. Я ожидал что оно должно работать, но я не много игрался с сртп типами в классах
Ayrat
Ну делай инлайн везде
Nikolay
Щас психану, и свой маппер напишу, с блэкджеком и барышнями