Slashdot Mirror


Rust Creator Graydon Hoare Says Current Software Development Practices Terrify Him (twitter.com)

An anonymous reader writes: On Monday Graydon Hoare, the original creator of the Rust programming language, posted some memories on Twitter. "25 years ago I got a job at a computer bookstore. We were allowed to borrow and read the books; so I read through all the language books, especially those with animals on the covers. 10 years ago I had a little language of my own printing hello world." And Monday he was posting a picture of O'Reilly Media's first edition of their new 622-page book Programming Rust: Fast, Safe Systems Development. Then he elaborated to his followers about what happened in between.

"I made a prototype, then my employer threw millions of dollars at it and hired dozens of researchers and programmers (and tireless interns, hi!) and a giant community of thousands of volunteers showed up and _then_ the book arrived. (After Jim and Jason wrote it and like a dozen people reviewed it and a dozen others edited it and an army of managers coordinated it and PLEASE DESIST IN THINKING THINGS ARE MADE BY SINGLE PEOPLE IT IS A VERY UNHEALTHY MYTH)." He writes that the nostaglic series of tweets was inspired because "I was just like a little tickled at the circle-of-life feeling of it all, reminiscing about sitting in a bookstore wondering if I'd ever get to work on cool stuff like this."

One Twitter user then asked him if Rust was about dragging C++ hackers halfway to ML, to which Hoare replied "Not dragging, more like throwing C/C++ folks (including myself) a life raft wrt. safety... Basically I've an anxious, pessimist personality; most systems I try to build are a reflection of how terrifying software-as-it-is-made feels to me. I'm seeking peace and security amid a nightmare of chaos. I want to help programmers sleep well, worry less."

