Is Scala any good? Is it worth learning or is it just a meme language?

Is Scala any good? Is it worth learning or is it just a meme language?

I took an online course for Python (I know) that was supposed to be an intro to programming. Didn't learn jack shit really, just doing retarded problems some pajeet was recycling where the answers were already on course hero.

I just want an honest answer about it, with the occasional shit post here and there. I stopped my online courses because being in the military and trying to go to school is hard as fuck when you have to get like 7 qualifications in under a year that normally take a year and a half to get.

>feels bad man

Other urls found in this thread:

scala-android.org/
twitter.com/SFWRedditGifs

If you're using it to learn FP concepts or to get a job at a specific Scala company, go for it. Otherwise it's not too useful, you're better off learning Java for employability (yes, shit language, whatever, but it pays the bills) or Haskell to really learn FP.

Roger that, I had a feeling Java would be one of the recommendations employability wise but when I look at it I just want to stab someone, what are your thoughts on Kotlin if you have used it? It gets rid of a lot of the autistic boiler plate, but I don't think many companies have switched to it. I am liked F#, seems pretty straightforward but like you said, but probably not a language that is employable issue of MS.

*outside of

bump

If you are looking for an under performing slow language just go use python

Scala is meme, Clojure is the true JVM functional language.

WebDev becomes so goddamn easy in Clojure, everything else seems like a joke.

thanks newfriend

Wait until you try Elixir.

Scala actually has pretty wide industry adoption, as many JVM languages do. I would consider using it, but if your goal is to cast a wide net, then nothing beats Java.

The thing is, a lot of java companies will introduce scala since it is relatively close and the dependency chain and deployment methodology is similar, Amazon is an example of a company like that.

>Scala actually has pretty wide industry adoption
I still marvel at this. How the fuck did it happen? However he did it, Odersky pull one hell of a con when he tricked corporate drones into committing to I-can't-believe-it's-not-Haskell under the guise of a better Java.

Literally just being able to leverage Java libraries. Companies have huge collections of libraries that they couldn't walk away from, but if they can get the best of both worlds then greenfield projects can benefit from scala while still retaining functionality of their old clients.

Javascript is also in very high demand

It's less of a headache than Java I'd say, though maybe a bit weird because it's asynchronous.

Another tip: most data engineering/big data tools have a Scala API.

Spark is Scala-first and lots of people jumped on the bandwagon. Its still the case today, Flink (which is considered next-gen) offers a Scala API for the sole reason of being attractive to the guys that spent time to learn Scala.

OP here, thanks for all the feedback and mild shitposts. I'm going to settle on java, grind my teeth and bear it.

it's not so bad if you learn the IntelliJ macros

I tried to learn it. I bought the odersky book and followed the coursera courses, but eventually failed because at some point you meet code written with scalaz.
Now I'm learning Haskell to grasp functional programming principles used in scalaz.
if I get better at FP I'd like to start learning Scala again.
Basically the strong point is that there is a correspondence between Scala and the Java it compiles to, so if you don't have that specific library you need for Scala, you can always fall back to Java.

Wat? Scala is primarily being used in performance critical uses (message queue on twitter and fetlife, computation/data engine for cloud stacks with spark, and so on).

>Is Scala any good? Is it worth learning or is it just a meme language?
It's good as evidenced by it providing the most viable parallelism frameworks with Akka and Spark.

This shit was trouble for more than a decade, and Spark busted the shit out of the obstacle.

From only a few companies managing to deploy a few limited applications in a more distributed / concurrent fashion outside of some DB replication based hackery, we've gone to hundreds of production Spark deployments that actually were fairly reasonable to create & deploy.

This is a huge accomplishement for Scala and Spark both.

Not that it's all super easy (it's certainly not, it's just something almost too hard that became quite feasible now) and perfect. Things are still getting better rapidly and other languages will surely eventually come up with something a bit like Spark...

But it shows Scala (+ Spark and sbt and other tools and frameworks around Scala) did a few things VERY right. Could be worth learning if you're interested in that niche.

> I still marvel at this. How the fuck did it happen?
Scala is quite good and sbt & spark & other frameowrks are amazing.

> Odersky pull one hell of a con when he tricked corporate drones into committing to I-can't-believe-it's-not-Haskell under the guise of a better Java.
But it's basically that.

NOT because you can entirely make every code monkey use it instead of Java and he will be more productive.

But because talented developers have shown that they can make sbt and spark and akka and scalatra and slick and scala-android and all these things with it that never were made anywhere near as elegantly with Java.

