Обновить
8
0
Optik@Optik

Scala developer

Отправить сообщение
Мой рабочий ЯП — scala. Про java 8 знаю довольно мало, поэтому о деталях спорить не буду, просто поправьте при необходимости.
Если говорим о читаемости, то очевидно не стоит делать лямбду портянкой. Только это не значит, что лямбда не может содержать сложной логики. Все решается композицией функций.

Насколько понимаю, в java 8 нет аналогов Try "монады", поэтому обработка ошибок в композиции остается муторной (не сказать что Try делает мир идеальным, но немного лучше).

И становится ли код с ними надежнее и читабельнее, нежели без них?
Если продолжать скатываться к ФП, то да для надежности и читаемости одновременно. Точнее это наиболее простой способ выполнения двух условий одновременно. При этом речь не столько о лямбдах, сколько о функциях в целом.

з.ы. функции высшего порядка ортогональны рефлексии.
Да, лямбды не пробрасывают. Потому что лямбды не должны содержать в себе серьезную программную логику. То есть назначение их — сделать что-нибудь простенькое, на полэкранчика, без хитрых внутренностей.
Логика в лямбде может быть какая угодно. Причина не в них, а в high order function, которые принимают «произвольную» функцию, а значит их придется обвешать всеми возможными проверками.
Причем в 11ом rule-based уже и нет совсем, если правильно помню.
Надо в качестве эпиграфа к каждой статье добавлять.
Снижает их в N раз, где N зависит от "ума" компилятора. Обратная сторона — дополнительный бойлерплейт при написании кода. Кто-то ищет баланс, кто-то живёт в крайностях. Каждый выбирает более приятный ему путь.
Ну как бы да. А где негатив от отсутствия return?
Можете пример дать? У меня, честно говоря, фантазии не хватает придумать такой кейс, когда бы return понадобился во имя безопасности. По личному опыту с изучением и дальнейшей работой со scala адаптация прошла почти мгновенно и проблем не было за все время (скорее только вздох облегчения).
За 20 минут теста утечку часто можно не разглядеть. Обычно испытания на стабильность не менее 12 часов проводят.
На потребление ресурсов забили?
В чем «продуманность» относительно скалы? Про пример с nullable понятно.
В приведенном варианте ничем, кроме оверхеда. Удобства работы со спарком в консоли на грош.
Для ad-hoc задач всё же надо использовать другой интерфейс, благо они есть и для скалы и для питона сейчас.
Бесполезный бенчмарк для сравнительной оценки. Не указаны настройки противопоставляемых систем. Не понятно что по оси ординат откладывается, хотя мож я просмотрел. Вот к примеру покрытый пылью времени результат акка, который даже с учетом разности в железе имеет большую пропускную способность и даже несмотря на наличие stw.
Юнион очень похож на кортеж, только используется для обобщения возможных типов. Особый вид дженерика.

Дженерики здесь совершенно не причем и на кортеж оно не фига не похоже. Оба есть ADT.
Из всего выглядит только как одна проблема — кадры.
idea + плагин от jetbrains (не всё хорошо, но жить можно), scala-ide (на базе клипсы), ensime (имеет возможность скрещиваться с некоторыми текстовыми редакторами).
В языке со строгой статической типизацией делать переход от специфичного множества к множеству, включающему всё, — это путь к ошибкам. Выше вы упоминали про кодогенерацию, можете пример дать?
Больше похоже на упрощенные (раз там отсутствует иерархия) примеси (mixins).
Зачем это в блоге scala?

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность