TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Scala Resurrection

50 pointsby nmatover 2 years ago

9 comments

nameloswover 2 years ago
Scala is a great language. Any time I&#x27;m programming in other statically typed languages it&#x27;s like programming but with my hands tied backward: bumping into things and realizing there&#x27;s no HKT, Type Class, GADT etc.<p>However, it&#x27;s sad to see it&#x27;s growth is likely to be capped - because JVM languages is not that fashionable like 2003 or 2007. What&#x27;s in nowadays is Go and Rust: bear metal, small binary, fast startup speed, solid module packaging system (without all historical stuff or touching Maven), etc.<p>Even though Scala Native is there, the language was tailored for JVM and it will never get rid of that.<p>Maybe a ground-up Scala-like language like Go or Rust could fill in the market and gain popularity? A language with GC&#x2F;runtime like Go but not as awkward on abstrations. But it&#x27;s unlikely to happen - the compiler would be much harder and complex to implement compared to Go.
评论 #34768139 未加载
评论 #34772692 未加载
评论 #34767395 未加载
personomasover 2 years ago
To be honest, I think he is way-overly critical. It would seem like he thinks there needs to be some sudden changes or something. Scala is great today - there is nothing better (for experienced programmers) in my opinion (at least when it comes to backend development), and it&#x27;s on a great path and trajectory.<p>Slow progress and change is good.<p>I think he would do well just calming down a little bit. He has some good critique, yes, but it&#x27;s overblown in my opinion. I don&#x27;t think the future of scala is as &quot;uncertain&quot; as he thinks.<p>I also think the scala community is fabulous, it full of great, smart people who work together. Just because there&#x27;s heavy disagreements here and there, mostly just with a couple individuals, isn&#x27;t necessarily a bad thing anyways, nor does it necessarily reflect the community as a whole.<p>Scala will never attract the mainstream, because its principals take too long to learn. There is nothing wrong with this, though. It&#x27;s a language for long-time programmers who are interested in becoming super effecient.<p>Scala is awesome, and I&#x27;m excited for its future. Will it live 100 years, no, probably not, but there&#x27;s nothing better in the next 10, 20 years.
评论 #34766667 未加载
评论 #34761807 未加载
评论 #34761324 未加载
评论 #34764602 未加载
zumuover 2 years ago
I&#x27;ve just recently tried to pick up Scala, by going through the excellent Hands-on Programming with Scala so I can provide a newcomer&#x27;s perspective.<p>Metals is great if a bit buggy. Being able to just install a VSCode plugin and start hacking is huge. If you want to win new programmer mind share, improving Metals (or some other VSCode language server) is the way. Scalafmt is nice to see coming from Java.<p>The build tooling situation is awkward. Mill looks much more modern than sbt but clearly isn&#x27;t the de facto choice. The general community displease about sbt further adds to the unease. The main take away here should be the onboarding experience to the build ecosystem does not instill confidence.<p>The difference between ZIO&#x2F;Typelevel stuff is not immediately clear. Why are there two functional programming ecosystems? I guess it&#x27;s a convention vs configuration debate? It seems like the two ecosystems should overlap then, but fair enough.<p>A single language level package repo would be cool for discoverability purposes, but I&#x27;m also used to the multi-repository thing. A directory or something to make packages more discoverable might be a good half-step.<p>Ammonite is fantastic, but along with Metals and all the other tooling I&#x27;ve used, it works better under Scala 2. Scala 3 is still kind of weird.<p>The biggest things to me would improve Metals, improve onboarding for build system, improve Scala 3 support for tooling all around, improve discoverability of defacto best&#x2F;most active packages.
评论 #34781861 未加载
评论 #34780923 未加载
评论 #34767654 未加载
pjmlpover 2 years ago
This is the curse of all guest languages, regardless of the platform.<p>They never contend with being better at using the existing platform, rather try to create an ecosystem of their own on top of the platform.<p>Idiomatic libraries to wrap existing ones, new IDE plugins, new build tooling, new package managers, introduce language features that only go one way, ....<p>Eventually they decide that targeting just that platform isn&#x27;t enough so they go multi-platform, adding more design compromises to their abstraction layer for all platforms.<p>Meanwhile, the languages that are designed alongside the platform, evolve alongside it, no need for the added complexity, and eventually decisions are made that introduce forks in the road compared to the introduction of the guest language that create issues with those features.<p>Using the platform languages might not be hip, yet as long as the platform matters, they will matter, the guest languages, who knows.
bdgeundover 2 years ago
Yet more context. DeGoes was targeted for &quot;cancellation&quot; by members of certain scala communities. His response has been to, with impressive success, create his own community with its own implementations of common libraries.<p>It&#x27;s not hard to imagine that he&#x27;s signalling here that his community will attempt to implement its own version of some fundamental platform libraries or systems.<p>Fwiw, I&#x27;ve been a scala dev for years and I think his analysis of what works and what doesn&#x27;t in the ecosystem is quite accurate.
评论 #34767431 未加载
thdespouover 2 years ago
Well, I think Scala is a nice niche language but with a lot of problems. I like it but the tooling sucks and it is slow to compile. Compared to other ecosystems like Java or Kotlin there are still things to be improved if this resurrection is to take place. We&#x27;ll see.
评论 #34761846 未加载
评论 #34764336 未加载
yazzkuover 2 years ago
Damn, that guy is ripped. If that&#x27;s what Scala does to you, I&#x27;m all in.
评论 #34771322 未加载
12345hn6789over 2 years ago
For anyone unaware John is an extremely polarizing figure in the Scala community. So much so I&#x27;d attribute Scala&#x27;s negative light partially to him.
评论 #34767699 未加载
cryptosover 2 years ago
I was a big fan of the Scala language some years ago and really like the improvements made in Scala 3. But I lost my confidence in Scala and the article is more a confirmation of this assessment than something that would give me hope that I would return to this powerful and beautiful language in the future.<p>Let me go through some of the points of this excellent write-up.<p><i>&gt; However, Java has a very simple type system that is static and well-defined. Scala’s type system is extremely complex and defined only by the implementation, which itself has numerous quirks, edge cases, and of course bugs. Moreover, the semantics, quirks, edge cases, and bugs all vary somewhat between minor versions of the Scala compiler, and are completely different between major versions.</i><p>This is a very good summary of why Scala is not a good fit for tool support.<p><i>&gt; Perhaps their next-generation editor Fleet is an acknowledgement both of the fact that JVM desktop applications are truly dead</i><p>The author probably doesn&#x27;t know that Fleet is also built upon the JVM!<p><i>&gt; The truth is Fleet is built on a reliable, performant and wonderful platform called the JVM.</i><p><a href="https:&#x2F;&#x2F;blog.jetbrains.com&#x2F;fleet&#x2F;2022&#x2F;01&#x2F;fleet-below-deck-part-i-architecture-overview&#x2F;" rel="nofollow">https:&#x2F;&#x2F;blog.jetbrains.com&#x2F;fleet&#x2F;2022&#x2F;01&#x2F;fleet-below-deck-pa...</a><p><i>&gt; In short, there are no IDEs for Scala right now with a modern experience suitable for commercial software development, nor any obvious path to a commercial-grade IDE.</i><p>Even the best Scala IDE (IntelliJ IDEA) is poor and nothing better is to be expected in the next years. This is basically the point where you could cross out Scala from your short list of programming languages!<p>Akka, once the most prominent Scala framework, is essentially doomed since the company behind it decided to switch to &quot;Business Source License&quot;.<p><i>&gt; Thus, every company I have talked to about Akka has told me they are ripping it all out.</i><p>The former killer application of the Scala ecosystem no longer drags any new developers into it.<p>ZIO as a potential Akka (and Spring) alternative is stil not mature, so probably not the reason to switch to Scala.<p><i>&gt; It is virtually impossible for Java or Kotlin code to call into Scala code. [...] Scala’s support for newer versions of Java, as well as new JDK or JVM features, lags behind. When the JVM gets value objects, for example, it is quite likely Scala support will severely lag; or as another example, the Scala compiler itself has been known to crash on modern JVMs.</i><p>I&#x27;d say that Scala is not a good citizen in the Java world. This is problematic in existing code bases. Kotlin is a much better fit there.<p>Scala Native (LLVM) and Scala.js or WASM are far from production ready yet. One major problem is missing tool support and I can not imagine any responsible software engineer would pick it as the basis for a new critical product. If anything else than the JVM is needed as a runtime, you should probably use somete other language, maybe Rust or Go (or Kotlin?).<p><i>&gt; It is absolutely true that Scala 3 is not a perfect language. It is also true that Java is not a perfect language. Yet Java remains backward compatible with the very first Java program ever written, which allows the ecosystem to continuously improve, and which gives companies confidence in investing in the Java programming language.</i><p>That is absolutely the core of the &quot;Resurrection&quot;. The Scala community was too long focussed on the language itself ignoring all other aspects like tooling and existing code bases. Maybe this is no surprise if you look at Scala&#x27;s history, but it is a big problem in practice. The best language is worth nothing if everything else is poor compared to the competition (be it Java, Kotlin, Go, Rust or whatever ...). Essentially Scala is the Haskell of the JVM, but the Haskell community decided early on that academics is their focus and that it should stay that way. However, Haskell is therefore a niche language in commercial projects. The Scala community should really make a bold decision for one of the sides, but it should no longer wander between the two camps.<p>As the author writes, Scala need completely new tooling: a new IDE, a new build tool replacing the horrible SBT, and a new package manager. But who should build it in a sensible time? Who should invest money?<p><i>&gt; Does Scala really need 20 JSON libraries, 5 schema libraries, 9 CLI libraries, 4 effect system libraries, and so on? Probably not. We need to consolidate, and rally around strong projects; merge our strengths, cancel our weaknesses.</i><p>This assumption is simply not realistic. What was the original motivation to create those libraries? Has anything fundamentally changed? It is not like in a big corporation where you would should down one of two competing projects (like Microsoft did with Atom in favor of VS Code). Just look at the Linux desktops ...<p>&quot;Worse is better.&quot; (<a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Worse_is_better" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Worse_is_better</a>) seems to apply to Scala very well. Go, which is probably on the other end of the spectrum of programming languages in expressiveness and the type system, is probably a much better bet for most companies. Java is also quite good these days and in any case &quot;good enough&quot; for almost all commercial projects (as long as technical constraints don&#x27;t require something without a VM). Kotlin is somewhere between Scala and Java, highly productive with world class tooling and a healthy ecosystem. I can not really see in what niche Scala could exist.<p>So, as sad as it might be, I think Scala has no bright future.
评论 #34773585 未加载