What does Sup Forums think of Scala?

What does Sup Forums think of Scala?

I've heard it gets way too complex/messy on larger projects. Is this true?

How does it compare to Clojure/Kotlin?

Other urls found in this thread:

manning.com/books/functional-programming-in-scala
twitter.com/SFWRedditImages

AN ERROR HAS OCCURRED

Its an ugly heap of shit that took the amiable task of improving java and managed to actually make a language worse than java.

If you have to use fucking java, use Kotlin.

>worse than java
how so?

They are all messy as fuck.
I love to program in lisp so I tried clojure as it has cross platform support via the java library, but the error messages suck.
Common Lisp lets me get the job done even if that means shit code using mutation. Clojure is all or nothing functional programming.
>inb4 you can "mutate" using atoms!!
the fact that I have to deal with that takes focus away from the problem at hand and makes me slower

tl;dr stick with java on the jvm kiddo

>can't deal with immutability
why are you even using lisp then??

Not true. It has a initial steep learning curve, but it becomes very nice after a while.
You have all the advantages of FP and can fall back to imperative for performance reason, even though the more FP you stay, the better.

It's not so easy to pick up though, if you want to get into it I can suggest you a few books/resources.

>Is [meme] worse than [meme]?
Yes, and unironically kill yourself if you use any of these

Immutability is difficult
Ive been trying to do it over and over again but I can't fucking get good at it.
I know it's a better paradigm but I just don't think that way I guess.
Common Lisp doesn't force me to do anything, it just let's me do whatever I need to do.

Explain? Scala is really good for some use cases.
Spark is becoming huge.

have you worked on a large project with scala?

These "shortcut" languages contribute to the shit-ification of software, as people don't learn how to write real software, and instead introduce a billion ever-shifting dependencies. And of course, they also contribute to the poo-ization of our workforce, as employers will outsource the work and leave the organization before the dependencies catch up with the project.

I would say mid to large project.
Integrity verifications on a Log Management System, Archiving of the same data, Reindexing and the like.

Not the original user but please recommend me FP books.
I tried to read land of lisp but the games were way to complex for me. Already read LoL, PCL, and Learn you a Haskell..

t. brainlet junior in high school

>inb4 you must be 18+ to browse Sup Forums
give me good book recommendations and I will leave

manning.com/books/functional-programming-in-scala
This is a nice book, I bought it so I cant point to a pdf, but I'm quite sure you can find it for free.

C, C++, Java, maybe Python are all I have ever seen anyone use in a workplace environment. New stuff is nifty, but probably only fun for the people writing the language, not all that practical for developers. The new stuff that keeps popping up, Scala, Go, Rust, etc is a meme, interesting but not practical

braveclojure.com

>Immutability is difficult
It really isn't. You just have to approach problems differently.
The approach is obvious when you learn a pure functional language. I'd suggest you try Elm, make some small webapp as a project and functional programming as a whole (rather than just immutability) will click better.

>C, C++, Java, maybe Python are all I have ever seen anyone use in a workplace environment
what about PHP and JS :^)

thanks
how does Scala compare to a fp language like Haskell?

I tried to learn Haskell and read about half of "learn you a haskell for great good" but I still couldn't solve problems when I tried to write simple programs

How long does it take for you to become productive using a fp language?

~1-2 weeks with Elm.
A few years with Hasklel.

Ironically, learning Elm and then Haskell will shorten the time required to learn Haskell. I've learnt the most Haskell by doing Elm, F# and Idris.

I did a lot of practice "fizzbuzz" problems using clojure on 4clojure.com
I enjoyed it but every time I have to make a gui that interfaces with javafx I find myself going back to java

How hard is it to get started writing graphical applications using elm?
Usually I like to write games and fun projects when learning a new language, if it takes to long to go from fizzbuzz to hacking I get bored.

We use Python (Django framework) instead of PHP, I guess there is javascript (not my division, I'm backend), but I would again hesitate to consider JS anything but bloat
>inb4 pythonista

use java for the main program and GUI, clojure for business logic

A few hours. The author of Elm made it as part of his thesis on an architecture for making GUIs in a pure functional way, so that's it's forte.

It's web oriented for now, but people have written browser games with it.

I used django for a uni project, it seems good to have something fast.
What's your opinion?

Sorry for so many questions, but does the java interop get messy on big projects or is does the interaction between clojure and java feel clean?
Thanks for the actual responses, very much appreciated.

Awesome, I will definitely be looking into elm later today.

I hate the {% code %} way of tagging code, that key combo seems so awkward. But like pure Python it allows you to get something prototyped and working very quickly, which is great. The product that my company produces is almost entirely written in django, it seems to have scaled up well.

it certainly could get messy, but you need to design the interfaces between the two as cleanly as possible. clojure files should have as few entrypoints as possible from java, and you should encapsulate the interaction between them.

It is good. One of the complex, powerful languages that is progressing to become much better over time.

And the ecosystem has some marvellous libs and tools like sbt that really are at the apex of what's available. It's not the best at everything of course, but there are bits even in the ecosystem that do make a good point for why you'd want to use Scala.

No, its not bigger projects that get "too complex". Its bigger teams of C++, Java or whatever developers that have members that will never manage to learn what the brighter scala developers used to write their code.

It can do full FP, but not all the elegant syntax and tricks from Haskell will work.

OTOH haskell is completely shit if you need to solve a problem more OOP/procedural style rather than through a zoo of functional types and Scala does it quite well, so it actually got way more shit into production than Haskell...

Slow compiler, still half baked type system.
Dotty maybe change thing if get full stable release.

Clojure very nice and stable,amazing creator, but bad error message,plus low jobs available.

Kotlin good replace for Java, perfect performance and interoperatibility plus a lot nice things, more jobs on android or backend.

I agree about slow compiling, however the collection apis is great. Unified methods, fast conversion and great paralellism api

Scala was not meant to "improve java", it was meant to augment it.

Scala is fantastic if you already have an established Java ecosystem in-house, and you need small scripts for specific tasks.

Does it run on the JVM? Then it fucking doesn't matter. The JVM is shit.

t. NEET