4 ms·
Also if anyone is talking about systems programming, it would be beneficial if you specify what that means. I've seen people consider "systems" programming as
by mitchty 10y ago
Also if anyone is talking about systems programming, it would be beneficial if you specify what that means.
I've seen people consider "systems" programming as relating to building web services. Traditionally systems programming would be more kernel level and utilities/daemons.
Rust might be OK to start using for the latter, but its very much not yet where I'd start using it for new things for either of the traditional setup.
I know everyone is gung-ho about rust, but for the traditional systems programming crowd, its very new. Given how much it changes I would NOT want to bet on using it for at least 5 years. You don't switch just because something is better on memory safety. That is a nice to have thing. But changing 40ish years of things isn't something that you do without planning.
Also, in my opinion Rust doesn't go far enough. I'd rather we move to things like Idris where I can prove much more than just memory safety. Rust is basically Ada/Oberon/Modula for the modern age. Nice, but ultimately not the first time this has happened.
- solidsnack9000 10y agoRust is more focused on C compatibility and simple (dumb) operational semantics than Idris and other dependently typed languages. Rust will never require GC, for example; maybe Idris doesn't now but is that a focus for them?
- mitchty 10y agoIdris can compile to c, it requires no runtime. You're probably thinking of Haskell with its RTS. Idris is closer to ocaml in that regard. I cough may have already tried using idris in a kernel module. (for fun, not for serious)
- im3w1l 10y agoAnd how did it go?
- mitchty 10y agoIt worked surprisingly enough, well enough to make me consider trying out some gpio stuff to play around with. From there I'll let you know, I'm still learning Idris and dependent types so I'm a fairly boring test case. This was more of a: lets try it and see what goes kaboom test.
- solidsnack9000 10y agoI'm not thinking of Haskell. Idris compiles to C but there is an open question there, with regards to how memory will be handled now and in the future. Swift does not need a runtime either, since it uses automatic reference counting for everything; but it has not gone as far as Rust, which defaults to stack allocation everywhere. This is not to say I doubt the ultimate approach of Idris: with dependent types you can do everything Rust is doing, and more. It's just a matter of project focus and ergonomics.
- pjmlp 10y agoWhich is why I am more willing to bet on Swift and .NET Native getting more widely used than Rust. Not to misrepresent the work the Rust guys are doing, it is great what they are doing and I have lots of fun dabbling on it. But new system programming programming languages tend to be adopted when an OS vendor tells devs, either use it or go code elsewhere. On OSes that have significant market share, devs tend to learn the new language instead of waving it away.
- steveklabnik 10y ago> Given how much it changes I would NOT want to bet on using it for at least 5 years. Rust may be changing, but it's almost entirely _additions_. We've been stable for roughly 18 months now.
- mitchty 10y agoSorry should have been more clear, my meaning was more around things like cargo and tooling rather than the language proper. Don't take any of my criticism too harshly either, I do like and use Rust for side projects. But it is about 3 years away from where I'd consider using it for anything. I'm a bit more conservative than most here seem to be. Funny part is I'm the maverick in using new stuff compared to the people I work with. Keep on trying to improve things either way!