5 ms·
That sounds like what we heard about Scala 10 years ago until complexity started to bite, and now that language is in a free fall and its parent company in fina
by bitL 4y ago
That sounds like what we heard about Scala 10 years ago until complexity started to bite, and now that language is in a free fall and its parent company in financial distress...
- camdenreslink 4y agoScala isn’t that complex unless you try to pretend it’s Haskell.
- crznp 4y agoTo me, Scala's issue is identity crisis, not complexity. Some of the community wanted to pretend it is Haskell, and others wanted a better version of Java. But if you want a JVM functional language, why not Clojure? If you want a better Java, why not Kotlin (or update Java). Scala is squeezed by more consistent alternatives on all sides. I don't think that Rust has the same issue: it has a clear (albeit potentially complex) vision of what it is trying to do, which is distinct from C and more consistent than C++.
- sideeffffect 4y agoI think "better Haskell on JVM" (in contrast to "worse Haskell") is a good identity for Scala to have. (Please note that this is an intentional hyperbole.) Of course, there are areas where Haskell is stronger than Scala (hint: modularity, crucial for good Software Engineering, is not one of them). And Scala has its own way of doing things, so just imitating Haskell won't work well. Examples of this "better Haskell" are https://typelevel.org/cats-effect/ https://typelevel.org/cats-effect/ and https://zio.dev/ https://zio.dev/ . All together, Scala may be a better choice for you if you want to do Pure Functional Programming. And is definitely less risky (runs on JVM, Java libraries interop, IntelliJ, easy debugging, etc...). None of the other languages you mentioned are viable in this sense (if also you want a powerful type system, which rules out Clojure). I agree that Rust's identity is pretty clear: a modern language for use cases where only C or C++ could have been used before.
- dblohm7 4y agoGiven the projects where Rust is already in use (and has been for several years at this point), I don't think that is a concern.
- lvass 4y agoWhich projects?
- maccam94 4y agoThe Firefox repo is 27% C++, 14% C, and 9.5% Rust - https://4e6.github.io/firefox-lang-stats/ https://4e6.github.io/firefox-lang-stats/ AWS wrote Firecracker which powers AWS Lamba - https://github.com/firecracker-microvm/firecracker https://github.com/firecracker-microvm/firecracker Cloudflare just replaced nginx with an in-house reverse proxy written in Rust called Pingora (not yet open source) Facebook rewrote Mercurial in Rust to help scale their monorepo (called Mononoke, now part of their EdenSCM project) Dropbox rewrote their sync client in Rust, and they wrote their block storage service (Magic Pocket) in it. A significant portion of Google's new Fuchsia OS is written in Rust, and it is currently powering Nest devices NPM's backend is written in rust curl can now use Rust's hyper library for making http requests
- menaerus 4y ago> A significant portion of Google's new Fuchsia OS is written in Rust User-space part only. Kernel is C++.
- karmakurtisaani 4y agoScala is not that bad. I'd take it over java any day.
- kjeetgill 4y agoAnd you'd be wrong! Jokes aside, even Scala proper sees itself as an experimental testing ground more than a complete idea realized. That's why dotty became Scala 3, with a huge amount of backtracking. It pushed the state of the art across the JVM landscape, but I think it's lost its purpose with Java, Kotlin, and Clojure around.
- sideeffffect 4y agoScala's purpose is, at least to me, pretty clear: Functional programming (ranging up to Pure FP) on the JVM with a powerful type system. That's just something that Java, Kotlin, nor Clojure don't offer. And there is significant demand for Scala (and its pupose) in the industy (it just not may be as huge as Java or other more mainstream languages).
- sideeffffect 4y agoI don't now what situation was Scala in 10 years ago. But the situation it is now couldn't be further from "free fall". It is _the_ language where most of the Functional Programming in the industry takes place (that's not to say that Haskell, F#, OCaml or Clojure are bad, they just aren't as widely used). And that also means that there are lot of open job positions available. I like FP and Scala comes with some awesome libraries for concurrent/async programming like Cats Effect or ZIO. Good choice for creating modern-style micro-services to be run in the cloud (or even macro-services, Scala has a powerful module system, so it's made to handle large codebases). https://typelevel.org/cats-effect/ https://typelevel.org/cats-effect/ https://zio.dev/ https://zio.dev/ The language, the community and customs are great. You don't have to worry about nulls, things are immutable by default, domain modelling with ADTs and patter matching is pure joy. The tooling available is from good to great and Scala is big enough that there are good libraries for typical (if not vast majority of stuff) and Java libs as a reliable fallback.