back to article AWS hires Rust compiler team co-lead Felix Klock

Amazon Web Services has quietly revealed that it has hired Rust compiler co-lead Felix Klock. A Tuesday post from the AWS open source team expressing its ardour for Rust outlined several ways the cloud colossus has embraced the language. AWS's Matt Assay wrote that the company "increasingly builds critical infrastructure like …

  1. StrangerHereMyself Silver badge

    Nice move

    I believe Rust will eventually supplant C and C++ as the language of choice for performance oriented programming. This includes operating systems, device drivers, games and tooling.

    I do not believe (and hope) that Rust will be used in line of business applications as it is simply much harder to master than C# or Java. Some companies will always claim they need that last drop of performance, but believe me, in most cases they don't.

    Working with Rust I've come to appreciate the wisdom of including garbage collection in Java and C#. Manual memory management is simply something humans aren't good at and is best left to the computer.

    1. jonha

      Re: Nice move

      Rust IS harder to master than some other languages but in my experience this has never been a problem. Learning new concepts, if they're sound and lead to safer and/or more efficient software, is never wasted time. IMHO.

      As to last drops of performance I wholeheartedly agree. "Premature optimization is the root of all evil." If anything, this Donald Knuth quote should be hanging above every programmer's desk.

      And garbage collection? I agree as well. Todays's GCs have become "good enough" for almost everything not requiring real time performance. And very few processes need real "real time".

      1. StrangerHereMyself Silver badge

        Re: Nice move

        I believe that as a society we benefit much more from having computer languages that almost everyone is able to master than ones like Rust / C++ which only relatively few people can be productive with since so much software is being written these days.

        As an experienced C / C++ programmer I find Rust frustratingly difficult to work with, and I'm also convinced its too steep a learning curve for many C# / Java developers.

        1. jonha

          Re: Nice move

          > I believe that as a society we benefit much more from having computer languages that almost everyone is able to master

          I strongly disagree. Programming IS hard if it is to be done well and if you give people the illusion they have mastered "programming" (probably with a "Learn XYZ in 24 hours" book) you'll end up with exactly the sort of bloated, buggy crap that today is called software. I've been a programmer since the 6502 came around end of the 70s and I hang my head in shame about the state of play in software.

          This is the same trap as re-training all and sundry as cyber security experts. You'll see where that will land us.

        2. Phil Lord

          Re: Nice move

          > I'm also convinced its too steep a learning curve for many C# / Java developers.

          This is always hard to tell of course, but I did find Rust pretty hard to learn when I started working with it. Mostly because of the borrow checker; the actual concept is not too bad, but the consequences of lifetimes I found hard to deal with. Nowadays, it is much less of a problem. I seem to use explicit lifetimes rarely, normally just one at a time, and they just slow in there and away you go.

          There are two possible reasons for this. One is that I am just a better rust programmer than I was and what used to be hard has become second nature. But, the other is that Rusts borrow checker has become noticeably more forgiving than in the past, which, of course, it has. It's quite possible that the learning curve is not what it was when you learned it.

          I also think that he documentation is partly at fault; the Rust book spends too much time talking about lifetimes and leaves you feeling that Rc and the like are for desperate times. In actuality, they are there to use, effectively adding GC for when you need it.

      2. Anonymous Coward
        Anonymous Coward

        Re: Nice move

        > As to last drops of performance I wholeheartedly agree. "Premature optimization is the root of all evil." If anything, this Donald Knuth quote should be hanging above every programmer's desk.

        Where do you draw the line? I suppose for some it is "I'm too lazy to redo this shell script in something else" sadly. If more people thought about DDoS scenarios, they'd probably go for the safest and most performant, currently something very Rust-like.

    2. DrXym

      Re: Nice move

      There is a website called Are We Web Yet? (https://www.arewewebyet.org/) that shows the state of Rust as regards to web technologies, databases etc. and it's pretty complete.

      While it is obviously not the right choice for many applications that might otherwise choose C#/Java, I think it is a very good choice for those that are constrained by speed, memory or need to scale up. For example I think Rust is going to be very popular in IIOT devices as well as part of cloud compute stacks that need to be reliable and super fast.

    3. karlkarl Silver badge

      Re: Nice move

      "Working with Rust I've come to appreciate the wisdom of including garbage collection in Java and C#. Manual memory management is simply something humans aren't good at and is best left to the computer."

      Rust and C++ do have automatic memory management. Just not necessarily garbage collection. RAII / smart pointers means that you should never be explicitly calling delete. Or the code is generally not exception safe in C++.

      To be fair even C has automatic memory management if you bolt on Boehm's GC. But I suppose that is beyond the point ;)

      1. bazza Silver badge

        Re: Nice move

        There's also the point that a lot of C/C++ memory allocator will these days do a lot of clever things to minimise interaction with the OS, allocating more than necessary and hanging on to freed memory just in case, all in the name of speed.

        Rust is in an even better position to do that. Arguably Rust's memory management is even more automatic than the GCs in C# and Java, it doesn't have to scour allocations looking for memory to free

    4. Anonymous Coward
      Devil

      Re: Nice move

      > I believe Rust will eventually supplant C and C++ as the language of choice for performance oriented programming.

      Yes, right after hell freezes over.

    5. Anonymous Coward
      Anonymous Coward

      Re: Nice move

      > I do not believe (and hope) that Rust will be used in line of business applications as it is simply much harder to master than C# or Java. Some companies will always claim they need that last drop of performance, but believe me, in most cases they don't.

      As someone who cares about the environment, I welcome more code to be written in rusty. On average you get more performance out of each CPU cycle and thus better bang for electricity.

      What makes Rust wonderful in my view, in addition to better performance per cycle, is that it comes with a huge library of in a very simple form addressable by semantic version, if you wish.

      The likes of Fedora and Debian think this is beneficial enough to include libraries this way. Maybe you can't use Cargo due to network restrictions where you need to build? No worry, you can include those libraries using the 'vendor' sub-module.

      Rust just hits all the nice spots for me, good memory management, some duck typing, no garbage collection, wonderful library management and very, very fast. Oh and clippy/fmt stop in-office/team disputes about how things should b done. Oh and unit tests there from the start. What is there to no like once you understand borrowing and lifetimes?

      1. StrangerHereMyself Silver badge

        Re: Nice move

        For me, the built-in support for unit testing is one of those things that swayed me to use Rust.

        I'm a great proponent of TDD and unit testing and any language that has built-in support has one leg up compared to the rest.

        1. trist

          Re: Nice move

          Last time I checked it didn't write the test cases.

          Also are you talking about cargo or rust? There is a bit of a difference here.

  2. coconuthead

    Amazon got lucky that Mozilla gave up

    Translation: "We used a nifty new language and had to hire an expert when the organisation sponsoring it threw in the towel. Good thing they didn't keep at it but take the language in some direction inappropriate for our uses, because then Klock might not be available to us."

    I'll reserve judgement on the language itself, other than to say, whatever the merits of the borrow-checker concept, it seems to be almost as much like line noise as perl or TECO. At some point I'll learn enough Rust to form an opinion, but I'm afraid it's behind Erlang in the queue.

    I'd prefer if the next language did not hail from the Anglosphere - every language from there (B, BCPL, Bliss, C, C++, perl, go, Swift) has lacked taste. Yet a succession of elegant things from other countries (Pascal, Modula-2, Simula-67, Ada, and probably if I knew them Erlang and OCaml) have sunk almost without trace. I quite like Python - guess what, it's originally from the Netherlands.

    It's almost as though dominance of languages has little to do with their merits and more to do with what big American companies like.

    1. jonha

      Re: Amazon got lucky that Mozilla gave up

      > every language from there (...) has lacked taste

      Never drink hot tea while sitting in front of a computer screen.

      And whether the words "elegant" and "Ada" and "Python" should go into one sentence is surely debatable.

      Also, Pascal, in its day, was quite a success... it certainly didn't sink almost w/o trace.

      1. coconuthead

        Re: Amazon got lucky that Mozilla gave up

        Ada might be too verbose for your taste, but it is consistent.

        Pascal took a lot longer to sink than the others, but there's not a lot of it floating around now. (Back in the 80s, I built utilities with it that had thousands of users.) It's true it left a trace in Swift's and golang's declaration syntax. I can't think off-hand of any other way it influenced modern languages; everything else came from Algol-60.

        Python is, I would argue, somewhat elegant within its original intended purposes. It's flawed, e.g. the "__init__" muck, but then I did say I "quite liked" it rather than listing it with the others.

        And I don't know how I managed to leave out Rust's fellow alumnus Javascript, which, like a lot of people, I despise. Fool me once...

        1. Crypto Monad Silver badge

          Re: Amazon got lucky that Mozilla gave up

          > Pascal took a lot longer to sink than the others, but there's not a lot of it floating around now. (Back in the 80s, I built utilities with it that had thousands of users.)

          It was the primary programming language for the original Macintosh. If you wanted to code in C, you had to convert your strings into Pascal form (first byte = length) to work with the API.

    2. DrXym

      Re: Amazon got lucky that Mozilla gave up

      At some point I'll learn enough Erlang to form an opinion, but I'm afraid it's behind Brainfuck in the queue.

      1. A.P. Veening Silver badge
        Pint

        Re: Amazon got lucky that Mozilla gave up

        Learning Brainfuck as a priority, ROFLMAO!

        Have two or three large ======>>>

      2. Anonymous Coward
        Anonymous Coward

        Re: Amazon got lucky that Mozilla gave up

        Be glad your telcos use Erlang and not Brainfuck.

    3. bazza Silver badge

      Re: Amazon got lucky that Mozilla gave up

      I'd prefer if the next language did not hail from the Anglosphere - every language from there (B, BCPL, Bliss, C, C++, perl, go, Swift) has lacked taste. Yet a succession of elegant things from other countries (Pascal, Modula-2, Simula-67, Ada, and probably if I knew them Erlang and OCaml) have sunk almost without trace. I quite like Python - guess what, it's originally from the Netherlands.

      C++ is Danish, originally. And the reason why Pascal, Modula-2, Ada etc sank from trace was because they're runtime inefficient for most purposes. Ada is particularly cumbersome to run, and gets used only where there's little choice (safety / mission critical systems, like reactor control or flight control systems). Erlang has had success in telephony networks, an arena where European companies have been strong.

      Elegance is all very well and good, but if there's money at stake elegance can be too expensive. Languages like C, C++, etc have an engineering or corporate background. Languages like Pascal, Modula-2, Ada, etc have an academic or committee background. Python was originally conceived as a replacement for a teaching language and, popular though it is, relies messily on C to be fast and has a distribution system that depends on having a compatible build environment for C installed.

      1. coconuthead

        Re: Amazon got lucky that Mozilla gave up

        Bjarne Stroustrup is Danish, but he developed C++ at Bell Labs. One of his design constraints was that it was targeted at people who already knew C but not Algol. Otherwise, he might have done a mild update of Simula-67 (which he knew). The culture has a big effect. (Stroustrup's mathematical elegances shine dimly through the New Jersey crud in stuff like the way inheritance works and the operator overloading. Perhaps not coincidentally, some people hate those things in the language.)

        Guido van Rossum, on the other hand, invented Python at the Dutch CWI (their national maths and computer science research insitute), the very same place that produced Algol-68.

        Erlang was developed by Joe Armstrong (British) and others at Ericsson, a Swedish company. Again, he was given the freedom to do it properly and his language was not dismissed as "too abstract" or "too inefficient". It's the culture, not the nationality or first language of the originator. Erlang was probably a big reason why Ericsson's exchanges sold so well; they were better.

        I have to disagree that Pascal and Modula-2 were considered inefficient at the time. Both were used for real-time work – I've personally seen the firmware on a network card done in Modula-2.

  3. Anonymous Coward
    Boffin

    Rust is brilliant.

    So is Python.

    But in different ways.

    C++ is the Kleenex after a Rugby team has wanked into it. Potent, but you wouldn’t clean your child’s face with it.

  4. moooooooo

    A new definition for Rust bucket ?

    So Rust and S3 == a rust bucket ? one for fellow Aussies :-)

  5. Rdettai

    What about Rusoto?

    My way of thinking is probably very naive, but I don't understand how AWS can communicate that much about supporting Rust and and leave the development of its Rust SDK (Risotto) to the community. It is a pretty simple piece of software but that needs constant (and boring) maintenance and is crucial for the adoption of Rust on the AWS ecosystem... Can somebody enlighten me???

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like