Недавно я купил Программу Scala и читал ее. Язык определенно не то, что я ожидал! В частности, он, похоже, реализует практически любую идею языка программирования, о которой я знаю, вне макросов Lisp и сегрегации побочных эффектов типа Haskell.
Честно говоря, это меня несколько ошеломило. Хотя я полагаю, что в моем распоряжении было так много инструментов, я действительно искал строго типизированный функциональный язык JVM. Я предполагаю, что я мог бы, вероятно, использовать Scala таким образом, но я думаю, что если я буду взаимодействовать с любыми библиотеками или пройти через любой другой код, я буду сталкиваться с этим передовым (для меня) материалом ООП - чертами и "линеаризация иерархии объектов", все эти абстрактные и переопределяющие бизнес-объекты, одиночные, пакетные и сопутствующие объекты, неявные преобразования... не говоря уже о различных синтаксических ярлыках и сахарах.
Люди часто жалуются на программистов, которые пытаются обучить один языковой стиль другому, по множеству веских причин. Но не все языки являются мультипарадигмой как Scala, поэтому, возможно, у ее сообщества есть другое представление? Например, в F #, кажется, есть некоторая свобода в стилях программирования и сколько OOP вы используете. Но только после чтения я не уверен, что это хорошая философия для Scala.
Могут ли более опытные программисты Scala помочь мне здесь? Изменить для ясности: В принципе, могу ли я безопасно использовать только (или в основном) функции FP Scala, не беспокоясь о своей расширенной стороне ООП?
Извините за бессвязный вопрос!