4 ms·
Rue author here, yeah I'm not the hugest fan of "low level vs high level" framing myself, because there are multiple valid ways of interpreting it. As you yours
by steveklabnik 10mo ago
Rue author here, yeah I'm not the hugest fan of "low level vs high level" framing myself, because there are multiple valid ways of interpreting it. As you yourself demonstrate!
As some of the larger design decisions come into place, I'll find a better way of describing it. Mostly, I am not really trying to compete with C/C++/Rust on speed, but I'm not going to add a GC either. So I'm somewhere in there.
- written-beyond 10mo agoHow very so humble of you to not mention being one of the primary authors behind TRPL book. Steve you're a gem to the world of computing. Always considered you the J. Kenji of the Rust world. Seems like a great project let's see where it goes!
- steveklabnik 10mo agoThat is a very kind thing to say, I admire him quite a bit. Thank you!
- manaskarekar 10mo agoSince it's framed as 'in between' Rust and Go, is it trying to target an intersection of both languages' use-cases?
- steveklabnik 10mo agoI don't think you'd want to write an operating system in Rue. I may not include an "unsafe" concept, and will probably require a runtime. So that's some areas where Rust will make more sense. As for Go... I dunno. Go has a strong vision around concurrency, and I just don't have one yet. We'll see.
- ChrisSD 10mo agoDo you have plans for handling C FFI without "unsafe"? Will it require some sort of extension module written in C/C++/Rust?
- steveklabnik 10mo agoNo direct plans. For the immediate future, only the runtime is allowed to call into C. If this ever becomes a production thing, then I can worry about FFI, and I'll probably just follow what managed languages do here.
- tracker1 10mo agoFWIW, I really like the way C# has approached this need... most usage is exposed via attribute declaration/declaration DllImport for P/Invoke. Contrasted with say JNI in Java or even the Go syntax. The only thing that might be a significant improvement would be an array/vector of lookup names for the library on the system given how specific versions are often tagged in Linux vs Windows.
- killingtime74 10mo agoWow didn't realise it was you who was the author. I learnt a lot about Rust from your writings.
- steveklabnik 10mo agoI'm glad to have helped you :)
- chrysoprace 10mo agoDo you think you'll explore some of the same problem spaces as Rust? Lifetimes and async are both big pain points of Rust for me, so it'd be interesting to see a fresh approach to these problems. I couldn't see how long-running memory is handled, is it handled similar to Rust?
- steveklabnik 10mo agoI'm going to try and avoid lifetimes entirely. They're great in Rust! But I'm going to a higher level spot. I'm totally unsure about async. Right now there's no heap memory at all. I'll get there :) Sorta similar to Rust/Swift/Hylo... we'll see!
- lamontcg 10mo agoSo if you don't have a garbage collector, and you don't have manual memory management, and you don't have lifetimes... What do you have?
- steveklabnik 10mo agoThe plan is something like mutable value semantics and linear types. I'm figuring it out :)
- AdieuToLogic 10mo ago> Mostly, I am not really trying to compete with C/C++/Rust on speed, but I'm not going to add a GC either. So I'm somewhere in there. Out of curiosity, how would you compare the goals of Rue with something like D[0] or one of the ML-based languages such as OCaml[1]? EDIT: This is a genuine language design question regarding an imperative/OOP or declarative/FP focus and is relevant to understanding the memory management philosophy expressed[2]: No garbage collector, no manual memory management. A work in progress, though. 0 - https://dlang.org/ https://dlang.org/ 1 - https://ocaml.org/ https://ocaml.org/ 2 - https://rue-lang.dev/ https://rue-lang.dev/
- steveklabnik 10mo agoCloser to an OCaml than a D, in terms of what I see as an influence. But it's likely to be more imperative/FP than OOP/declarative, even though I know those axes are usually considered to be the way you put them than the way I put them.
- AdieuToLogic 10mo ago> But it's likely to be more imperative/FP than OOP/declarative, even though I know those axes are usually considered to be the way you put them than the way I put them. Fascinating. I look forward to seeing where you go with Rue over time.
- ksec 10mo agoIs this a simplified / distilled version of Rust ? Or Subset of Rust with some changes ?
- steveklabnik 10mo agoSome of it is like that, but some of it is going to be from other stuff too. I'm figuring it out :)
- rob74 10mo agoSimplified as in easier to use, or simplified as in less language features? I'm all for the former, while the latter is also worth considering (but hard to get right, as all the people who consider Go a "primitive" language show)...
- a96 10mo agoSince that seems to be the (frankly bs) slogan that almost entirely makes up the languages lading page, I expect it's really going to hurt the language and/or make it all about useless posturing. That said, I'm an embedded dev, so the "level" idea is very tangible. And Rust is also very exciting for that reason and Rue might be as well. I should have a look, though it might not be on the way to be targeting bare metal soon. :)
- steveklabnik 10mo agoI don't mind if a sentence I threw up for a side project "hurts the language" at this stage, this is a project primarily for me. You should use Rust for embedded, I doubt Rue will ever be good for it.
- pron 10mo ago> because there are multiple valid ways of interpreting i There are quantitative ways of describing it, at least on a relative level. "High abstraction" means that interfaces have more possible valid implementations (whether or not the constraints are formally described in the language, or informally in the documentation) than "low abstraction": https://news.ycombinator.com/item?id=46354267 https://news.ycombinator.com/item?id=46354267
- dxxvi 10mo agoYou couldn't get the rue-lang.org domain? There are rust-lang.org, scala-lang.org, so rue-lang.org sounds better than .dev. I'd love to see how Rue solves/avoids the problems that Rust's borrow checker tries to solves. You should put it on the 1st page, I think.
- steveklabnik 10mo agoAlready taken. I'll put more about that there once it's implemented :)