
Во-первых, Рэнт
Scala — прекрасный язык для работы. Как только вы освоитесь со Scala, вам не захочется возвращаться к Java! Очень быстро вы заметите, что Scala чрезвычайно лаконична, что позволяет вам закодировать множество функций за короткий промежуток времени. Из своего опыта и из разговоров с другими я понимаю, что изучение Scala — это разочаровывающий опыт. Становится трудно «чувствовать» себя знатоком Scala даже после прочтения нескольких учебников, включая «Программирование на Scala» Мартина Одерски (создателя Scala!) Многие люди, которые с энтузиазмом начинают изучать Scala, останавливаются на полпути по разным причинам — другая история для другого дня, т. е. романтическое видение Scala — это то, что Scala — это то, что быстро исчезнет!
Предшественник
Некоторое время я провожу несколько обучающих партий на Scala. Основываясь на своем опыте, ниже я перечислил, что я считаю правильным способом изучения Scala.
Обучение

Изучение Scala должно произойти, преодолев 3 пропасти
- Функциональное программирование
- Объектно-ориентированное программирование
- Краткий синтаксис, он же Syntactic Sugar, он же Weird Syntax
Chasm-1: функциональное программирование (FP)
Если вы сможете правильно ответить на следующие два вопроса, то вы, по крайней мере, на полпути к пониманию FP.
1. В чем разница между процедурой и функцией?
2. Что значит написать функцию с побочными эффектами?
Мы пишем много императивного кода. Мы мутируем состояние переменных. Можно ли кодировать без изменения состояния переменных? Да, это то, что делает функциональное программирование. Scala — мультипарадигмальный язык программирования. Вы можете выбрать императивную, функциональную или объектно-ориентированную (ОО) или, что еще лучше, взять лучшее из всех этих миров и смешать их вместе! Большая часть нашего академического изучения языка программирования научит нас процедурному или объектно-ориентированному программированию. Но для большинства из нас FP — это что-то новое. Чтобы читать код Scala, необходимо хорошее понимание FP! Функциональное программирование учит нас обращаться с функциями как с конструкциями первого класса. Хорошее изучение Scala должно начинаться с хорошего понимания функционального программирования.
Пропасть-2: объектно-ориентированное программирование
Как только мы освоимся с функциями как с первоклассными конструкциями, следующим шагом будет изучение объектно-ориентированного программирования на Scala. Scala полностью объектно-ориентирована! Если вы знакомы с ООП на любом другом языке программирования, это поможет. Но, тем не менее, вам будет намного лучше, если вы отложите свое текущее понимание ООП и изучите Scala как новый язык. Но из трех упомянутых выше пропастей эту преодолеть легче всего.
Chasm-3: Синтаксическая лаконичность, также известная как Syntactic Sugar, также известная как Wierd Syntax
Скала лаконична. Вы пишете столько кода, сколько требуется. Одним из способов достижения этого является введение большого количества синтаксического сахара. Синтаксический сахар — это короткие сокращения синтаксиса, которые значительно облегчают набор текста. Синтаксические сахара считаются более выразительными и позволяют писать читаемый код. Но для непосвященных эти синтаксические сахара покажутся странными. Вы чувствуете, что происходит слишком много «волшебства», которому вам остается только удивляться. Вот почему без хорошего понимания Scala становится сложно читать чужой код. Так что это будет последняя пропасть, которую нужно пересечь. Как только вы освоитесь с этим, вы начнете любить Scala.
После того, как вы благополучно преодолеете все три вышеупомянутые пропасти, работа со Scala станет легкой задачей. Вам так понравится, что вы начнете думать, что Java неуклюжа и неуклюжа!
Эта статья, помимо изложения моего мнения, также является приглашением для вас изложить свои взгляды. Не стесняйтесь поделиться своим мнением или своим опытом работы со Scala. Если вы хотите узнать или обсудить Scala, напишите мне. Спасибо и счастливого обучения. Впервые я опубликовал эту статью в своем профиле LinkedIn здесь. Вы можете прочесть это и там!