Pull to refresh
-1
0
Антон Нехаев @nehaev

Архитектор, консультант

Send message
Так что Scala в этом месте от Java почти не отличается.

Если вы автор библиотеки, например, вы скорее всего не будете тащить внешнюю зависимость от vavr или чего-то подобного. Соответственно, весь ваш арсенал будет ограничен тем, что есть в стандартном наборе. Так что отличия есть, и они весьма существенны.

Вряд ли выход Scala 3 привлечет этих людей обратно. Пока все выглядит так, что разработчики языка решили отойти и не конкурировать с котлином за нишу better java.

Примеры же просто демонстрируют новый синтаксис. Моноид, я думаю, выбрали потому, что удобно показывать разницу между методом, привязанным к типу (unit), и методом, привязанным к экземпляру (combine).


Если вас интересует какой-нибудь сравнительно простой пример прикладного использования тайпклассов, и при этом аллергия на теорию категорий, я бы рекомендовал посмотреть сюда. Это очень простая библиотека для чтения конфигов. В качестве упражнения, можно попробовать сделать такую же функциональность на "классическом ООП" без тайпклассов.

Хм… было бы интересно узнать, какие еще есть опции. Вот хочу я сделать библиотеку для сериализации JSON. Естественно, пользователи этой библиотеки могут захотеть сериализовать любой класс, который у них есть. Какие у меня есть варианты кроме наследования/рефлексии/оберток с одной стороны и тайпклассов с другой?

implicit, который позиционируется как некие type class

Следующая статья как раз будет про тайпклассы в Scala 3. Stay tuned!


implicit поведение это всегда зло

Тут надо понимать, что имплиситами вообще и тайпклассами в частности пользуются не от хорошей жизни. Как правило это уровень библиотек, которые должны быть максимально гибкими, и альтернатива там — запутанные иерархии наследования, рефлексия и куча оберток. Что из этого большее зло — вопрос как минимум дискуссионный.

Но ответственность за эти ошибки плавно перекочевала с плеч разработчиков на плечи тестировщиков. Как-никак, это они назвали себя Quality Assurance – а раз проводишь проверку качества, делай это качественно

Вот это мне особенно понравилось! Реально ведь встречаются люди, которые так думают.

Теперь нужно сосредотачиваться на этих end, читать их (а вдруг там не end?), тогда как скобки обычно просто воспринимаются в фоне.

Справедливости ради, по гайдлайну этот пример на картинке нужно переписать как-то так:


package newsyntax:

    abstract class C():

        def this(x: Int) =
            this()
            if x > 0 then
                var y = x
                while y > 0 do
                    println(y)
                    y -= 1
            else
                x match
                    case 0 => println("0")
                    case _ =>

    end C
end newsyntax

Это и компактнее и, имхо, читабельнее. На картинке сделано с кучей end просто для понимания соответствия старого кода и нового.

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

На данный момент на последний вопрос ответило 25 человек. Это, конечно, сложно назвать репрезентативной выборкой, но то, что количество людей, писавших до Scala на Python и Haskell в сумме больше, чем на Java — для меня сюрприз. Возможно, Одерски не так уж неправ, вводя этот новый синтаксис.

Нет мотивационной части судебного решения, или хотя бы популярного разбора по существу. Зато есть подмена фактов и контекста эмоциями. Не люблю такие тексты.

Код DAVA выходил под BSD, даже если WG резко изменят свое решение, они не могут поменять предыдущую.

Не уверен, что с юридической точки зрения это так. Нужны ссылки на какую-нибудь судебную практику по таким вопросам. С мотивационной частью, собственно :)

Поправка: они утверждают, что свой движок писали с нуля, не испульзуя DAVA. Вероятно, им удалось это доказать в суде.

Насчет отзывов я не слышал, но Торвальдс вполне себе менял лицензию на ядро Линукс. Сначала он поменял исходную лицензию, которая запрещала коммерческое использование на GPLv2. Потом, когда вышла GPLv3, и часть комьюнити хотела перейти на нее, Торвальдс решил не переходить.

Может для вас это конечно новость, но владелец исключительных прав может менять условия лицензий, может отзывать лицензии у конкретных лицензиатов. В тексте BSD ничего не сказано про то, что ее нельзя отозвать. По-моему, юридический спор тут весьма нетривиальный.

Я степень схожести по каким критериям определять будите?

Ровно по тем же: джойстик, прицел, пустыня с пальмами, вид от третьего лица спиной по пояс, пятый пункт про врагов мне не очень понятен.


Из приведенных вами скринов и видео ближе всего Hitman, но я не вижу там джойстика (в левом нижнем углу вроде как карта), такого же прицела и пустыни. Если открыть рядом скрины ВГ, Блитз и Хитмена, первые два гораздо ближе друг к другу.

А вы видимо мастер манипуляций на ЗП у WG?

Спасибо за этот великолепный аргумент! Пусть он останется венцом вашей плодотворной дискуссии с голосами в собственной голове.

Они взяли движок, на который у WG исключительные права, и подумали что лицензия BSD им что-то гарантирует? Мне прямо очень интересно увидеть, что там нарешал белорусский суд, особенно мотивационную часть.

И чтобы понять абсурдность претензий, не нужно иметь семи пядей во лбу.

Ну как минимум, надо прочитать сами претензии, правильно? А мы видим какой-то кусок, который выдран из контекста. И даже по этому куску понятно, что он шел под 82 приоритетом. Нам это выставляют как полный список претензий.


Mass Effect-ы, Ведьмаки, Скайримы, ГТА-хи, Хитманы, MDK, Сэм Фишер

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

Если Blitz Team вывернули всё наизнанку, то почему не показали свои документы, если правы?

Вообще в статье сказано:


WG публично формировал в прессе наш образ как недобросовестных людей и расхитителей его интеллектуальной собственности

Ссылки, правда, не привели. Зачем вам? Вы ведь уже знаете, кто добрый и кто злой.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
Java
Scala