6 ms·
How 'high-level' are you hoping for here? Haskell? Rust has very high abstractions, but I guess the fundamentals are based around giving you control over low le
by TwentyPosts 3y ago
How 'high-level' are you hoping for here? Haskell? Rust has very high abstractions, but I guess the fundamentals are based around giving you control over low level stuff, which seems like a good balance to me. I'm not sure what specifically you'd hope to do which you can't do in Rust.
- auggierose 3y agoThere is a lot of stuff you cannot do in Rust. For example reasoning about your code, which is the minimum I expect from my language. If you cannot do that, it's not high-level enough. Rust is like all other type-based languages: it restricts what you can do, offering you some guarantees in return. For me, the deal Rust is offering is just not that good. I don't like to live in somebody else's idea of allowed code.
- TwentyPosts 3y agoYou can't..."reason about your code" in Rust? Look, maybe there's a reasonable take in there somewhere, but the way you put it just makes it sound like gibberish. It sounds like you're just hoping for either a dynamically typed language (eg. Python) or for a language which is fully type-inferred (eg. Haskell). Which way is it?
- auggierose 3y ago[flagged]
- orf 3y agoIt doesn’t, and it’s still a pretty unintelligible answer. > I don't like to live in somebody else's idea of allowed code. You program runs on a CPU, that is the definition of someone else’s idea of allowed code.
- auggierose 3y agoI don't see my programs limited to a CPU. Thanks for pointing out another limitation of Rust. I am sorry that you cannot understand my answer. I am working on remedying this, unfortunately now is not the time for me to educate one person at a time. Hopefully later.
- orf 3y agoAre you ok? If you think you’re programming on the fabric of the universe and not a chip, then the likelihood is you’re experiencing a major psychiatric issue, which given the tone of the replies is a definite possibility. If you’re not, then you’re programming for some kind of chip, which inherently and obviously limits your ability to express programs to those that are supported on that chip, be that via the specific instructions, architecture or performance of that chip. Which has nothing to do with rust.
- auggierose 3y agoThanks for asking! Yes, I am ok, I am just moving on a higher plane of reasoning than pretty much anyone else currently. Trying to give you access to that plane as well, hopefully soon. If you express your programs in logic, first, your programs are not just programs anymore, they are mathematics. Mathematics is not bound to a particular CPU or chip. Sure, you can make it run on one (or not, that would depend on your program). Now, this has a lot to do with Rust. Rust is a particularly restrictive form of expressing yourself. It basically prescribes a very particular form of mathematics, and in return, promises you certain theorems for free. Much like other type based programming languages, and even logics (although type-based logics are of course much more expressive than type-based programming languages). Instead, it would be better to express your ideas freely in a logic, just constrained by consistency, and not much else. This is very much the idea of programming as theory building. Where can you build a theory better, than in a logic? Then of course implementation details are important, such as speed, parallelism, memory use, etc. Rust's idea is to put these details front and center, especially memory use. That can work well, depending on your use case, but usually, it's just premature optimisation. Of course, if your thinking is restricted to Rust, you would not agree with that.
- JonChesterfield 3y agoProgramming languages are restrictions. A 'program' is information passed to an interpreter, where the language describes what that interpreter will do with your program. That interpreter has restrictions, upon which the language may add further restrictions. The only language with zero restrictions relative to the interpreter is the language that interpreter acts on, e.g. aarch64 machine code for a specific processor instance. And even then, the restrictions of that CPU are very much present. What do you have in mind for an unrestricted language?
- auggierose 3y agoSee the other thread (oops, it got flagged). Mainly, the right level of abstraction is that of a logic. Current logics are somewhat lacking (first-order logic doesn't have general binding, typed logics don't have a single mathematical universe), but I think I found the one to rule them all. Programming is then just a (arguably very important) special case of expressing yourself in this logic. Hopefully soon(ish) on a website near to you.