Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 20 4 8
Java Thread №282 /java/ Аноним 18/05/25 Вск 19:28:43 3457776 1
e2866894-9805-4[...].png 1547Кб, 1024x1024
1024x1024
Аноним 18/05/25 Вск 21:26:58 3457824 2
качусь - неистово
мечта - попасть на стажировку работу
Аноним 19/05/25 Пнд 04:22:44 3457962 3
1. Инфраструктура на будущее не нужна и запрещена. Всё равно придётся ломать API. Боль от миграций надо уменьшать другими способами (LTS версии, конвертаторы кода, методы-прокладки, shading, etc.)
&
2. Ни единого дубликата кода быть не должно. Дубликация кода это не рациональное решение, это нехватка мозгов для его исправления.

Переваривайте.
Аноним 19/05/25 Пнд 04:38:20 3457963 4
>>3457776 (OP)
А как вы вообще на работу устраиваетесь на жабе? ИДЕ и нейронка сейчас пишет весь код за программиста, джуны не нужны в принципе.
Да и сама жаба вскоре отпадет, когда в контекст нейронки можно будет запихнуть весь проект на миллиарды строк кода и она за секунду выдаст код на современном языке типа голанга.
Аноним 19/05/25 Пнд 04:40:12 3457964 5
>>3457963
>Да и сама жаба вскоре отпадет, когда в контекст нейронки можно будет запихнуть весь проект на миллиарды строк кода и она за секунду выдаст код на современном языке типа голанга.
Не забывай про ежедневный приём таблеток.
Аноним 19/05/25 Пнд 04:56:39 3457968 6
>>3457962
Чтобы убрать полностью дубликацию кода надо сделать систему типов очень мощной и разрешить жаванам делать очень много всякого. Неглупые люди сверху на это не пойдут. Они же понимают, кто такие жаваны и насколько им опасно давать такие инструменты.

Без этого дубликация в той или иной степени все равно будет, терпим..
Аноним 19/05/25 Пнд 04:59:47 3457970 7
>>3457968
По моему проблема в прокладке между сидушкой и монитором. Система типов джавы вполне себе мощная.
Аноним 19/05/25 Пнд 07:40:13 3458002 8
Аноним 19/05/25 Пнд 09:21:29 3458025 9
>>3458002
В тебе нет kind, богомерзкое школоотродье.
Аноним 19/05/25 Пнд 10:07:54 3458050 10
Аноним 19/05/25 Пнд 10:11:01 3458053 11
>>3458050
Ну так по существу будет что-то, дегенерат, или опять слился опозорився на весь тред?
Аноним 19/05/25 Пнд 10:56:06 3458073 12
image.png 24Кб, 550x279
550x279
>>3458053
Я же уже сказал, что тебе еще надо? Без kind у тебя нет четкой разницы между контекстом и значением, иначе говоря коллекции и значения - это одно и то же. Что из этого следует, ты не можешь сделать метод, который абстрагируется не по значению, а по тому, что его как бы хранит.
Типа того:
<A, B, F> F<B> functor(F<A>, Function<A, B> f);

Также без kind у тебя есть только крайне ограниченные интерфейсы, а не тайпклассы.
Аноним 19/05/25 Пнд 10:57:04 3458074 13
>>3458073
Таблетки. Это шизофазия.
Аноним 19/05/25 Пнд 11:43:48 3458102 14
image2025-05-19[...].png 48Кб, 703x589
703x589
image2025-05-19[...].png 128Кб, 633x672
633x672
>>3458074
Ну это базовый уровень. Функтор фактически интерфейс для функции map любой коллекции.
Потом идет развитие из функтора в аппликативный, если раньше функтор принимал чистую функцию и обернутое контекстом значение, а потом сливал их, то теперь он берет обернутую контекстом функцию и обернутое контекстом значение. Ключевая разница в том, что теперь сливаются два контекста.
<A, B, F> F<B> applicative(F<A> v, F<Function<A, B>> f);
Третье и финальное развитие - это bind. Когда на входе чистая функция, которая в итоге оборачивает результат в контекст и значение в контексте. Bind по сути берет и вытаскивает из контекста значение и передает этой функции, получая еще один контекст.
<A, B, F> F<B> bind(F<A> v, Function<A, F<B>> f);
<A, F> F<A> pure(A a);
Пример в жабе, это map - https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html#map-java.util.function.Function-
это bind - https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html#flatMap-java.util.function.Function-
Тогда Functor - это интерфейс для map, а Monad интерфейс для bind, ну и еще pure.
Как вершина, типы позволяют изолировать ресурсы, создавая сколемы - https://thoughtsfactorial.com/posts/2021-08-07-the-st-trick/
В виде картинок, может понятнее будет - https://www.adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html

