Впервые столкнулась с ней, когда мы хотели считать графы, код на спарке конкретно падал, и я попробовала переписать все на скалу. Боль началась уже с чтения json-конфига🥲
Scala в моей голове была очень похожа на Java, но это совсем не так. После слез, страданий, знакомства с синтаксисом циклов и бесконечным количеством типов получилось что-то такое:
import org.json4s._
import org.json4s.jackson.JsonMethods._
val filename = "config_v1.json"
val config = parse(Source.fromFile(filename).getLines.mkString)
implicit val formats = DefaultFormats
for {
JObject(table) <- config
JField("columns", JArray(columns)) <- table
} {
for (column <- columns) {
val colName = column.extract[String]
// ...
}
}
}
Уже
🟢начало приходить понимание,
🟢конструкции не казались супер необычными,
🟢return без return - это норма,
🟢вызов функций без скобочек - это норма,
🟢отвращение отошло на второй план.
Но потом я решила погрузиться еще раз и пройти курс на степике🤓
Я снова перестала воспринимать скалу как что-то естественное. Это какое-то обилие скобочек, черточек, стрелочек, обозначающих сложные математические штуки.
😭 Однажды сидела на конфе с челами, которые реализовывали доказательства теорем на хаскале и не понимала абсолютно ничего. Запомнила только, что много раз повторялось слово "монады". Ощущение от всего этого примерно такое же.
Тут выжимка самых странных операций)
