I love both the Murderbot books and Piranesi. I think they're excellent for _very_ different reasons.
With Murderbot, the "corpos control everything" scifi future setting is nothing new. I think the brilliance is in its portrayal of the main character, primarily through its inner voice. Murderbot is a really unique character and it is written very well.
Conversely, in Piranesi, the main character is basically a cipher. He doesn't know who is, and we don't learn a lot about him or his psychology for most of the book. I felt like he was mostly there to let us experience the world, which as you put it was otherworldly and quite unique. The brilliance of the book is the prose and the world, not the character.
But like I said, I think comparing anything to Dune is pretty tough. Dune is a landmark work that still influences modern writers, and that modern audiences still enjoy reading. The recent movies have translated it to the big screen and captured an even larger audience (an amazing feat given how weird the books are).
Very, very few SFF books have had a similar impact. There's Tolkien, who is arguably the most influential SFF writer of all time. What other SFF works from the 60s or earlier are still as widely read and influential as Dune and LotR? Almost none, except Le Guin's Earthsea books, which barely squeaks in with a 1969 release for the first book.
Murderbot won the Hugo for best novel in 2021. This is the first _novel_ in the series. The previous publications were novellas, and so not in the same category. I suspect that the award may have been in part for the series and not this book specifically. We see this in other years, for example with N.K. Jemisin winning the Nebula for Stone Sky, the third book in a trilogy. Was Stone Sky better than the first two, or was this just a way to recognize a great overall series?
I really like that the Hugos added a Best Series category in 2017 to hopefully avoid this sort of thing. It seems like a great series is a different beast than a great single novel.
Murderbot was 2021. I would defend it as a winner, but take a look at other recent years:
* 2020 - A Memory Called Empire by Arkady Martine - a science fiction story set in a future Aztec space empire - quite inventive and odd. The sequel won in 2022.
* 2024 - Some Desperate Glory by Emily Tesh - basically a story about growing up as a terrorist in a sci-fi setting, with some wild turns.
* 2025 - The Tainted Cup by Robert Bennett Jackson - a very bizarre Holmes & Watson take set in a land constantly invaded by sea kaiju, and where there's "magic" (or is it science) based on harvesting the dead kaiju's bodies.
These are all excellent books, each of which has something different to recommend them.
Are they as good as Dune? Well, it's very hard to say _now_. Assuming humans still exist in 60 years, will they still read them like we read Dune 60 years from its publication? Maybe.
Heinlein's Stranger in a Strange Land won in 1961. I've read it, and I don't think it's aged very well. It's certainly not Dune.
How many people are still reading the 1969 winner, John Brunner's Stand on Zanzibar? I _have_ read it. It's good, but nowhere close to Dune. And how about 1978's winner, Gateway by Frederik Pohl? It's ... fine. It's not even in the same category as Dune, IMO.
Dune is an outlier among _all_ winners. It's one of the best SF books of all time, with a voice that still seems fresh today. Most Hugo (and Nebula) just don't live up to this standard. There are a few that do, like Left Hand of Darkness, Ender's Game, Hyperion, and Jonathan Strange & Mr Norrell (better than Dune, IMO). But those are outliers just like Dune.
We've done the same thing in my job. I think what they're saying is that rather than passing/returning `SomeStruct` and having it maybe be optional, they either pass `SomeStruct`, with a rule that it's never nil, _or_ they pass `Option[*SomeStruct]`. Then anything that deals with optional types is forced to explicitly check.
This is exactly how Rust works, except there it's built into the compiler, and there's no such as nil in most code.
Imagine that you are a consultant. You get a call that starts with, "Hi, this is Joe Schmoe and Schmoe Law Firm. I need a new billing system. Can you build me one?"
And you respond by saying that you can, but you need to do a _lot_ of work with him to spec this billing system out. You can't just build "a new billing system" without any more details. You tell him that this will take many hours of work between the two of you where you ask him questions, write a spec, get his feedback, and repeat that a number of times.
At this point, he says "wow, that sounds like a ton of of work for me just get started", and he gives up.
AI does not fix any of this, and this is the thing that I think most people will not want to do, and that's why I think this blog post is making a very good point. The amount of work it takes to build a new software system, even with a super competent programmer as a partner, is still quite significant. And it requires thinking about hundreds of tiny little details in a way that drives a lot of people nuts. They will only do it if they _really_ have to do it.
I was wondering about this myself. My guess is no, since AFAIK the only way to do this sort manual memory management is to use unsafe code. But there's also things like the (bumpalo)[https://docs.rs/bumpalo/latest/bumpalo] crate in Rust, so maybe you wouldn't need to do this sort of thing by hand, in which case you're as leak-free as the bumpalo crate.
> What's an example of a language that's as bad as Perl, that's used as widely as Perl was, that's still in use today?
PHP? I don't know how widely it's still used, but I'd guess it's more widely used than Perl. Also, PHP is not "as bad" as Perl. It's much, much, much worse. It's Perl without the charm.
My main complaints about Go are not that it needs more obscure syntax. The biggest problem with Go is basically that the core of the language's syntax is special, and only accessible to the compiler. This goes hand in hand with the language not offering generics out of the gate. This means that things like slices, maps, channels, etc. are all special. You cannot implement anything similar that uses the same syntax (even now that generics exist).
This lack of flexibility means that it's impossible to experiment with replacements for built-ins, and the lack of generics out of the gate meant so many things were simply impossible (like useful iterators).
Compare this to Rust, where almost everything like this is just a trait. If you want to offer a map replacement, you just implement the Index and IndexMut traits.
Overall, I don't think Perl is the best language design. It has some interesting ideas. Go is _also_ not the best language design. Is Rust the _best_? No, but it's better than both Perl and Go, IMO.
I was just saying that they were confused about what was going on with Perl because if the Perl 6 effort. I don't think that they were confused or wrong in their decision making.
True. For whatever reason, these never displaced XS. For wrapping C libraries in particular, it's not clear to me how much Inline::C helps with this. You're still stuck using a lot of Perl C API calls, AFAICT, which I think is the biggest challenge of using XS (I still have nightmares from trying to figure out where and when to add `sv2mortal` in my XS code).
> The point where I disagree is I think Perl 6/Raku played a significant role in Perl's decline. It really gave me the perception that they were rudderless and that Perl probably had no future.
I assume you disagree with the blog post, not with my comment, since this is exactly what my comment says too!
I was writing a comment asking if it was really easier. Then I took a look at Cython. Yes, this looks easier than Perl's XS, which I have some experience with! There are ways to do something similar in Perl these days, notably https://metacpan.org/pod/FFI::Platypus. But these are relatively new (starting in the 2010s) compared to the history of Perl, and Cython goes back to the early 2000s.