Another Pointless Scala Rant

Now to start I actually enjoy working with Scala, as it’s fairly simple to pick up like Python and can accomplish a lot in fewer lines. However, Scala has been driving me up a wall on other details such as lack of documentation (going to Java docs for each issue then converting it over is mildly annoying), can we please fix the Java stack traces, functional plus object oriented intertwined causes headaches (this is preferential, but I’ll explain later).


Lack of Documentation

Now to say plenty of courses, YouTube videos and Github repositories don’t exist that at minimum can get you started would be a lie. However, we are engineers so naturally everything is over-complicated and has way too much nuance to it. This is where the lack of documentation kicks you in the butt. What happens when you setup with Gradle instead of SBT and run into a specific issue with a library. Several scenarios and common traps aren’t covered yet and it’s frustrating to go into the wild to figure a lot of common pitfalls that seem to be tribal with the language.

Java, java java. Every time I have research a usage of a specific library or setup it seems that Java has documentation for it. Now this is small, but why can’t Scala have the same documentation with the setup. I get it’s very similar, but that’s another layer of issues I don’t want to spend time with.

However, I see a bright future as this language becomes more adapted in this data centric world we are trying to build at the moment. The adaption is slow, but this will get increasingly better overtime.

Stack Traces

This is minor as Java stack traces eventually get you the answer you want, but why are these still here? I thought this language was supposed to be better, at least filter out some of this if possible. I know some wild compiler specific explanation will exist and somebody that’s been coding since the 90’s will write essays telling me how wrong I am, but for real can we clean this up a little bit?

Functional + Object Oriented = Whack

This is one main double edge swords of Scala. Several benefits come from compilation of as code as possible, but allowing other items to be set at compile time. However, this seems to be super risky to do without great care. The use of implicit, lazy values, and etc. seem to get creators in more trouble then accomplish saving of sessions/memory and I’m sure 20 other cases people can think of. I don’t like having an issue that is unknown until I hit a weird case causing an code to break. So it’s difficult to me, as I see the massive benefit, but at the same time it seems less rules on a language the more issues from that freedom exist. This is one of the cases that I don’t think having functional abilities in the midst of object oriented language doesn’t work out the best. I wish we had more defined ways to split out these two components in order to ease confusion. This is also a rough barrier to learning and understanding Scala as well.

Thanks for the read as usual.



Senior Brogrammer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store