Why Scala? | An introduction by Adam Warski

  Рет қаралды 67,265

SoftwareMill

SoftwareMill

Күн бұрын

What is Scala? Scala is a strongly typed, functional programming language. Although it has a reputation of being a complex to learn, in fact it's built out of a couple of basic features, all of which are quite general and interact with each other.
Why Scala is the best functional language to use for business applications? What makes Scala unique among other functional programming languages?
Learn from our CTO, Adam Warski, Scala & Distributed systems Expert and OSS Developer.
-
⭐ scala.page
⭐ scalatimes.com/
⭐ @adamwarski
⭐ hello@softwaremill.com
⭐ softwaremill.com/

Пікірлер: 52
@heck_fy
@heck_fy 17 күн бұрын
good overview, thank you very much!)
@gravytopic
@gravytopic 3 жыл бұрын
Wow, Andy Warski really cleaned up his act. Who knew he was this smart?
@worshipwithjonathan
@worshipwithjonathan 3 жыл бұрын
@Cody Cig Are we talking about Andy or adam?
@mooks500
@mooks500 3 жыл бұрын
LOL
@yanamalapushpanth5679
@yanamalapushpanth5679 3 жыл бұрын
Could you consider making tutorials or implementing some small usecases videos in scala.
@omerpriel5588
@omerpriel5588 10 ай бұрын
It was a great video. Thanks
@veronikavalentinova1766
@veronikavalentinova1766 3 ай бұрын
At 2:32 you mentioned that the community learned which Scala features to avoid - can you explain more?
@AdamWarski2
@AdamWarski2 3 ай бұрын
Sure :) I think one example would be the usage of symbolic operators, or over-reliance on such operators. Another would be that sometimes a mutable variable (`var`) is actually ok, as long as it's used locally - so local mutable state is often fine, global mutable state is where problems start. Yet another instance would be using too many implicits - for cases, where normal, "explicit" parameters work just as well - this might include dependency injection. That's not unique to Scala, btw. In Java, we had a similar history with learning (on own mistakes) not to over-use inheritance, for example.
@robinhopeixoto
@robinhopeixoto 3 жыл бұрын
What your opinion about start in scala using akka? Or is better study zio/cats?
@jeanfdmelo
@jeanfdmelo 3 жыл бұрын
He has written a long post comparing those: blog.softwaremill.com/scalaz-8-io-vs-akka-typed-actors-vs-monix-part-1-5672657169e1
@AdamWarski
@AdamWarski 3 жыл бұрын
That's a good question! But without a definite answer. Both Akka-Typed, Monix and ZIO are interesting technologies and learning them should be very valuable, not only because you are learning a new library, but because of the overall approach to concurrent/distributed programming that they represent. I think I would try assessing what are the use-cases for which you might end up needing a library like akka or monix or zio, and learning the one which has the highes probability of being used in practice.
@robinhopeixoto
@robinhopeixoto 3 жыл бұрын
Great! I'll read the blog post. Choose the first stack to study without know good/bad part is very hard.
@jeanfdmelo
@jeanfdmelo 3 жыл бұрын
I am just a Scala enthusiast, so maybe my opinion is not so useful, but I decided to start with Akka for two main reasons. 1 - It's easier to find books and other resources. 2 - It seems that Akka is more required in job descriptions in Poland (where I live) I had to start somewhere.
@AlbertBikeev
@AlbertBikeev 3 жыл бұрын
I'd definitely not recommend starting with Akka... It goes against the notion of functional programming in Scala (local reasoning, type-safety) and it's also way too powerful as a tool, meaning that you can apply it to anything, but eventually, it'll be a mess unless a substantial amount of work put into maintenance (which is also against FP notions)
@zvimints
@zvimints 3 жыл бұрын
Thanks! What about performance between Java and Scala? They still run on the JVM but what’s the difference from performance aspect, Another question is how Scala handle vs. new Java versions?
@AdamWarski
@AdamWarski 2 жыл бұрын
Performance of the base language is comparable, but that depends more on the libraries that you use, rather than the language.
@neuera9556
@neuera9556 2 жыл бұрын
Future of spark scala what to learn next
@ClewertonCoelho
@ClewertonCoelho 3 жыл бұрын
Why not model ADT with Scala 3 features like enums or sum types instead of sealed trait?
@AdamWarski
@AdamWarski 3 жыл бұрын
Sure, in the future that will be "the way". But currently Scala 3 is at version 3.0.0-M3, so for any production application, I would still recommend using Scala 2.
@donwald3436
@donwald3436 Жыл бұрын
Is there Java interop yet?
@markhathaway9456
@markhathaway9456 Жыл бұрын
It compiles to the JVM, so it's there from the start.
@MrDejvidkit
@MrDejvidkit 6 ай бұрын
Yes its 100% supported and used in production.
@suyogchoudhari
@suyogchoudhari 3 жыл бұрын
Thanks for the nice video but I always felt that code conciseness is taking away code readability in scala. HelloWorld examples always look easy but in reality, doing some complex data manipulation code looks concise but hard to understand for not only peer engineer but to myself when I read it again.
@AdamWarski
@AdamWarski 3 жыл бұрын
Sure, it's a fine art and you shouldn't be too concise, beyond comprehensibility. The difference with Scala is that you have the option to be concise and you have the option to create more advanced abstractions, unlike in other languages which often lack these capabilities or have them to a limited degree. Just like normal tools - an electric saw gives you much more possibilities than a hand saw, but hurting yourself is much easier as well.
@zelon1983
@zelon1983 Жыл бұрын
+1
@pvlr1788
@pvlr1788 2 жыл бұрын
What scala for? What tasks you can do with it? What products you can build with it?
@FlanPoirot
@FlanPoirot Жыл бұрын
2 big banks in my country uses scala on their enterprise apps that handle very large sums of money by big clients
@MrDejvidkit
@MrDejvidkit 6 ай бұрын
For everything you need. That is ok solvable on JVM or JS. Any task you like.t Any product you like. Mostly big apps. Like twitter and Spar. Also small frontend apps in JS or Backend services or WebApps.
@ben6
@ben6 3 жыл бұрын
Native bytecode? What’s that
@AdamWarski
@AdamWarski 3 жыл бұрын
Hm must be a slip of the tongue :) I don't know what native bytecode is either ;) What's the context, as I can't find where I mention that?
@amrojjeh
@amrojjeh 3 жыл бұрын
Essentially compiling it to a .exe file, so that it's specific to the platform and it doesn't require any third-party tools such as the JRE to run.
@SaHaRaSquad
@SaHaRaSquad 3 жыл бұрын
@@amrojjeh Well that's not bytecode anymore then.
@amrojjeh
@amrojjeh 3 жыл бұрын
@@SaHaRaSquad How come?
@SaHaRaSquad
@SaHaRaSquad 3 жыл бұрын
@@amrojjeh Bytecode is the term used for intermediary code prepared for VMs(like the Java VM) that's neither human-readable nor machine-readable(by the CPU). It can only be run by a compatible runtime environment. If you compile it to a normal executable file it's (native) machine code. So "native bytecode" isn't really a thing.
@vrundashah914
@vrundashah914 3 жыл бұрын
File1 Code - class Abc { //code } File2 Code - Class Abc1 { var a:Abc = null try { a = new Abc() } } what does this line in file2 mean in scala "var a:Abc = null" where Abc is a class stored in file1
@rafihmahfooz5074
@rafihmahfooz5074 3 жыл бұрын
Julia
@VickyGYT
@VickyGYT 3 жыл бұрын
i though only c++20 and future is getting ugly syntax... :D
@godnyx117
@godnyx117 3 жыл бұрын
Isn't c++20 getting more readable tho?
@masteryoda9044
@masteryoda9044 11 ай бұрын
The more I learn about the more I find out how ugly it is.
@MrDejvidkit
@MrDejvidkit 6 ай бұрын
Yes, and that dirty syntax makes my eyes wet with all those semicolons and return statements missing from my sight; it doesn't even look like code anymore.
@user-mf3ye1ie9o
@user-mf3ye1ie9o 3 жыл бұрын
Twitter and linked in hack not possible but facebook possible.
@jcbrites
@jcbrites Жыл бұрын
This video is absurd. It's trying to convince newcomers to scala about the benefits of scala, but it's given at a pace too fast for beginners and assumes too much knowledge of scala already.
@MrDejvidkit
@MrDejvidkit 6 ай бұрын
This is not beginners video. There are other excellent sources on the internet for that.
@russianvideovlogguy
@russianvideovlogguy 5 ай бұрын
I’ve never seen scala but have no issue with the presentation. You must be coming from js or some other front end framework, I use C and targeted assembly language. I forget that most developers probably don’t have a clue how to program, there is difference between someone who builds the tools vs people that use the tools.
Martin Odersky - Scala's Role in the Programming Languages Ecosystem
45:53
Scala Days Conferences
Рет қаралды 10 М.
A Brief Introduction to Scala
23:27
Exercism
Рет қаралды 4,6 М.
Самый Молодой Актёр Без Оскара 😂
00:13
Глеб Рандалайнен
Рет қаралды 11 МЛН
ЧУТЬ НЕ УТОНУЛ #shorts
00:27
Паша Осадчий
Рет қаралды 9 МЛН
Alex hid in the closet #shorts
00:14
Mihdens
Рет қаралды 12 МЛН
Python vs. Scala - which one should YOU learn?
8:46
ivanwakeup
Рет қаралды 48 М.
Plain Functional Programming by Martin Odersky
46:58
Devoxx
Рет қаралды 97 М.
Functional Programming in 40 Minutes • Russ Olsen • GOTO 2018
41:35
GOTO Conferences
Рет қаралды 807 М.
A Monads Approach for Beginners, in Scala | Rock the JVM
40:21
Rock the JVM
Рет қаралды 37 М.
John A. De Goes at #ScalaUA - Thinking Functionally
51:36
ScalaUA Conference
Рет қаралды 19 М.
Я купил первый в своей жизни VR! 🤯
1:00
Вэйми
Рет қаралды 1,7 МЛН
ЕС урезает аккумуляторы 🪫
1:00
Не шарю!
Рет қаралды 173 М.
Kumanda İle Bilgisayarı Yönetmek #shorts
0:29
Osman Kabadayı
Рет қаралды 1,7 МЛН
Сколько реально стоит ПК Величайшего?
0:37
1$ vs 500$ ВИРТУАЛЬНАЯ РЕАЛЬНОСТЬ !
23:20
GoldenBurst
Рет қаралды 1,9 МЛН