5 ms·
Do you think that the reason say Amazon is writing firecracker in Rust is because they just use whatever language is popular in HN and not because it's a good c
by adamnemecek 5y ago
Do you think that the reason say Amazon is writing firecracker in Rust is because they just use whatever language is popular in HN and not because it's a good choice?
- ncmncm 5y agoYes? Firecracker could be equally well done in many languages. It happened that the people assigned it at the time wanted production Rust experience, and were senior enough to be allowed to, despite the predictable risk of staffing difficulty after some other language steals away Rust's hipster cred. (Which one will, in time, as sure as seasons turn.) It is a common experience for systems written in the a fad language to end up being re-implemented in a language easier to hire for. E.g. I see remarks on HN about this being a principal driver of Erlang hiring, lately.
- adamnemecek 5y agoWhich other languages besides C/C++ were viable?
- ncmncm 5y agoC/C++ is not a language. I expect Firecracker could be done about as well in Rust, C++, Haskell, Java, Ada, or Typescript; or even in Common Lisp, C, or Assembly language.
- adamnemecek 5y agoCould or it would be a good idea?
- ncmncm 5y agoMeaning, was it a good idea to have implemented Firecracker at all? Every choice taken has consequences. Different choices have different consequences. Avoiding a choice has consequences. Linux is (still) coded all in C. It is a terrible choice, but it works well enough to keep a billion phones and a billion websites operating. Language isn't fate.
- adamnemecek 5y agoOk, firecracker could have been written in Assembly. It would have been a terrible idea. The fact that you legitimately suggested it makes me not want to engage in this conversation.
- jhatemyjob 5y agoIf we were talking about a startup, I'd agree with you. But given the vast resources at Amazon's disposal, I think assembly could be a legitimate option. Risky? Yes. But why not give it a shot? Assembly programmers are a dying breed, anything to incentivize people to write it is a win in my book.
- adamnemecek 5y agoDude what sort of an argument is that? They should write it in assembly just to keep assembly programmers around? Don't they support a multitude of architectures? Are they supposed to port it for every given architecture? Are they supposed to do networking in assembly?
- jhatemyjob 5y agoYes.
- ncmncm 5y agoYou demonstrate you were not engaged to begin with. Obviously asm is the extremest choice, which is why it was last. But Firecracker is not a difficult project, so if somebody really wanted, they could do it in asm. Likewise, Common Lisp. Not many would choose that, but it could perform as well as the others listed before it. Some people would even choose C.
- zbentley 5y ago> Firecracker is not a difficult project ...and Dropbox can be replaced with a few shellscripts + SFTP. Come on. Something like Firecracker has got to be both complex and extremely hard to get right. Complex because it has to deal with the ultimate in simultaneous state changes: a captive entire virtualized operating system. Hard to get right because it has a tremendous number of integration points with obscure and quirky external systems (KVM, Linux itself) at an extremely low level.