🚨 New course: Kotlin Coroutines and Concurrency 🚨
Come write 2000 lines of code with me and learn the ins and outs of concurrency with
#Kotlin
:
Read more for details and deals 👇
So who is it for?
This course is for Kotlin developers who need to
Which companies are using
#Scala
? Here's a starting list for you:
LinkedIn
Twitter
Apple
Adobe
Netflix
Airbnb
Verizon
Spotify
Disney Streaming
Databricks
Microsoft - yes, trained a team there
Here Maps
Intuit
Samsung
Tesla
Stripe
Zalando
Uber
LEGO - yes, that LEGO
Backwards:
- The technical merit of
#Scala
is _the_ reason why Twitter works well as a distributed system
- Scala is older than Go, and Twitter is not the only example in its track record
"Hipster language"? Try your first 100 lines, you'll love it
Twitter should rewrite the Scala parts in something with a proven track record like Golang and definitely don’t get tempted to try another hipster language.
Language success is impossible to predict and can’t be chosen merely on technical merit (they’re social constructs)
Just finished a live 2-day
#Scala
training session with Microsoft (!).
Apparently they needed it for Spark. They had no idea what Scala is capable of. Left the training blown away.
@BrianGoetz
Genuine snippet of code from today -- if you'd have told me that this was Java, 5 years ago, I'd have told you to stop taking the piss.
Just brilliant, I'm in awe.
Play Framework is back in business!
After 4 years with no major release, it's about to ship 2.9.0 with support for the latest JDK and
#Scala
3, then will release 3.0 soon after, with Pekko replacing Akka
#Scala
is still an underrated language, even as other languages copied some of its features over time.
It's even more underrated for frontend dev - I'm far more productive with Laminar or Tyrian in ScalaJS than any other JS-native framework.
🚀 IT HAS ARRIVED! 🚀 Introducing...
The Typelevel Rite of Passage - a product-based course in
#Scala
3 with the Typelevel stack:
What we'll build, what to expect and deals - read more 👇
The ZIO 2.0 course is here! 🚀
Master pure functional programming with one of the hottest tools in the
#Scala
world:
What's inside, what to expect and deals - read below 👇
The main selling point of
#Scala
now is effect systems, which don't have an equal in other languages.
Powerful, safe, fast, scalable, readable and testable software.
A language close to what I posted for April Fool's day last year, except it's very real:
- Scala-like syntax
- first-class ADTs
- first-class type classes
- pattern matching
- higher-kinded types
- polymorphic effects
- declared purity
- runs on the JVM
Scala has many features.
Java copies a few.
Then Scala brings many new features.
Then Java copies a few more.
#Scala
is the adventurer.
#Java
is the conservative.
One learns from the other.
No loser, only winners.
Had something more fun to show last week in
#Scala
, but suddenly nothing was fun anymore. The Ukraine conflict put a pause on Rock the JVM's ongoing work over the last few days.
Some updates:
1/
Make
#Scala
adoption irresistible by using Atomic Habits:
1. Make it obvious.
Show people compelling results built with Scala, so much so that it's impossible not to get their attention.
A few years ago,
@Akka
,
@ApacheSpark
,
@PlayFramework
and
@Finagle
built such powerful
Preparing a new
#Scala
"black magic" course with the most powerful and esoteric features of the language.
Topics include
- macros and metaprogramming
- type class derivation
- type-level programming
- advanced type system concepts
What else would you like to see?
After learning
#Scala
, chances are low that you'll go back to anything else.
After learning effects, chances are low that you'll go back to regular Scala.
Learn
#Scala
because it will help you grow as an engineer.
The mental clarity, exciting work and high-paying jobs will come as a byproduct of your new skills.
New long-form video!
How to Write a Full-Stack
#Scala
application with the Typelevel stack:
We'll cover
- a database module with Doobie
- a server with http4s
- code organization on the backend
- a small frontend with Tyrian doing a backend call
Just learned this from one student:
In their company, the Rock the JVM
#Scala
courses are officially part of the onboarding process for team members with no prior experience. After a few days, they're ready to contribute.
💪
Developers will spend $4000 on a new computer because "it makes me more productive and saves me time"
... but then also NOT spend $85 on a course that makes them more productive and saves them time because they'd rather spend 400 hours learning it themselves
@MarkovMagnifico
Done right, a compiler should be able to figure out type automatically. It’s not that hard.
Not that it will matter much in the AI future.
#Scala
's for-comprehensions were designed to be a "hook" for beginners, who first think they're loops.
They're not.
But what are they?
This combinator (as a concept) probably needs its own word.
Donated $1000 to the Ukraine Humanitarian Fund, managed by the UN.
Rock the JVM is a small (1-person) Romanian 🇷🇴 business. Ukraine 🇺🇦 is our neighbor.
3/
Ending the year with a bang and a new and massive article!
The Doobie tutorial in
#Scala
- how to interact with a database using pure functional programming:
cc
@petr_zapletal
@ScalaTimes
cc
@tpolecat
for feedback
The Cats Effect 3 course is here! 🚀
Become a badass
#Scala
engineer with pure functional programming, composable and high-performance code!
What's inside, what to expect and launch discounts - read below 👇
Maybe unpopular opinion:
FlatMap is the single most important function in FP.
Our natural language vocabulary being poor at expressing extremely precise concepts in single words, let this word be flatMap, instead of borrowing words that mean something else.
New blog post!
The Ultimate Guide to
#Java
Virtual Threads:
- how to create virtual threads
- how virtual threads work
- cooperative scheduling
- what "good practice" means now with virtual threads
- JDK internals
- code examples throughout
Link:
Recording of the new project-based course in full swing.
The project is small, but not a toy; something real.
This is not just a course. It's an experience in software dev, felt live.
Can't wait to show it to you.
How to build a load balancer in
#Scala
with http4s and Cats Effect in 100 lines of code:
- how a load balancer works
- how to replicate an app
- how to redistribute calls between many replicas
- how to return correct responses to users
- how to cycle between backends
JavaScript:
["10", "10", "10", "10"].map(parseInt) = [10, NaN, 2, 3]
OMG 🤦♂️ this runs the internet?!
#Scala
, wake up! You shouldn't compile to JavaScript, JavaScript should compile to you!
(example from
@li_haoyi
)
A big reason why Rock the JVM exists - comments like this:
"I started a new job that uses Scala and your videos have helped me tremendously. Thank you"
#Scala
needs a punchline. Here's one I use whenever someone asks why they should write Scala:
Scala is a super expressive language that allows you to write complex systems quickly and safely. You'll also have a lot of fun doing it!
To be clear, this is the _actually_ weird `for` structure in a programming language:
for (int i = 0; i < 10; i++) {
}
It's funny so many of us start with this one, only to unlearn it later
🚀 ZIO Rite of Passage is now live! 🚀
Write a full-stack product in
#Scala
3 with the ZIO stack in one of the biggest courses at Rock the JVM:
The Rock the JVM Companies Board, aka -
"Trustpilot for Scala companies, with AI"
Ain't that a billion $$ startup?
Seriously, this
MASSIVE article just landed on the blog:
Practical type-level programming in
#Scala
- how to solve real-life problems with the most powerful features of the language:
This article is the biggest yet on the blog...
...by 4x! 🤯
Enjoy!
This year:
- published 4 courses
- started a blog (twice) with now 53 articles
- started a YouTube channel, now with ~60 videos, 3.7k subs and ~20h of content
- held the first Black Friday sale on the site
- went from 2 to 750 followers on Twitter
Thank you all! Have a big 2021.
In the final stretch recording the upcoming course.
This thing is a beast, easily 2-3x bigger than the biggest course at Rock the JVM so far. The project feels less like a course and more like a rite of passage.
Excited to show it to you soon!
The people and teams improving and maintaining
#Scala
, libraries and tooling (e.g.
@scala_sbt
,
@scalameta
,
@IntelliJScala
) are doing monumental and (mostly) thankless work.
A little thanks and maybe a PR on GitHub would go a long way
Will be speaking at
@scalarconf
about end to end, full-stack apps in
#Scala
3:
- how Typelevel libs work together
- how to design full-stack apps for no headaches
- how to add features fast
- how to keep the same mental model for both backend and frontend
- building, deploying
Advice for Java/Python folks touching a Scala code base "for 5 minutes to fix a bug":
Those 5 minutes turn into 5 days searching for a hack. You need to think differently.
Instead, spend 5 hours learning the basics.
#Scala
error: "Covariant type A occurs in contravariant position"
#Kotlin
error: "Type parameter A is declared as 'in' but occurs in 'out' position"
@scala_lang
, you can do this too! Make errors easy to understand and you'll attract people!
Make
#Scala
adoption irresistible by using Atomic Habits:
1. Make it obvious.
Show people compelling results built with Scala, so much so that it's impossible not to get their attention.
A few years ago,
@Akka
,
@ApacheSpark
,
@PlayFramework
and
@Finagle
built such powerful
Refunded all purchases from Ukrainian 🇺🇦 students on the site over the last 30 days. You need that money more than anyone.
Full access maintained, although it's quite clear that nobody in Ukraine is in the mood for Scala courses right now.
2/
New video!
A mini-bank app using
#Scala
,
#Akka
, Cats and
#Cassandra
- part 1 of a 2.5 hour mini-series on how to integrate Akka, Cats and Cassandra into a realistic project.
Enjoy!