As for Haskell: While it is occasionally is more elegant, it really never really managed to make it feasible to hire enough okay programmers for it & keep performance in check & still get shit done in most fields. And it's not just the developers, it also is a headache for IT. Deploying and maintaining Haskell and libs for many programs actually pretty much sucked for a long while now.

Either way, Scala's success is not an accident, It just actually worked.

If you want $ and don't care about your sanity, it is totally worth it

Scalaz -like the Haskell- is close to the frontier of fairly clever people trying to make functional programming work better.

It has a niche around the Scala ecosystem, but the enterprise production toys are typically at most dipping a single toe into Scalaz land, for good reason.

You might follow the same practices and stick mostly with the more imperative & conservative "pimped Java" Scala programming style. The FP things that work without much trouble and confusion are seeping into main Scala and more enterprise-like libs anyhow.

Enterprise Scala ($) is typically not that insane.

Even if it's not all peaches, sbt alone already might give you and your colleagues a 50% sanity gain in a corporate setting.

what? once you grasp FP a lot of the concepts in Scala seem very natural and to an experienced programmer are already intuitive

this is true, if you treat Scala as a statically typed version of Python where you can leverage FP, OOP and Iterative style it works well.

Also a major benefit of Scala is that it isn't Java but it can use all of Java's native and external libraries, which have been quite extensively developed. If Scala chooses to ditch the JVM and go completely to Scala Native I think the language will die off or end up as obscure as Haskell.

Just learn python first, it offers everything a beginner needs to learn programming. Some other language isn't magically going to be better for you if you can't even become halfway competent in python. If you need specific features later that some other language might offer, you can always jump to that. Because many concepts you'll learn will apply to any other modern programming language, and thus should be familiar to you at that point.

Totally meme tier.

It was looking promising a couple years ago, as companies like LinkedIn dove headfirst. Some other really cool software was written in it.

But it's just too damned hard to learn and use. It tries to do everything well, and does a pretty decent job at it, but as a mortal, keeping it all straight in your head is a lot of work. While Scala isn't too hard to do some more basic work in, the more you learn Scala the more you get confused about how you should use it. Beyond that, it's just mentally fatiguing to use.

All the companies that adopted it are abandoning it, and now it's just very expensive code to maintain.

I'm going to second Elixir.

Here's what you do if all you care about is making money ASAP:
1) Go on job sites.
2) See which languages are in demand.
There are aggregators that do this for you and list the languages with the most ads.

Alternatively, look for the types of jobs you want to do at the companies you want to work for, see what languages they need, then learn those.

Protip: You'll get paid 100 times over learning something like Java or C# before you start getting paid with some of the languages suggested ITT.

With that said, if you have time, just learn general programming and the theoretical background. Additional languages are easy to pick up after that.

Oh, totally missed the "I'm a newb."

Yeah, just go with Python. The language sucks, but it's totally basic and let's you focus on the basics of programming.

> this is true, if you treat Scala as a statically typed version of Python where you can leverage FP, OOP and Iterative style it works well
I honestly think this is the general state of affairs where programming for production right now works well.

Pure FP is IMO at a level where Haskell and Scalaz and Erlang and so on are still trying to figure out what belongs into a standard library and what will result in a massively under-performing and complex clusterfuck of structures in production. It's not... easily usable in many ways.

Scala's way is ~as good as it gets.

>All the companies that adopted it are abandoning it
How do you come up with that kind of shit?

If anything, we have more companies using it now that Spark is about the most successful open source project apart from Linux.

The devil is in the details. We went from haskell to scala and things most certainly aren't intuitive. The type system in particular is decieving as fuck. Lots of little gotchas that will leave you asking "wtf were they thinking".

When does going from Haskell to something else ever work?

No other language comes to mind with an equally insanely huge pile of types and concepts all across the ecosystem.

After splitting our research from university into our own company, we migrated from haskell to ocaml and that worked quite well. The ocaml module system is great, the performance gain was, at the time, significant and overally ocaml was just a big gain in both productivity and corectness. There is still an issue with regards to build system, but i still think that ocaml is the pragmatic fp language. It almost offers itself to formal verification, which is a huge bonus

I doubt that it's still this bad but when we used it it was producing 300GB osgi containers for just some basic stuff. I'm pretty sure this wasn't normal, but we ended up having to just rewrite that part in java.

> 300GB osgi containers for just some basic stuff
No, that's definitely NOT normal. How the fuck did that happen...?

It's not like it's OSGI containers, but if you deploy something with somethign like scala-android.org/ (has proguard and stuff cutting out surplus), you end up with JARs a few kb to a few MB large, nothing special.

Scala doesn't really inflate classes *that* much in most cases vs Java, though it does a bit on average.