Live data from Hacker News

Scala isn't fun anymore

alexn.org

281–290 of 394 posts

Re: Scala isn't fun anymore

#281

> Maybe this is just me getting older (going to turn 40 soon). Maybe all programming is terrible. I’ve actually started to read Java newsletters, maybe Spring isn’t that bad, I’m also having affectionate memories of JavaScript and Python, and thinking about having a plan B in case this programming thing doesn’t work out The older I get the more this rings true. I've had several false starts with fancy new languages a…

I'd say Spring is kinda bad, but maybe not so much. But the JPQL and Hibernate parts are very bad and should be avoided for any serious work. Hibernate was made for a time with longer lived server-side objects, not today's workloads.

Re: Scala isn't fun anymore

#282

Earlier quoted context omitted.

In my experience, companies who chose Scala did enjoy a competitive advantage. Almost no bugs in production and predictable velocity. No more "not sure what this will break". In Scala projects I worked I almost never encountered any surprises except on boundaries (Scala Message broker) and etc. I saw projects (non-Scala) come to almost a complete stop from velocity perspective, because engineers were afraid to change…

Around 8 years ago we chose Scala for some random microservice, because there was ONE guy in the team that loved Scala and wanted to do something with it. I said, sure go for it, it will be interesting to test the technology. After he implemented the microservice, it was rock solid for like 5 years. Said dev left 3 years later after implementing the service. Two years after he left, we needed to do something to the m…

Sorry, but those two stories sound like dream outcomes. A more typical outcome is a service that is never quite right, needs bug fixes every release, requires a code change for every minor change in the system around it, and basically serves as a jobs program for engineers. Somebody nails a service so well that it does its job quietly for years with no further work? I don't care your code is written in Aramaic and causes other programmers' heads to bubble and explode, please stay on my team and give me another service just like it.

Re: Scala isn't fun anymore

#283

Earlier quoted context omitted.

Goroutines have been very successful.

And not just goroutines. The whole Go runtime is basically what Loom aspires to be. All functions async by default and preemptible. Writing code that looks like it's blocking but is in fact async. "Await" as the default action to do with an async function, and "go" being the optional action. So far the reception has been very good and it works very well in practice. To me it's a pain now to work with languages that d…

"All functions async by default and preemptible." Really? I thought functions were sync by default unless you add the 'go' keyword.

Re: Scala isn't fun anymore

#284

I actually think Scala is in the best position it's ever been. There is a commitment to making the language simpler, easier and cleaner. On the backend, ZIO ( https://zio.dev ) is the best concurrency library on any platform. On the frontend you have really interesting Scala.js projects like Laminar ( https://laminar.dev ). The biggest issue really is the tooling. SBT is simply awful.

> The biggest issue really is the tooling. SBT is simply awful.

This is backwards. The problem is that scala is simply awful. SBT just reflects the problems with scala. First and foremost, the authors of the scala language are either incapable of writing a decent build tool or they think that SBT is good enough. They have proven over many years that they do not prioritize the experience of developers actually writing code. Slow compile times are a much bigger drain on productivity than the superficial syntactical improvements that were made for scala 3.

The specific problems with sbt, needless complexity, inscrutable dsls, bloated code paths leading to slow start up times: these are all endemic to scala itself. The standard library is so badly organized that it takes 100s of milliseconds to load a simple hello world application: https://twitter.com/li_haoyi/status/1125674970829320193?cxt=.... Mill may be better than sbt in some ways, it's definitely worse in others but at the end of the day, if you are using either, you are stuck with scala and scala is very, very unlikely to ever get significantly better than it is today.

Re: Scala isn't fun anymore

#285

Golang has two great things going for it: 1. Emphasis on API stability. 2. Simple dependency management that generally just works.

Go dependency management sucks hard as soon as you leave the ‶everything open source on Gihthub″.

