I needed to use spark as a data engineer (Jr) and as soon as I wrote some code I fell in love with Scala. It is BEAUTIFUL. I like doing math and I think Scala is really relatable if you have that 'mathematical thinking'. I'm really into learning Scala deeply just for fun =)
@Paulo de Tarso N R Absolutely! Though, i'll just go for scala as for today, until rust widely used enough. In my country, u wont get a job as rust devs. Even some older cs grads dont even know what rust is
If you’re enjoying the mathematical thinking aspect of scala, I’d recommend having a look at Haskell. It’s a pure functional language that takes that mathematical thinking to the extreme. I love it!
I liked these sort of videos, thanks. Talking about differences, strengths, weaknesses of a language may really help programmers draw the bigger picture and understand the language.
I started a degree in data science half a year ago and I was a bit weirded out that we're being taught Scala and not Python. It seems these days that Python is the way to go for analysing data, but I'm now starting to understand that Scala might allow me to achieve more. It's probably the better tool for "professionals".
@@AnthonyCrouchPhotography I think it really depends. Data science is a large field, so black and white statement rarely holds true for all things. Scala is actually better suited for handling real big data, whereas if your definition of data science is deep learning, then sure Python has a big advantage.
Lucky enough to be in a gig for which Scala is a must learn skill. But, I'm enjoying learning Python, too. I find that much of what I learn in FP is transferrable to Python. Finally hanging up my Perl spurs after 20 years. Change is good. Nice vid and glad I watched it.
I'm mainly a Java developer. I had the opportunity to do a job in Elixir. It took some time to adapt to functional programming and pattern matching. But once you get it, wow, that's amazing. I think that the main requirements for calling something functional is: How much you avoid mutation and side effects. So I think many people call something functional just because you've streams and lambdas. But that's not what makes your code functional. Immutability, pure functions, side effect free, pattern matching, those are thing I would dream to be part of the top languages. Scala certainly supports functional programming very well. Python I doubt it. It has qualities of course, but we cannot say that it a functional language. Unfortunately, it will still take some time before we get there.
As a Java programmer, who recently moved to Scala world due to new job, I can see where you're coming from. I agree with your view and I am starting to love Scala.
@@norpriest521 if you're just getting started in getting a job - go for Python, there's plenty of jobs, and salaries are pretty decent. if you already have one, and you want to boost your salary - go learn Scala
even tho scala isnt as popular, i see more job offers for scala (or java that also requires scala) than python i myself love scala cuz once you get used to the language, i find it simpler to program on it rather than on java due to less verbosity
Scala 3 will change things a lot because it will be much more precise and clear. Implicit s will move to gives which is a much smoother to read. The defining of DSL with scala is rock n roll if you you're trying to define a business domain. I think the introduction into the language has to be much more high level.
Every new release of spark has it shifting more towards being python and sql focused in its api. So many data scientist, analysts, and data engineers are shifting to big data, and they don't want to use scala.
with scala you learn a different programming paradigm. after learning scala I'm able to think n write code in much better way. it's mostly immutable, functional styled, pure functions and terse but still easier to understand. unfortunately scala does not have big market but definitely recommend learning it. you will enjoy the way you can write functions in it.
I have been working with both and i have to say that for anything Big Data i prefer Scala. Python just feels weak when you start to work with over 5 Million Datapoints. It still works but it just takes alot longer.
I know that scala is pretty hard when you come from Object-oriented programming such as Java or Python; however; it becomes much easier when you learn a purely functional programming before as Haskell. I’ve actually spent many months trying to think in a functional way but it was too much difficult to get the fluency in it. Then, I learned Haskell, and finally Scala become much easier to code. Anyway, I really liked the way that you approach this very important subject. Congrats!
@@norpriest521 does it matter ? the advice of learning it before Scala is still valid I think, his point is that it teaches you the dynamic of using a functional paradigm and gets you more prepared to tackle Scala
It is a Saturday, and the weather is absolutely perfect outside here in the Bay Area, and well no wonder I, a software engineer, am listening this while working on my Scala code 🤣
Scala 3 null pointers are gone. Monads seem scary but so you're protected to from accessing a collection outside the bound or you're missing one element. The new tasty compiler makes using extreme powerful type system way more concise. Adding functional to library classes with extension methods are magical. The new simplified implicit syntax with using and given makes reasoning about code way easier. So I am sure scala will get way more traction after the huge improvement scala 3 and the faster compilet.
i'm java developer and python programmer. i suggest for data science for learn scala because scala is too fast. more than 10 times faster than python so scala is good. and also for java developers scala is easy to learn and also work tougher with java and scala. scala is good for java lovers. like me.
@@KyivanEnjoyer Depends on what you need Scala for. In my opinion, it's nicer to write OOP in Scala, code more concise and awesome pattern matching, plus of course the whole FP thing
scala-java can interop so well that scala can simply be treated as "java-version-99". That is, after a while, when big data tooling such as spark or zeppelin bring scala to all "ordinary" app teams -- I believe eventually, gradually, and pretty quickly, that will happen. Many people think scala is FP; true; but the basic FP is just immutability, which nowadays good java also should do. So, perhaps we should not put too much emphasis on FP when we mention scala. Advanced FP is an important and "sufficient condition", but not the "necessary condition" -- scala will be popular simply because there are many tools using it and it is a cleaner java. That should be enough for it to be popular.
As someone who's been using Python exclusively in professional life, I would say no. I started learning Java and Scala around the same time and noticed that learning Java first didn't really teach me anything I couldn't have learned with only using Scala. Going from Python to Scala/Java really isn't about learning syntax, it's about learning the paradigm and getting used to types and such. This comes naturally to some people as Python is strongly typed, as opposed to JS for example. All in all, if you are a fast learner and like a challenge, jump right into Scala because it's easier to learn Java as a Scala dev rather than Scala as a Java dev in my opinion.
@@TheHehhoi Thanks, TheHehhoi. There was a post after yours that suggests learning a functional program like Haskell first to help better understand Scala. For a newbie, would you agree? Any advise would be greatly appreciated.
@@EddieEnriquez I have no first-hand experience in Haskell so I can't really comment on that. What I've gathered from discussions around this topic, it is certainly helpful to know a functional language or at least how functional programming works. Personally I don't think it's good use of time to learn one language only to learn another, especially because Scala is, I think, more diverse than f.e Haskell.
@@TheHehhoi What about python data engineer like someone who works with data warehouse, data pipeline management, etl, sql, etc? Should they learn Scala at all when they're already good at Python?
Python is not easy, it's depends what you call easy, Python is harder than Scala, that facade of simpler concepts and indentation can fool you, just look at multiple inheritance, MRO, and everything implemented internally as dictionaries from objects to static fields, classes ... etc etc, Scala stole some successful concepts from Python, like a star to break a list before feeding it to a function, higher order function, that is a pure Python thing, Scala i just watched half of the rockthejvm courses on it the best on the internet on that language, the good thing of it is accessing the JVM, scala is best described as a new take a programming language by a company that was around for 30 years, with the java language, lost it's popularity, scala is their new take on programming languages with all the advancements of the JVM, the things that i don't like about it but iam not an expert, is Scala has too many concepts, monoids, monads, partial functions, case classes ... objects in their weird way, it's definitely a language i want to learn for the JVM, but in my opinion to last they should simplify it, and it looks that in Scala 3 they didn't take that route, they added even more concepts, i think most of them are useless, that where python shines, but the problem with the latter, the nerdy stuff is hard to find explanations for, python has a very exhaustive official documentation, Scala on the hand is pretty terrible on that side the official docs are horrendous
Scala is a Better language overall: expressive, concise, super typing stuff, immutability first, functional ecc Too bad working with it is a miserabile experience. Poor tooling, the proposed build tool SBT is garbage. Even packaging a simple spark app is a chore. Compatibility issues and stuff.. all things a python developer doesn't ever need to care about. Stay away if possible...
I needed to use spark as a data engineer (Jr) and as soon as I wrote some code I fell in love with Scala. It is BEAUTIFUL. I like doing math and I think Scala is really relatable if you have that 'mathematical thinking'. I'm really into learning Scala deeply just for fun =)
check rust as well
scala is for java as rust is for C
theyre very lookalike
@Paulo de Tarso N R
Absolutely! Though, i'll just go for scala as for today, until rust widely used enough.
In my country, u wont get a job as rust devs. Even some older cs grads dont even know what rust is
@@desrucca what country is that?
If you’re enjoying the mathematical thinking aspect of scala, I’d recommend having a look at Haskell. It’s a pure functional language that takes that mathematical thinking to the extreme. I love it!
I liked these sort of videos, thanks. Talking about differences, strengths, weaknesses of a language may really help programmers draw the bigger picture and understand the language.
I started a degree in data science half a year ago and I was a bit weirded out that we're being taught Scala and not Python. It seems these days that Python is the way to go for analysing data, but I'm now starting to understand that Scala might allow me to achieve more. It's probably the better tool for "professionals".
Oh that's interesting! I definitely would've thought a degree program would favor python.
Do you think that scala is going to replace python? Or that will never happened and python will be forever the best language for data scienfia and AI?
No way is scala better for data science... Python is way more the way to go for that field. Sometimes professors just dont know and arent practical.
@@AnthonyCrouchPhotography I think it really depends. Data science is a large field, so black and white statement rarely holds true for all things. Scala is actually better suited for handling real big data, whereas if your definition of data science is deep learning, then sure Python has a big advantage.
Lucky enough to be in a gig for which Scala is a must learn skill. But, I'm enjoying learning Python, too. I find that much of what I learn in FP is transferrable to Python. Finally hanging up my Perl spurs after 20 years. Change is good. Nice vid and glad I watched it.
I really really admire Scala developers!
I'm mainly a Java developer. I had the opportunity to do a job in Elixir. It took some time to adapt to functional programming and pattern matching.
But once you get it, wow, that's amazing. I think that the main requirements for calling something functional is:
How much you avoid mutation and side effects.
So I think many people call something functional just because you've streams and lambdas. But that's not what makes your code functional.
Immutability, pure functions, side effect free, pattern matching, those are thing I would dream to be part of the top languages.
Scala certainly supports functional programming very well. Python I doubt it. It has qualities of course, but we cannot say that it a functional language.
Unfortunately, it will still take some time before we get there.
As a Java programmer, who recently moved to Scala world due to new job, I can see where you're coming from. I agree with your view and I am starting to love Scala.
Super well explained, thank you. Yes, please make more videos, especially ones that compare different programs.
So which one is better language for Data Engineer?
@@norpriest521 if you're just getting started in getting a job - go for Python, there's plenty of jobs, and salaries are pretty decent. if you already have one, and you want to boost your salary - go learn Scala
even tho scala isnt as popular, i see more job offers for scala (or java that also requires scala) than python
i myself love scala cuz once you get used to the language, i find it simpler to program on it rather than on java due to less verbosity
Scala 3 will change things a lot because it will be much more precise and clear.
Implicit s will move to gives which is a much smoother to read.
The defining of DSL with scala is rock n roll if you you're trying to define a business domain.
I think the introduction into the language has to be much more high level.
Every new release of spark has it shifting more towards being python and sql focused in its api. So many data scientist, analysts, and data engineers are shifting to big data, and they don't want to use scala.
with scala you learn a different programming paradigm. after learning scala I'm able to think n write code in much better way. it's mostly immutable, functional styled, pure functions and terse but still easier to understand. unfortunately scala does not have big market but definitely recommend learning it. you will enjoy the way you can write functions in it.
I have been working with both and i have to say that for anything Big Data i prefer Scala. Python just feels weak when you start to work with over 5 Million Datapoints. It still works but it just takes alot longer.
I know that scala is pretty hard when you come from Object-oriented programming such as Java or Python; however; it becomes much easier when you learn a purely functional programming before as Haskell. I’ve actually spent many months trying to think in a functional way but it was too much difficult to get the fluency in it. Then, I learned Haskell, and finally Scala become much easier to code.
Anyway, I really liked the way that you approach this very important subject. Congrats!
Thank you for the Hsskell tip!
Isn't Haskell a dying language according to many tech sources?
@@norpriest521 does it matter ? the advice of learning it before Scala is still valid I think, his point is that it teaches you the dynamic of using a functional paradigm and gets you more prepared to tackle Scala
@@norpriest521 There are many languages which are dying for many years but still not dead.
@@ABHISHEKSINGH-nv1sedecaying takes more time for such things.
Thanks for the clarity. I love working with computers and have been really anxious about learning to speak either language lol
It is a Saturday, and the weather is absolutely perfect outside here in the Bay Area, and well no wonder I, a software engineer, am listening this while working on my Scala code 🤣
Scala 3 null pointers are gone. Monads seem scary but so you're protected to from accessing a collection outside the bound or you're missing one element.
The new tasty compiler makes using extreme powerful type system way more concise. Adding functional to library classes with extension methods are magical. The new simplified implicit syntax with using and given makes reasoning about code way easier.
So I am sure scala will get way more traction after the huge improvement scala 3 and the faster compilet.
Python? Scala? Why not both?! I choose you, Julia!
What's important is, did Julia choose you?
Your videos are really good..please pleas please continue making your high quality content...👏👏👌👌
Very informative, Ivan. Thanks.
i'm java developer and python programmer. i suggest for data science for learn scala because scala is too fast. more than 10 times faster than python so scala is good. and also for java developers scala is easy to learn and also work tougher with java and scala. scala is good for java lovers. like me.
Lol, so why use scala? why not use java?
@@KyivanEnjoyer Depends on what you need Scala for.
In my opinion, it's nicer to write OOP in Scala, code more concise and awesome pattern matching, plus of course the whole FP thing
Hi awesome video. By the way. I always love all 2 programming language.
There arent many more honest opinion than this on language comparison. The guy should become a yoda. :))
I would consider Julia too.
scala-java can interop so well that scala can simply be treated as "java-version-99". That is, after a while, when big data tooling such as spark or zeppelin bring scala to all "ordinary" app teams -- I believe eventually, gradually, and pretty quickly, that will happen. Many people think scala is FP; true; but the basic FP is just immutability, which nowadays good java also should do. So, perhaps we should not put too much emphasis on FP when we mention scala. Advanced FP is an important and "sufficient condition", but not the "necessary condition" -- scala will be popular simply because there are many tools using it and it is a cleaner java. That should be enough for it to be popular.
Very helpful. Thanks!
Well Explained
Python is the worst insecure language of them all, while Scala is the safest and most flexible. Scala is excellent, but Python is horrible.
good luck surviving the industry with that attitude
most insecure how
Decent intro. Made the same points several times. Could have been more succinct
I do not like Scala's 1000 ways to do the same thing. Sometimes it gets very difficult to understand the answers because of various different syntax.
cool video, maybe more picture tables ppt will help us to understand your points more easily especially when your story is more complex.
"functional. People say that... a lot." Rofl!
barton! you know it brotha. #functional4lyfe
Scala also has a REPL
Nice video! subbed!
The answer of the dilemma python vs scala is…. YES. Any developer should learn a scripting language and a compiled language
Cool.
Can any one share their experience that how much time they spend to learn scala...
at least 2 years) Java will take max 1 month:) If we talk about 'not first language'
@@KyivanEnjoyer Thank you very much Andrew.
this not fair why doese he has 14k views but 358 sub imma change it to 359
Would you recommend someone who knows Python to learn basics of Java before learning Scala?
As someone who's been using Python exclusively in professional life, I would say no. I started learning Java and Scala around the same time and noticed that learning Java first didn't really teach me anything I couldn't have learned with only using Scala. Going from Python to Scala/Java really isn't about learning syntax, it's about learning the paradigm and getting used to types and such. This comes naturally to some people as Python is strongly typed, as opposed to JS for example. All in all, if you are a fast learner and like a challenge, jump right into Scala because it's easier to learn Java as a Scala dev rather than Scala as a Java dev in my opinion.
@@TheHehhoi Thanks, TheHehhoi. There was a post after yours that suggests learning a functional program like Haskell first to help better understand Scala. For a newbie, would you agree? Any advise would be greatly appreciated.
@@EddieEnriquez I have no first-hand experience in Haskell so I can't really comment on that. What I've gathered from discussions around this topic, it is certainly helpful to know a functional language or at least how functional programming works. Personally I don't think it's good use of time to learn one language only to learn another, especially because Scala is, I think, more diverse than f.e Haskell.
@@TheHehhoi thanks, TheHehhoi, for taking the time to respond back to me, I really appreciate the advice.
@@TheHehhoi
What about python data engineer like someone who works with data warehouse, data pipeline management, etl, sql, etc?
Should they learn Scala at all when they're already good at Python?
And what about machine learning? Scala or python? Which one has best tools and accurate one?
@@danielmbcn Not so clear cut if you're working in big data: Apache Spark is written in Scala.
Interpreted vs. Compiled.
Dynamically typed vs. Statically typed.
Easy to learn vs. You better know some java.
Terrible vs. Alright lol 😆😂
Python is not easy, it's depends what you call easy, Python is harder than Scala, that facade of simpler concepts and indentation can fool you, just look at multiple inheritance, MRO, and everything implemented internally as dictionaries from objects to static fields, classes ... etc etc, Scala stole some successful concepts from Python, like a star to break a list before feeding it to a function, higher order function, that is a pure Python thing, Scala i just watched half of the rockthejvm courses on it the best on the internet on that language, the good thing of it is accessing the JVM, scala is best described as a new take a programming language by a company that was around for 30 years, with the java language, lost it's popularity, scala is their new take on programming languages with all the advancements of the JVM, the things that i don't like about it but iam not an expert, is Scala has too many concepts, monoids, monads, partial functions, case classes ... objects in their weird way, it's definitely a language i want to learn for the JVM, but in my opinion to last they should simplify it, and it looks that in Scala 3 they didn't take that route, they added even more concepts, i think most of them are useless, that where python shines, but the problem with the latter, the nerdy stuff is hard to find explanations for, python has a very exhaustive official documentation, Scala on the hand is pretty terrible on that side the official docs are horrendous
if companies dont use scala, most likely you dont get a job..
What about Kotlin ?
I don't think it was designed to solve the same problems as Scala, Kotlin is rather a language for mobile development
Kotlin can be seen as replacement of Java. Scala is object oriented and functional which Java and Kotlin are not
Learn OCaml 😮
Scala is a Better language overall: expressive, concise, super typing stuff, immutability first, functional ecc
Too bad working with it is a miserabile experience. Poor tooling, the proposed build tool SBT is garbage. Even packaging a simple spark app is a chore. Compatibility issues and stuff.. all things a python developer doesn't ever need to care about. Stay away if possible...
Data? take Julia!!!
?
I prefer python
Scala has an interpreter too, this is not an outstanding feature, even Java has a repl nowdays.
Scala is an unpopular and dying language. Choose Python, it is much more popular, more popular => more jobs => easier to get a job.
That is not true. We use it more than ever.