With the recent release of Scala 3 is there any new strengths or functionality you think has been gained?
For example, would you say Scala could fly as a systems programming language?
I started the Coursera Scala course a few years ago, but got side tracked working on an MBA, it was amazing, challenging, frustrating, brain busting and fun all rolled into one. It is a language I hope to return to, but looking at things I think most of my work would likely be better scaled to Python. Though I am hoping to expand my knowledge base and build out more complex applications whether it be GUI based or web apps.
I know each language has it's own strengths, hoping to get Scala to perform something better suited for a lightweight Flask application isn't fair. Maybe you can help orient me on the strengths of Scala and any new advantages gained by the Scala 3 release.
Scala is quite flexible for everything from "scripts" (although JVM startup time is an issue) to compiled services, like typical Java apps. I don't think Scala 3 features changed this very much, except for small tweaks in how Scala scripts work.
If you really wanted to do as much as possible with one language and its ecosystem, you can cover a lot of ground with Scala. If you're willing to use multiple languages or pick one that's best for the majority of the tasks you do, then a few alternatives would be:
1. Python - Cross-platform portable scripting tasks for which bash is typically used. Also most data science work.
2. Go - Systems programming from small apps that go beyond what bash is capable of to full-fledged, compiled services. Especially interesting if you're working a lot with Kubernetes.
3. Typescript - If you mostly writing front-end/web stuff.
The size and performance of your apps play a role. If you're comfortable with Python and Flask, and you don't have heavy production requirements for scalability, observability, etc., etc., then why switch? Even if you have those requirements, maybe you can push a preferred tool set as far as necessary.
Thanks so much for that detailed reply, I appreciate that.
I think there is a good use case for trying out Scala for tasks like scripting or as tooling for Linux/Unix based "server maintenance" projects. Scala Native is one avenue, but JVM is standard across our giant infrastructure footprint so having a well designed and feature rich application that is portable on all our systems could be a huge asset.
I don't think there is any getting around using Python and Go, definitely as bash replacement and working with kubernetes as you mentioned. But seeing how much I enjoyed working with Scala in the past it's worth a try to find it's strengths in my day to day work.
and POOF! You're gone! But look, this tiny ad is still here:
Free, earth friendly heat - from the CodeRanch trailboss