Having to change my global git config (e.g. https://gist.github.com/dcyou/06a4f6e0a770887fbd01fa8276b945...) to cater to Go is asinine.

Re: Scala isn't fun anymore

#286

Earlier quoted context omitted.

Python is still a lot of fun in certain areas: - machine learning, because AI is fun, and it's very easy to play with it in python. Also because you can easily stitch services together that allow you to make cool apps without having to code the hard part, like creating a discord bot to talk to midjourney. - anything that will use pydantic and type hints to generate parsing and validation. Fastapi, typer, etc. It's re…

What's the cliff notes of the right way / where's the signal in noise? I don't write Python, but Python is like Java these days, it finds you.

In short, a huge number of packaging problems come not from packaging, but from the way you install, configure and call python. Unfortunatly, everybody and their mother tell you how to do this, and you'll find 1000 articles to get you in trouble, but very few to tell you what you should actually do.

The full story is pretty long and most people don't have the time and resources to learn everything about it.

The easiest way is to follow a receipe for the least pain possible, which includes limiting yourself to a single path for bootstrapping python. Here is the one I currently recommend to my teams at the end of the comment:

https://news.ycombinator.com/item?id=32805483#32807220

It can't solve as much as knowing the whole deal, but it will remove a lot of ways to shoot yourself in the foot, and work around a lot of the legacy issues. And above all, it's easy to keep around and to apply. I noticed that anything more complicated will lead to people, so I removed a lot of things from it years after years (like -m, pipx, etc).

Of course, this will not solve the setup that are already in place, which you will likely have. I can't provide a generic way to solve that, there are too many possibilities.

Hopefully the community will eventually solve most of this by providing better default in the future, but this is an excrutiatingly slow process.

Re: Scala isn't fun anymore

#288
post #201

I enjoyed Scala, but I enjoy F# much more. .NET Core is a healthy cross-plat ecosystem, many of the VSCode/F# tooling issues have been eliminated over the past few years (IntelliJ was really one of the core reasons I preferred Scala), plus Akka.NET has F# bindings. Come on in, the water's warm: https://fsharp.org/learn/ https://getakka.net/

Any experience in akka.net vs the Microsoft actor framework? (Orleans it's called I think?)

Re: Scala isn't fun anymore

#289

I don't have a ton to say here, the article says it all really. But this also reflects my experience when developing with Scala and although I love the language and its brevity, I went back to Java because I hated the Scala toolchain, sbt, dependency issues, etc. Basically, I like the language in isolation but the overall experience was horrible.

A good middleground is Kotlin. You get some of the nice features / syntax from Java without the problems. While Scala is actually a way more powerful language, Kotlin is more than good enough for most real world tasks and the tooling is so much better.

It actually is. Now that IntelliJ has cut ties with the Evil Empire I would expect its adoption to grow faster. But I must say that a year ago I could find no Kotlin _backend_ positions in the Bay Area.

On the technical side

* I don't like the idiomatic Kotlin approach to concurrency. Its coroutines are more difficult and unusual than typical Future-based libraries in other JVM languages.

* I'm not convinced null safety is a big enough question to justify multiple cryptic operators.

Personally I dread the demise of Scala. The Haskell lovers and the Akka license changers are certainly squeezing regular developers out big time. Databricks built a C++ engine, Rust is increasingly popular in other new OSS query engines. Those trends don't bode well at at all. Java is more expressive than golang but I'd rather use something more modern than either of them.

Re: Scala isn't fun anymore

#290

Earlier quoted context omitted.

They are speaking of the feud between ZIOs creator John de Goes and long-time Typelevel steering committee member Travis Brown ( https://meta.plasm.us/posts/2019/09/01/jdg-and-the-fp-commun... ) and split the community along those same party lines.

Some other important context is this is around peak controversy time around codes of conduct in all programming communities. Some degree of political fighting was going to happen one way or another, but it was made substantially worse by decisions made by the Lambda Conf committee at that time to allow Curtis Yarvin to speak. You can read their rationale and it's clearly well thought-out, but in hindsight it led to a…

>Lambda Conf committee at that time to allow Curtis Yarvin to speak.

Actually, it wasn't the "committee" that allowed it, it was a subset of speakers from under represented groups in tech (women, minorities, PoC etc whatever term you prefer) that voted to let him speak as long as he kept to his topic.

Post reply on HN