В контексте повторения кода, нам бы не пришлось писать одинаковые функции для коллекций, разница которых только в том, какая именно коллекция на входе. Также stream выглядел бы гораздо лучше и позволял бы гораздо больше.
И потом последнее - это трансформеры монад, которые как бы позволяют объединять эффекты разных монад. Скажем список, который имеет постоянное значение (Reader monad) или имеет возможность сделать исключение (throw). И это позволило бы еще меньше дублировать кода, типа дебильные проверки на null, throw/catch многкратно проще писать функции, которые работали бы универсально и прочее прочее.
Аналоги в скале:
https://typelevel.org/cats/typeclasses/functor.html
https://typelevel.org/cats/typeclasses/applicative.html
https://typelevel.org/cats/typeclasses/monad.html
https://scalabook.ru/typeclass/monad/monad-transformer.html
Аноним 19/05/25 Пнд 23:06:25 3458333 15
>>3457968
Чел, что ты несешь. Для систем-типов-enjoyеров уже всю дорогу существовала скала, которая жила-жила, да так и померла. Какие нахуй неглупые люди...

Всем давно и плотно похуй на дубликацию кода. Программисты необучаемые блять - косплеят жалкие косплеи на ФП да переизобретают одно и то же по тыще раз, называя это развитием. Никакой теории заговора не надо.
Аноним 19/05/25 Пнд 23:16:50 3458335 16
>>3457968
>>3458333

И вот ты говоришь - "нужно сделать систему типов мощной джаванам"... Нахуя, если джаваны даже половины возможностей имеющейся системы типов не используют?

Чтобы эффективно работать в мощной системе типов, надо уметь мыслить абстракциями. А для этого надо чтобы мозг иметь хотя бы чуток прокачанный в математический уклад, чтобы не выпадать в осадок от пресловутых названий артефактов из терката. А таких людей не то чтобы много. На порядки меньше чем лоускильных квадратногнездовых промптеров. Поэтому джава именно такая, какая есть. Живи с этим.
Аноним 20/05/25 Втр 01:22:19 3458369 17
>>3458335
Так это не я же предлагал убрать дубликацию, я наоборот согласен с тобой, что это не баг, а фича жабы.
Все правильно делают, жаванам ничего доверить низя, что явно показывает история с unsafe
Аноним 20/05/25 Втр 07:00:22 3458395 18
>>3458335
чел, индустрии надо чтобы чем более лоускильная макака может высирать рабочий код - тем лучше. Тем продукты дешевле и маржа больше.
Нахуй никому не нужен твой пердолинг и вышмат, он денег не приносит
Аноним 20/05/25 Втр 12:53:05 3458580 19
>>3458395
Я буквально к тому же и клоню.

Мне то похуй, я джавой зарабатываю, хаскель штудирую по приколу. Зато теперь официально могу каждого спрингодаунга называть лоускилльной макакой.
Аноним 20/05/25 Втр 13:17:54 3458598 20
>>3458580
> Зато теперь официально могу каждого спрингодаунга называть лоускилльной макакой.

Это как-то повлияло на твой доход?
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов