LINUX.ORG.RU

Слушай, а у тебя какой язык (программирования) сейчас основной? Мне интересно сопоставить.

i-rinat ★★★★★
()
Ответ на: комментарий от Debasher

И 4 раз про русский язык. В русском языке, есть устоявшееся выражение, англицизм, «коллбек», означающий не «обратный вызов», а саму ф-цию, которая вызывается. То, как переводится «call back» не ты один знаешь, уж поверь. Но язык — это такая штука, которую нужно понимать, тут зубрежкой и дословными переводами из вловарей не обойлешься, айм сорри, бейби.

ambiguousnick
()
Ответ на: комментарий от ambiguousnick

Главное чтобы на языке программирования было норм :-)

А с русским у меня и правда не всё гладко, да :-)

Debasher ★★★★★
()
Ответ на: комментарий от morse

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

Давно уже лямбды нативные завезли вместо интерфейсов, можно вот так писать:

public void doSomethingAsync() {
    ExecutorService pool = Executors.newFixedThreadPool(5);
    pool.submit(() -> {
        //Do something
    });
}
Nagwal ★★★★
()
Ответ на: комментарий от Nagwal

можно вот так писать

Можно-то можно, но вот следует ли? Я анонимные функции и то не сильно люблю, а уж писать колбеки на лямбдах, это вообще пец получится.

morse ★★★★★
()
Ответ на: комментарий от morse

У жаба кодеров травма от долгого кодинга на жабе. Сначала они несколько лет доказывали, что фичи, которых нет в жабе, не нужны, а теперь у них когнитивный диссонанс.

anonymous
()
Ответ на: комментарий от morse

Можно-то можно, но вот следует ли? Я анонимные функции и то не сильно люблю, а уж писать колбеки на лямбдах, это вообще пец получится.

На вкус и цвет фломастеры разные, мне с лямбдами больше нравится.

А вообще я полгода-год наверное назад создавал тут тему про лямды, яву и фп с примерами. Так там мнения разделились практически ровно пополам, кто то вопил что это лютый говнокод, кому то наоборот нравилось.

Пример оттуда уже не вспомню, но вот пример из свежего кода, по поводу которого был спор с коллегами:

public DrugCenterTreeElement accessibleTree() {
    List<DrugCenter> dcsPlain = dcr.userAccessible();
    return fillChildren(
            dcsPlain.stream()
                    .filter(_dc -> Objects.equals(_dc.getId(), currentUser().getEmployee().getDrugCenterId()))
                    .findFirst()
                    .orElseThrow(() -> {
                        log.error("=====> Drugcenter Id[{}] not found for User[{}] but is set in it's employee information.",
                                currentUser().getEmployee().getDrugCenterId(), currentUser().getLogin());
                        return new ExpectedException(getMessage("drugcenter.cannot_find_for_user"));
                    }),
            dcsPlain);
    }

protected DrugCenterTreeElement fillChildren(DrugCenter root, List<DrugCenter> dcsPlain) {
    return new DrugCenterTreeElement(
            root,
            dcsPlain.stream()
                    .filter(_dc -> _dc.getParent().isPresent() && Objects.equals(_dc.getParent().get().getId(), root.getId()))
                    .map(_dc -> fillChildren(_dc, dcsPlain))
                    .collect(toList()));
}

Nagwal ★★★★
()
Ответ на: комментарий от Nagwal

Мда... Что только доказывает что лямбдами из любого языка можно сделать нетипизированное скриптовое говно.

И я ничего не имею против нетипизированных скриптовых языков, я например очень даже люблю питон. Но только все хорошо к месту. А брать джаву и превращать ее в ЭТО? Зачем?

morse ★★★★★
()
Ответ на: комментарий от morse

Мда... Что только доказывает что лямбдами из любого языка можно сделать нетипизированное скриптовое говно.

Эмм. Где ты тут отсутствие типизации то увидел?

Nagwal ★★★★
()
Ответ на: комментарий от EnterpriseMobility

Вам надо объединиться с господином Booster'ом с этого же форума и с анонiмусом. Dreamteam.

капча: science espondi

anonymous
()
Ответ на: комментарий от morse

Ну так dcsPlain же, от которого мы делаем stream().filter() имеет тип List<DrugCenter>. Поэтому _dc будет иметь тип DrugCenter. Т.к. у фильтра сигнатура: Stream<T> filter(Predicate<? super T> predicate)

В общем отсутствием типов и не пахнет, добавили лишь частичный их вывод для лямбд.

Nagwal ★★★★
()
Последнее исправление: Nagwal (всего исправлений: 1)
Ответ на: комментарий от morse

Мда... Что только доказывает что лямбдами из любого языка можно сделать нетипизированное скриптовое говно.

Ну может я просто плохо знаю джавовские лямбды, но ткни носом, где тип _dc указан?

https://en.wikipedia.org/wiki/Type_inference

korvin_ ★★★★★
()
Ответ на: комментарий от morse

Очередной дебил не осилил type inference. Откуда вы такие беретесь?

anonymous
()
Ответ на: комментарий от EnterpriseMobility

Функции обратного вызова можно реализовать во многих языках, а WinAPI и вовсе где их только не использует. И про то как в питоне совсем нет функций обратного вызова и асинхронности на них:1,2

pylin ★★★★★
()
Последнее исправление: pylin (всего исправлений: 1)
Ответ на: комментарий от pylin

Я бы сказал вообще в любом. Что-то сходу даже не вспомню не эзотерический язык, где нельзя в функцию передать ссылку/указатель на другую функцию или как в Java объект реализующий интерфейс с 1 функцией, что по сути почти идентично ссылке на функцию.

anonymous
()
Ответ на: комментарий от EnterpriseMobility

C#
нигде я не видел асинхронности с колбеками.

Плохо смотрел. Такая убогая асинхронность (на колбеках) в дотнете с первых версий (в 1.1 точно была)

d_Artagnan ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.