What is this good for? Is it any good at all?

What is this good for? Is it any good at all?

Other urls found in this thread:

github.com/lauris/awesome-scala
scastie.scala-lang.org
twitter.com/AnonBabble

Scalability
Really good to use with design patterns

>Javashit

A lot of things. Probably the most important area where it's used is powering big data / big websites (like 1/3 of the really big websites you might remember) / big processing.

But some people also are making Android apps with it and such.

This list might also help to indirectly describe what it is pretty good at:
github.com/lauris/awesome-scala

It’s popular in fintech.

I’ve been looking at it lately. I’m not a big fan of the Java platform, but as a language Scala looks pretty damned decent.

Related projects like sbt also are fucking amazing.

Though of course, there are things people complain about too, Scala doesn't compile fast (recent versions had improvements, but people would like it to be quicker) and teams may have issues dealing with the power of Scala and the "intrusion" of FP techniques that the clever two guys understand and the rest does not.

interesting. I'd like to get started with it, any recommendations?

Cool, thanks. I’ll take a closer look at sbt.

I’ve seen those complaints. They irritated the piss out of me ;-)

One of the things I dislike about Java is its clear design goal of commoditizing programmers. Personally, I’m pretty well versed in imperative, oop, declarative, and functional so it’s not something that bugs me, but it was annoying to see that some larger organizations that had used Scala were moving away because: “the learning curve is too hard for the new guys”.

Basically grab IntelliJ IDEA (if you want an IDE) and maybe the current edition of "Scala for the Impatient" or "Programming in Scala" or such.

And read the sbt docs so you can do dependency management and stuff with it from the start (it's pretty well-integrated into IDEA, but you should try to just run the same thing in a Windows VM -from your usual Linux dev machine- at some point to see whether your projects are working as intended).

I’m only taking a look myself, so I don’t really have much in the way of advice. Personally, I have a book and I’m going to brew install “scala” and “sbt” under MacOs and just start banging away. Though if you go to:

scastie.scala-lang.org


you can play with it online.

Sure. I kinda get the annoyance too, they should actually train or hire somewhat competent people. But I guess leadership in business is more fun if the programmers are fully replaceable at a moment's notice...

Arguably, Scala is "commoditizing" distributed parallelism now. Something that used to be an extremely expensive and arcane before. (Never really worked right before unless you had an amazing team and a lot of time and hardware, Spark is the thing that does a vast amount of it after Hadoop already did some.)

You don't even really need to install "scala" - honestly just let sbt manage it.

"scala" is sbt's "console" target then.

Cool, thx.

PS: The advantage is that ultimately you'll have all the plugins at hand (just in case you want to get an IDEA project or publish to CI or a self-running JAR or send stuff to Android after all), and automatic actions on file changes with ~compile or ~run, and your libraries are managed and cached between projects, and so on.

IMO you only really need the JVM and sbt.

Interesting.

It is nice to see that sort of thing being handled by the right tools instead of by hand though. I’ve had just about as much in the way of race condinitions and deadlock

...to last a lifetime.

Any thoughts on Clojure? I find the Lisp influence cool, I’ve banged out a lot of Scheme...but Scala looks more ni

I'm kind of confused sinceI only learned Java at University. I know you don't need an IDE to build Java programs, you can just as well do it via cmd. I don't understand what this sbt is about? Could you try to explain it for a retard like myself?

(twice I fat fingered ret...)

....”scala looks more interesting”

Wiping

(cont'd)
Ah yea, sbt also is the common method to do cached compiles, too. So Scala compiles faster with it.

No problem.

Yea. Though someone eventually HAD to get a language and framework that didn't explode on more general computation tasks, right?

Arguably Erlang already had actors. But Spark is just finally "it". The JVM has all the other complimentary tools too (Cassandra for instance, and the JVM itself). This thing is close to "justwerks" for making most data crunching programs distributed. Which is why everyone jumped on it.

mfw there are people on Sup Forums who actually know their shit.

shit man.. what do I need? I don't want it to end up like VS taking up 60GB of my SSD

Good point. Funny you mention Erlang...I started looking at it years ago but never did anything with it. I’m a little disappointed since it’s influence seems to be showing up a lot lately. I understand its theory, but I never wrote any code.

I’ll take a look at spark...

> I don't understand what this sbt is about? Could you try to explain it for a retard like myself?
Sbt is a build tool with plugins. Something like cmake or gradle or whatever else you might know.

Base functionality is to manage dependencies and make "scalac" and friends build all your project's files, with some caching functionality so it doesn't recompile unchanged files and stuff.

But then sbt really does just about everything else too for the scala ecosystem. With the android relevant plugin, it'll invoke the android emulator for you or install and run your .apk after it has built it, for example.

Or you can make it automatically run a "best practices" type of source code "linting" tool that complains whenever someone uses two instead of four spaces when your team CLEARLY has agreed not to do that..

I started doing Project Euler problems with it, it's pretty nice.
Also good for the Big Data meme.

It's not VS, it will be hard to make it huge.

Also, just pick nothing and install Scala from the plugin manager if you want.

Scala to Java is like C++ to C. It's a really complicated kitchen sink language. There's just so much shit you can cook up with it, they even added macros, can you believe it.

Website tells me I have a choice. I have no problem working with the command line. What do you personally recommend?

>i'm aware that scala has some vague relationship with java but that's about it

IntelliJ. Though really nothing will stop you from just dropping back to, say, vim and sbt at any time.

The project is there, do "sbt ~compile" or "sbt ~run" and hack away in vim rather than IntelliJ if you feel like it.

thanks a lot man

IntelliJ because Czech Republic produces the best: Beer, firearms, and software

Don’t forget the women ;-)

No problem. Hope you have some fun with it.

And the best software that features their own firearms