Why is it so fucking good, yet so unknown?

Why is it so fucking good, yet so unknown?

Attached: scala-spiral.png (304x492, 78K)

It's pretty well known between employable people.

in context of what? Apache spark?

data science guys use this all the time

sure, but why isn't it more mainstream? literally better than java in every aspect

What is this

LinkedIn used it for Kafka and now everybody thinks its cool

What kind of faggot doesn't recognise a spring?

Excepting complexity. I agree that it's a better language but to say there are no drawbacks is asinine.

I thought it was cool before

there are more people that know java than there are people who know scala, i guess. if i was an employer i'd go with the most cost-effective solution since devs are expensive as fuck.
lol :^)

Attached: wei.png (1133x639, 907K)

>complexity
in terms of what

data science is a meme

it may be but it sure pays well.

Attached: 178.png (622x674, 231K)

It could not get rid of the Java stench

t. never used it
it literally combines the best aspects of Java and functional programming

sbt is too buggy to use

it's not buggy (albeit obviously not perfect either), you're just too retarded to use it just like 95% of webshits who first try scala

Overengineered mess with inconsistent syntax. Inexcusable for a language designed from the ground up.
Not to mention that it doesn't try to be a good language, just a "better Java".

>inconsistent syntax
I always see this meme, yet no one can post one. can you do better?
>overengineered
a.k.a "I'm too retarded to understand it"

>I always see this meme, yet no one can post one. can you do better?
You can use spaces instead of dots to invoke methods, for example, yet it's deprecated, YET some people use it.
For what grotesque reason it was allowed in the first place, I have no idea.
Haskell, Scheme modern Fortran and yes, even modern Sepples have more consistency, the latter at least being justified by backwards compatibility.
>a.k.a "I'm too retarded to understand it"
Being complex in itself doesn't make it good. And Scala isn't really a complex language.
Example: why do we even need case classes in the first place?
>more costly to implement
Ok. But the compiler should figure out by itself which classes are used in pattern matching.

I'd rather use the most recent versions of Java, which have functional programming support, than Scala. I see no real reason to use this language right now.

I used scala to develop my degree project in the uni, mainly because I had to comply with some bullshit like volume of the paper work and feeled it up with explanations of why I used Scala and how better it is compared to everything else (in fact it isn't). And, well, what can I say? It is a purely hipster bs for those who want some twisted concepts (most of which do not exist in real world and even those involved with scala can barely explain them). It is not for someone who needs the job done but it is way more complex than your usual c-style imperative language so you're free to brag about it.
Plus JVM itself is a mass so building anything on top of it is a mistake in the first place.

>Example: why do we even need case classes in the first place?
there you go guys, spared you 30 seconds of reading this retards post

Shill era was like 2010-2013
People use it as Java++ because functional was too hard, slow compilation, slow start up and haskell autism kill mass adoption, just few well made libraries make it better.

Scala is C++v2.0
Over engineered
Feature creep galore
Can do anything you want
Extremely powerful
Extremely complex

Just like C was the de facto programming language when C++ came out so was Java the standard when Scala came out. Its quite literally C++2

Having said that I prefer f#. It’s easier to learn, probably just as powerful, you don’t have to deal with the JVM and has better type inference.

To answer ops question it’s not popular because a. It’s a very hard to shill language to management and b. It’s not something you can teach in a month long bootcamp
There’s also the issue that companies believe that it’s hard to find Scala programmers. But it’s been proven time after time that when your company adopts a good language, you may have less applications but those people applying for the job will be orders of magnitude better than the candidates when you’re hiring for java programmers

>why do we even need case classes in the first place?
different language but concept applies

Attached: 1_NQ1f28kf1wcUrSxZgvjtRQ.png (1600x1326, 198K)

It's good, but complex.

Most people are and want to remain code monkeys, and the problems they are dealing with are either way not demanding more than some Python hackery. So they stick with that.

In terms of idiomatic code. As in, the kind of code you're expected to see in a Scala program. It's a bit like C++. By itself it's not a very complicated language. But C++ is not just plain C++, it's C++ and the stl. And that's where the complexity arises. When you have to write idiomatic C++ that makes heavy use of the stl.

With Scala it's the same thing. Scala by itself is just another language. But when you start doing real work with it you soon see how complex it gets. Scalaz is a must, and it's pretty darn complex. Then you have Akka, which is another huge layer of complexity on top. And if you wanna do data science? You better start learning Scalding and a lot more things I don't know. Then you have custom operators. And then you're given an idiomatic .scala file and it looks like you're reading an 18th century grimoire on how to summon a demon.

F# is a too basic language, to the point where it is virtually useless without C# and still bad with C#. There is a reason why far more production software (*important* production software) runs Scala than F#.

And .NET is ultimately Microsofts crappy walled garden in disguise.
In reality the JVM is far more the "many languages" runtime / coordination platform and just about the whole ecosystem is focused on it, not .NET which is just used for Windows/Microsoft trash stacks. Even if .NET itself isn't terrible technology, it's terrible to work with.

>akka is complex
literally a child could understand it, you just take the class names for what they represent in an actor system and you understand the whole network with a quick glance

Did you get past the hello world? because I'm assuming you didn't if you think the actor model is easy. It's hard enough in Erlang/Elixir which is a super simple language. It's a lot harder in Scala. Designing a robust supervision tree for an application that is even remotely more elaborate than a weekend hobby project is complex. Very complex.

Never mind the fact that Akka is not just about actors (and supervisors which you didn't even mention). But it also includes http, streams, persistence, clustering, distribution. Sure, if you're going to look at Akka with the level of detail that a child would look at it, even a child can understand it. But if you're going to do any real work on it you can't get around the fact that it's complex. And it's just one part of Scala. It isn't even the whole picture

>complex systems are complex
not really convinced by this argument since there aren't better alternatives to akka or the other stuff you mentioned
it shouldn't be an argument against the language since every language gets "complex" the more new libraries and frameworks you add to it

What a great counterargument.

I dunno, ask the dudes if they already finished that new compiler and if it compiles fast.

incremental compiling is just fine

And this answers OPs question.

>is just fine
So it's way below a second on an average computer?

what the fuck no real project is going to take less than a second
my c++ project takes about 20 second (up to 60 if it's the first build of the day) for an incremental compile, using the incredibuild accelerator and I have a top of the line CPU

see

>my C++ project
Stopped reading there. Friendly reminder that with Delphi, Jai (employing LLVM optimizations) and D (well, before they went full retard with metaprogramming in their standard library) can compile the average program in less time. Delphi could compile 1 mio lines of code at one point.
When compilation takes really long, like with Scala, Hasklel, C++, Rust and so on it is likely for at least one of the following reasons:
- botched compilation units and feature export/import (botched language design)
- botched compiler implementation
- botched compilation and/or linking model
- feeding the backend poorly/wrong choice of backend (often with LLVM, see also, JIT compilation with LLVM)
- going over the top with metaprogramming or picking the wrong grain size of metaprogramming

Now, what is it going to be for Scala?

>implying anyone is going to read this

not everyone is a illiterate as you