11 of 353 comments (clear)

  1. ML is a language, not "machine learning". by Anonymous Coward · · Score: 4, Informative

    Don't know enough about programming languages to recognise a reference to the ML language, even in a tweet that also describes some of its features? Just elide the references you dont understand and replace ML with "machine learning" and you too can be a Slashdot submitter! Don't worry, there are no editors checking that your summary reflects the contents of your links.

    1. Re:ML is a language, not "machine learning". by WarJolt · · Score: 3, Informative

      ML means Meta Language

  2. Facepalm. by Gravis+Zero · · Score: 4, Informative

    The summary say "machine learning" but if you read this feed you'll see it's "ML". ML is programming language.

    I know some people are excited about it but Rust is just the language de jure until it gets an actual spec that other people can implement.

    --
    Anons need not reply. Questions end with a question mark.
  3. Because trailing semicolons... by kfsone · · Score: 2, Informative

    ... making the difference between "return the evaluation of this expression" vs "don't" is such an improvement in software development practices.

    Rust is interesting, the way that that wreck on the 101 is "interesting".

    --
    -- A change is as good as a reboot.
  4. Re:I am also terrified... by Rust! by serviscope_minor · · Score: 4, Informative

    I first learnt C++ 2 decades ago and even I have given up trying to keep up with the latest pointless additions to the language that no one outside a small circle of language geeks was asking for.

    I'm having a hard job thinking what those are.

    Just about every new addition to C++11 saved major ball-ache at many points in the code, even the somewhat botched initializer_list.

    C++14 basically fixed all the weird "WTF this doesn't work" bits from C++11 where the features weren't quite complete in obvious ways (e.g. auto lambdas, return type deduction for normal functions and so on).

    Except for binary literals and digit separators. Those were new. and holy-o-fuck are those useful if you're hammering on an SPI bus.

    I feel sorry for anyone trying to learn it from scratch today as the learning curve eventually gets as close to vertical as you can get in a programming language.

    It's vertical if you try to learn modern C++ as 20 year old C++ with extra features. That's not the optimal way to learn it, because then you're stuck with all the misdesigns of the old features with a whole pile of new ones. It's the way we learned it of course, because we learned C++ then C++98 then C++11.

    It's bad in the same way that it's bad learning C++98 as C with a bunch of new features. You get the worst combination of complexity overload and feature overload. Again we did it, but I wouldn't teach someone new that way.

    Stroustrup has a book on learning modern C++, and it's very well written and makes the curve much gentler.

    I very much doubt you need it to learn C++, but I think it's a good read if you're in the position of teaching or mentoring since it sheds a whole new light on how it comes together for new programmers.

    --
    SJW n. One who posts facts.
  5. Re:Terrified to use Master and Slave by Hognoxious · · Score: 5, Informative

    his group finds the terms "master" and "slave" to be "problematic."

    you're lying. He was not involved in that thread.

    Your logical fallacy is: ignoratio elenchi.

    The liar is you.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  6. Re:Rust: a programming lang with a toxic community by lucasnate1 · · Score: 4, Informative

    Something that I find disturbing is that I actually saw this exact comment before. Why are you copy-pasting this over and over again?

  7. Re:Rust: a programming lang with a toxic community by mrsam · · Score: 4, Informative

    I went back to C++, because even if it isn't a perfect language, at least it's a decent language with a honest, open, friendly community.

    C++ is arguably the most complicated, the hardest to learn, general purpose programming language in use today. And, in the last seven years, with the last three major revisions, C++ has become, I would estimate, three or four times harder than it was before. If you were to start from ground zero, it would take you much longer than 2-3 years in order to be fully versed in all the arkane features of it. I would say that to become fully proficient in C++, when starting from absolutely nothing more than general knowledge of computer programming, will take at least 5-7 years, maybe even ten.

    Because of that, experienced C++ developers tend to be older, and with many many years of experience under their belt. They've outgrown the phase of their lives where they think themselves to be #1 hot-shit masters of the universe. We're older now. We know better.

  8. Re:Um... by gbjbaanb · · Score: 3, Informative

    Sure, but his point isn't that the language allows you to make mistakes - they *all* do that, the problem is that the developers are too overwhelmed with frameworks, libraries, architectures and having to use many different languages all the time that they will make mistakes.

    I used to code C++ and I was good at it, the number of errors I put in was minimal. But that was the days when it was the only language I used.

    Today I'm using C++ and C# and javascript with a dose of scripting and loads of different ways to do the same thing, and every time I think of dong something I realise I don;t have the same level of expertise I used ot have before - not because I'm no longer good at my job, but because there is so much stuff to remember and apply that I will forget the odd bit here and there, and that is where mistakes creep in.

    Once you've seen the kind of serious PCI compliance checking tools that tell you your perfectly-working code is unacceptable because of things you didn't consider, then you get a handle on why the language is not the problem at all.

    the only safe way to write code today is to keep it modular, and then to keep things separated. Too bad that all the frameworks you code with try to make everything into a single monolithic lump "for ease of coding" so the noobs can find it accessible.

    If you had only experienced programmers coding, in a few languages and systems, they'd be able to do all the stuff we have today, but faster and better. As it is, we try so hard to get as many people coding as possible, and have so many different systems to code in, that the whole industry is a massive chaotic mess.

    once all I needed to code was a knowledge of C and the IBM big book of library calls (which told me everything their API did). Today, we need google and stackoverflow and looking up stuff hourly, and even then I'm having to filter results on the version of the library I'm working with so even the results for the documentation is often wrong. How does anyone expect our systems to work properly without massive amounts of effort.

  9. Re:Um... by tietokone-olmi · · Score: 3, Informative

    So why does Rust require the programmer to describe intent to an exacting detail, rather than figuring it out on its own? If computers are so very fast at it?

    Also, Rust does absolutely nothing about deadlocks. Its multithreading features were designed by people looking for an appearance of parity with e.g. POSIX threads, while neglecting practical applicability. The same problem exists in various other new languages, such as Java and D; omitting POSIX, they can't reach parity despite replicating the threading portion equivalently.

  10. Re:Rust: a programming lang with a toxic community by Pseudonym · · Score: 3, Informative

    If the only way to learn a language is by depending on a small group, then that language is either way too complicated or not enough common.

    Kind of a Catch 22 there. If the language didn't support complex powerful features, it would be too simplistic. If it had too much in common with existing languages, it would be derivative and have no reason to exist.

    New programming language design is hard, it's painful, it's iterative, and it's thankless. Even though I will not be using Rust for any deployed code for at least the next 10 years, I'm glad people are investing time in it.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});