[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

Is Scala worth learning in 2017?

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 48
Thread images: 6

File: download.jpg (8KB, 412x122px) Image search: [Google]
download.jpg
8KB, 412x122px
What major companies use Scala? Is Scala worth learning in 2017? If I learn Scala, could I easily learn Haskell? I am looking for a FP language that would make me employable. Coming from Java-OOP-Land.
>>
File: 1494635829576.jpg (7KB, 228x221px) Image search: [Google]
1494635829576.jpg
7KB, 228x221px
>>60441961
>>
>>60442024
what's wrong?
>>
File: 1494710639413.jpg (24KB, 400x267px) Image search: [Google]
1494710639413.jpg
24KB, 400x267px
>>60442066
Nah man nothing, Scala just makes me feel si-
>>
>>60441961
If you can learn Haskell and you already know Java, then you'd probably end up writing good Scala code.
>>
>>60441961
Scala is harder than Haskell because scala is bloatware. Learn kotlin if you want a JVM language.
>>
>>60442095
I don't know Haskell. I'd rather learn Haskell first, but I have a job opportunity if I learn Scala instead.

So, I almost feel like the uncool kid studying a language just to get hired when I'd rather be studying another language. Anyway, is Scala a good language to learn for baby's first FP?

If I learn Scala could I easily pick up Haskell? I'm going through the coursera class / another book.
>>
>>60442115
No Scala is not a good language to learn FP as it's an object-functional programming language, you'll probably end up not writing idiomatic Scala code as you only know OOP.

Read learn you a Haskell to learn some basic functional programming.
>>
>>60442129
Thanks for the link. I'll read through this. Do they actually teach what a Monad is if you read everything in order?
>>
File: 1492996060083.webm (3MB, 1038x720px) Image search: [Google]
1492996060083.webm
3MB, 1038x720px
>>60441961
Yes, Scala is the FP language that is most employable. Well-known companies such as Twitter, LinkedIn, The Guardian etc. use it. The language is firmly rooted in research (check out the upcoming dot compiler), while at the same time is highly productive for real world problems such as web services (Play framework), concurrency (Akka), and big data (Spark).

I think more people should consider it, I know I certainly didn't give it a fair chance. Coming from both a Java and Haskell background, it seems to me that it makes the right compromises. There's also quite a bit of innovative ideas, for example how tightly they were able to combine objects and functions, more so than any other language. I am a few chapters into Odersky's book and it's really good.
>>
>What major companies use Scala?
twitter, linkedin, theguardian.com
>Is Scala worth learning in 2017?
Tbh I was on the Scala hype train for a couple of years, but it has lost some steam recently. I also came to realize that the language is a bit too complex for my needs and the code I write looks messy with all them parentheses. I prefer Kotlin and Elixir nowadays, but I mostly do Java (and Typescript).
>If I learn Scala, could I easily learn Haskell?
You should do it the other way around -- learn FP in a pure, clean Haskell environment and then use that knowledge to do shit in Scala. I think that Scala's convoluted syntax and the mixing of OOP and FP makes it much worse for learning FP than Haskell. It's better for getting shit done though.
>I am looking for a FP language that would make me employable.
I'd say just do some Haskell in your spare time and wait a couple of years. And if not, Scala is the best choice right now.
>>
>>60442215
>>60442226
Thanks. I have a job opportunity if I learn Scala. Not sure if they'd hire me if I learned Haskell instead, so it gives me an incentive to learn Scala first. I will learn Haskell at some point and DESU I have been shifting between learning Haskell and Scala at the same time. I'm not deep into either to get confused, but I am afraid I'll have to eventually drop one and stick with the other.

Does Haskell have things like call by name and call by value that I'm learning about in Scala? Also, can either of you explain what the difference between lazy evaluation and call by name is?
>>
unironically it's a great language. Ignore the people here shilling that java/jvm is bad, or that OOP In general is bad. they're all retards who have never actually worked as programmers.
I love scala, it fixes 90% of java's problems. There aren't really many jobs with it though, most places, especially banks want java instead. (banks will probably continue to even if java gets cI basically only get to use it for my own projects, every employer I have only wants java.
I hope more people use it soon but it hasn't really taken off. Haskell is much worse, and has even less jobs (as in, literally nobody will pay you to write haskell). Where I live there aren't very many jobs in it, maybe there's more in the USA or something. Also, despite being kind of useless haskell is probably better specifically for learning functional, as scala is both.
>>
>>60442261
call by value -> call by variable*
>>
Used Scala extensively at a major investment bank. it was used a lot for parallel performance with akka actor model
>>
>>60442268

Cool, thanks for the insight. If it weren't for the job thing I'd learn Haskell first. But I really don't want to be a NEET any longer than I have to so I am leaning towards fully focusing on Scala for the time being. I can't find much on it and literally don't know anyone that programs in it.

What resources did you use to learn? My main point is the Coursera class and Atomic Scala. Any others you'd recommend?

Currently, I only know Java.
>>
Odersky teaching "Functional Programming Principles in Scala" on coursera. Starts this month.
>>
>>60442110
>kotlin
And enjoy being unemployed.
Yes OP. Scala is worth learning if you want to be employable. But learn you some haskell first so you can comfortably use scalaz
>>
>>60442360
Thanks. Enrolled in it.
>>
>>60442268
Nigga what? Do you live in africa or what? In central yuropoor shitton of companies are migrating to scala. There are about 10 haskell shops just in my shithole of a country and they all pay very well to their haskell programmers. Scala is being adopted so fast because it fixes most of java's problems while not forcing you into FP, which does result in terrible scala code being written, but it is still miles better than the java abominations we're all accustomed to.
Anyway. Learn haskell first, then go scala so you don't end up producing shit like the regular java monkey does.
>>
>>60442261
>>60442271
Lazy evaluation is when you don't execute code until you absolutely need the result. For example, Haskell will let you create an "infinite" list. You obviously can't hold that in memory, but once you try to do something on it, for example taking the first 10 elements from it, then it will actually go ahead and calculate those, but not any more than you need.

Call by name does what I described above, but if the same variable is used twice in the same computation it'll evaluate it twice. Haskell is call by need which is a bit smarter in that it will memoize (cache) the result and reuse it later on, and since it's pure (for the most part) there's no problem with doing so.

>>60442268
>unironically it's a great language. Ignore the people here shilling that java/jvm is bad, or that OOP In general is bad. they're all retards who have never actually worked as programmers.
>I love scala, it fixes 90% of java's problems.
word
>Haskell is much worse, and has even less jobs (as in, literally nobody will pay you to write haskell). Where I live there aren't very many jobs in it, maybe there's more in the USA or something.
I have a friend that writes Haskell professionally. But yes for the most part, most hiring is through people you know. There's some jobs in the Bay Area, some in the UK/Europe, some in Singapore (Standard Chartered)
>Also, despite being kind of useless haskell is probably better specifically for learning functional, as scala is both.
Agreed

>>60442292
OP you should also check out the book I mentioned in my previous response: Programming in Scala 3rd Ed (2nd Ed is too old) by Martin Odersky's (the creator of Scala). Kind of pricey but I seem to learn quicker or easier from books instead of videos, just my 2c.

Apologies in advance for formatting/typos, I'm on mobile right now.
>>
Read this to understand the advantages or niceties of FP

https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf
>>
>>60441961

I would learn something like Haskell or Erlang first (at least some basics) and then look into Scala.

You have to understand one thing:
Scala is a language for experienced programmers. It's basically the C++ for the Java ecosystem: powerful and great at what it does, but not something you learn at one weekend.


I was trying to get into Scala for fun. And the basics of Scala are great, it's much more sensible than Java most of the time. And list manipulation, iterators and so on are really good:

for (i <- 1 to 4)
println("Iteration " + i)

val myFiles = (new java.io.File(".")).listFiles

for (file <- myFiles if file.getName.endsWith("*.scala"))
println(file)



Looks nice, doesn't it?
But the deeper you get, the more difficult it gets.

For example:
Similar to Haskell you can manipulate (immutable) lists by getting the "head" (first element) and "tail" (rest) of the list. But the Scala syntax has so many different way to do this, and it's also different if you do it on a different data type.

I don't remember the exact details, but my feeling was that everything in scala makes sense - by itself. But when you put it together or look at code you realize how many different syntactical elements there are. It's really difficult to remember all those things.


And then you enter the "dark arts" - you thought C++ templates were difficult? Hah!

So I think Scala is a good language, but way too overpowered and bloated. To use the power features of Scala you really need a good understanding of what's going on under the hood. Think of a pilot that uses the autopilot for convenience, but knows EXACTLY when to use it - and what the autopilot can do and what he can't do.
>>
File: 1486545892524.jpg (11KB, 500x265px) Image search: [Google]
1486545892524.jpg
11KB, 500x265px
This "new hip programming language of the month" shit really needs to stop already.
>>
>>60441961
No, it is overengineered pile of shit
>>
bumping this thread.
>>
>>60441961
>Is Scala worth learning in 2017?
http://soc.github.io/six-years-of-scala-development/departure.html
>>
>>60442493
Thanks for the response. Your explanation made sense on the differences.

I'll get the recommended book and already started following the coursera classes.

People are recommending I learn Haskell first. Is it OK if I stick to the coursera classes + your recommended book? I have a job opportunity if I learn Scala first, otherwise I would learn Haskell first. I still plan to learn Haskell no matter what.

It seems like the Coursera learning will be fine, as to me it seems (least early on, I don't know about later on) it sticks to teaching things the FP way.

I already taught myself basic lambda calculus and am learning elementary category theory (working through a book).
>>
>>60442115
The issue I had with Scala is you can get away with writing straight Java and never really learn how to write in a functional programming style. Other than that no real complaints.
>>
>>60444746
Thing is it's learn something to get a job, or learn something else (which I really want to learn) and get no job. I need a job for the time being. So that why I was wondering if Scala is still worth learning in 2017. I will learn Haskell regardless. Kind of curious what it'd be like to learn both at the same time. I'm still sticking with Scala for job purposes... but closely following Haskell in parallel.
>>
More than scala itself, what you need to learn is functional programming.
>>
>>60444800
Ok cool. Thanks for the clarification. I'll refrain as much as I can writing non-FP code n Scala. So far the coursera videos seem to follow the FP approach
>>
>>60444816
so basically if i learn FP proper via scala I should be good on transferring those concepts to haskell and so on? that was the meat of my initial question.
>>
I love Scala. I work with datashit so I use it somewhat. Java developers at my work hate it though.

>>60444768
You should eventually learn both. My perspective is that Haskell is a better FP language but Scala is more practical. You can find Haskell jobs but Scala is much, much more common, and many conventional enterprise people are familiar enough with Scala and will be impressed if you know it.

But, its sort of tossup. Scala allows dumbshit Java devs to basically transcribe Java into Scala, but at the end of the day it gets work done and things built and tested... which is why managers tolerate Scala, and you don't see Haskell very often in industry.

I took the first two of those Coursera classes and they were excellent (especially the second) and I'll be working on the third soon. I don't think you write any non-FP code in those courses, so don't worry about learning non-FP Scala.
>>
>>60444857
Okay, excellent reply thank you. I will continue onward learning Scala via the coursera links and reading from the recommended books listed. I will closely follow learning Haskell in parallel. I think Haskell looks more interesting from an academic perspective (which is why I want to learn it more than Scala) but I gotta eat and pay bills and need a job and when my potential boss told me I have an opportunity for a job I figure I'd take him up on it and learn Scala.

Are there any good IRC / Slack / Discord channels I should be aware of for Scala?

Also, it seems like Scala is used a lot in big data applications. Do you actually need to know stats to do that? Or is it data engineering kind of roles where you build the platforms for data analysis?
>>
>>60444901
No, you don't need to know a ton of statistics. You're exactly right, generally you build and implement platforms and models.

Probably 90% of data science is obtaining, cleaning, storing, and retrieving data in computationally efficient ways. The other 10% is hardcore statistics and applied math.

Where I work, there's a group that prototypes mathematical models (usually in Python, R, or something), and then it's passed over to another group that implements it in some scalable infrastructure and optimizes it (I work with the first group, so I'm not 100% familiar). There's some overlap but generally mathfags do math, CSfags do the programming.
>>
>>60444976
Sweet. Thanks for the responses.
>>
>>60441961
Lolno, its contributors are leaving left and right because they realized how many unfixable errors they made in the language and the standard library.

Use Kotlin.
>>
fuck scala
>>
>>60445937
Why should I abondon it if someone is willing to pay me to learn it? I don't care about scala as much as learning FP and getting a job
>>
>>60442366
Kotlin is already more popular than Scala. It's very popular in Android development. Scala has been an unmitigated disaster and everybody knows it.
>>
>>60441961
Are you a 9 year old that needs handholding and pretty pictures? Then I'll recommend you the learnyouahaskell book. If you're outside that target audience I'd say you should stay away from it.
>>
>>60442215
>Twitter, LinkedIn, The Guardian

LinkedIn and The Guardian have dropped it. Kevin Scott has been very vocal about LinkedIn attempting to move away from Scala and minimize their dependency on it.

Former VP of Platform Engineering at Twitter (Raffi Krikorian) came out publicly and said that choosing Scala was a mistake and most services there are slowly moving to Java.

Typesafe even re-branded to Lightbend just to get away from their Scala first image. Their new frameworks now focus on Java libraries first and foremost lmao.
>>
>>60444808
99.9% (probably more) of jobs working with the JVM just use Java so if you just want a job just learn that.
>>
Okay OP here. I decided to go with my initial interest on Haskell. Can I get any jobs with it? I'm doing it out of pure academic interest.

It seems like scala isn't the best place to start.
>>
>>60447669
>Can I get any jobs with it?

No. For every one of the very small number of Haskell jobs there are dozens of programmers that have been using it for years that want it. It doesn't help that even most major cities have exactly zero companies using Haskell.
>>
>>60447248
wtf I hate Scala now
>>
>>60442366
>Google to support kotlin right now


Lol fag. Never listen to g. Not even to me.
Thread posts: 48
Thread images: 6


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.