28 ms·
Dave Herman’s contributions to Rust
- zozbot234 6y agoThe OP mentions in passing that Brendan Eich "was solidly on team Rust" prior to leaving Mozilla, but adds no further details to that intriguing statement. Wouldn't that make Eich the Most Unrecognized Contributor? I don't think his name would be on any commit repo, after all.
- theobeers 6y agoHere’s one of the Eich commits in the prehistory repo (which is fun to browse): https://github.com/graydon/rust-prehistory/commit/8952f420ae7e0e4cd40d3b97b8f80ca99cd48d6e https://github.com/graydon/rust-prehistory/commit/8952f420ae...
- ealexhudson 6y agoI understood that point as relating more to management than technical contribution - that the support of people like Eich was imperative to keep the project funded, and as key supporters left the project became more susceptible to cancellation.
- kevingadd 6y agoHaving sat next to / worked with a lot of the rust core people (and Eich) I think while his support was important, that doesn't make him more important/pivotal than people like Dave Herman
- BrendanEich 6y agoIt’s cool to erase me, no problem. Inconvenient facts: I hired Dave, as well as (not as hiring manager but by influence) Graydon. Also I’m cofounder of Mozilla Research and C-level advocate for grad student internships. I’m not taking more credit than them, I want less! But don’t erase sr. management or give anyone else at that level undue credit. It was a team effort, but while there is no “I” in team, there is no budget without C level sponsor.
- goto11 6y agoThanks for championing Rust!
- coldtea 6y ago>I don't think his name would be on any commit repo, after all. Not only his name is on the Rust commit repo, he's also in the list of top 10 commiters the article features as an early Rust development example (although for just 6 commits or so).
- BrendanEich 6y agoThanks for digging this up. Honestly I was doing more for SpiderMonkey than for Rust at code level, but at exec sponsor level, it was me and only me. HTH
- chalst 6y agoDave Herman has been a high signal-to-noise contributor to Lambda the Ultimate over the years; if you want to get an idea as to where he is coming from, looking at his contributions there [1], his slightly active blog [2], and on his now pretty much inactive joint blog [3] are good places to start. [1]: http://lambda-the-ultimate.org/user/825/track?sort=desc&order=author http://lambda-the-ultimate.org/user/825/track?sort=desc&orde... [2]: http://calculist.org/ http://calculist.org/ [3]: https://www.thefeedbackloop.xyz/ https://www.thefeedbackloop.xyz/
- rektide 6y agoanother random mention, Dave was also the main driver of EcmaScript Modules.
- melling 6y agoHaven’t learned Rust yet. I see they debated this: let and let mut let and var And went with the verbose option. Swift went with the succinct option, which I love about the language. In practice I suppose I do mostly type “let” in Swift so it doesn’t matter much Swift, however, chose ‘func’ instead of ‘fn’, after much debate. Those little things that are debated initially, then forever
- jerryluc 6y agoIn rust it played out well due to the usage of mut in other places. As in: fn (&mut T)
- dom96 6y agoSame for Nim which uses let and var: proc (x: var T)
- MrBuddyCasino 6y agoKotlin's version is even better: val & var Super clear. The "let" version smells a lot of "I have a CompSci PhD".
- melling 6y agoPractically, I prefer let and var because of autocompletion. Type one letter then tab. Of course, if I could dictate I might prefer something else. I think of it as being more math like rather than PhD. Nothing wrong with borrowing from math.
- rocqua 6y agoFrom the perspective of "language designers influencing programmers", the difficulty of auto-completing to `let mut` could be seen as something positive.
- fuck_google 6y agoObviously you haven't had to maintain code written by mathematicians that prefer to use one letter names for functions and variables among other peculiarities.
- aome510 6y agoThe same story [0] was posted several hours ago by the author I suppose. [0]: https://news.ycombinator.com/item?id=27016848 https://news.ycombinator.com/item?id=27016848
- joseluisq 6y agoYep, this needs a `dup` mark somewhere. Edit for down-voters: the typical HN behaviour. Don't be lazy and take a time to explain why you downvote.
- Macha 6y agohttps://news.ycombinator.com/newsfaq.html https://news.ycombinator.com/newsfaq.html > Are reposts ok? > If a story has not had significant attention in the last year or so, a small number of reposts is ok. Otherwise we bury reposts as duplicates. > Please don't delete and repost the same story. Deletion is for things that shouldn't have been submitted in the first place. Dupes are not against the rules. You're likely getting downvoted by people aware of that.
- joseluisq 6y agoIf your affirmation is true, why many of HN users (me included) get [dupe] at first place? In general, Is not the HN intention to decrease number of duplicates? If not so then HN should provide a solution for prevent this, such prevention that is not happening today. Example search input. Sorry but I'm seeing big contradictions in the so called rules. Just one example: > If a story has not had significant attention in the last year or so, a small number of reposts is ok. Otherwise we bury reposts as duplicates. > "in the last year or so" Not in the same month or even after some hours later. > "a small number of reposts is ok" Well, HN what to prevent duplications or not ? > Dupes are not against the rules. You're likely getting downvoted by people aware of that. With that premise in mind, let's continue making duplicate content. right? So don't misunderstand me, since my intention here is just to put in evidence the same recurrent problem to improve HN. For instance I have also faced the same problem in the past so there is nothing agains rules or things like that, but instead is more a improvement for HN. The reason because I'm interested on this is because I feel part of the community and this is a concern for me (I suppose for others too). Otherwise I could take the easy and dirty way to just say nothing and ignore the problem.
- nindalf 6y agoI've heard a lot of engineers complain about engineering managers over the years. I've also heard great managers self-deprecatingly say they "don't do any work". I've seen managers feeling bad they weren't productive so they resorted to writing code to feel that they were having impact. This post is an example of the incredible impact an engineering manager can have without writing a line of code.
- lifeisstillgood 6y agoThe big takeaway for me is that inside our daily corporate world, we should strive for more open discussion about the work we do - I keep trying to do more discussion-list style work with my team, even though it often is easier to jump on a video call. It has a payback a long way down the road but my gut knows it is worth it.
- willtim 6y agoRust maybe a little adhoc in places (e.g. the misappropriated Haskell/ML function syntax, enum/struct asymmetry), but overall it is a fantastic effort. It is not an easy task to combine an advanced static type-system with mainstream ergonomics, but they seemed to have pulled it off. The fact that it is also not owned and controlled by a single big tech entity is icing on the cake. I really hope it achieves even greater success.
- daoxid 6y ago> misappropriated Haskell/ML function syntax, enum/struct asymmetry I'm curious, could you elaborate?
- willtim 6y agoIn Rust, a function definition left-hand-side looks like an annotated pattern, e.g. foo(x : int) Therefore, one would expect to annotate the return type as, foo(x : int) : string Since the pattern is showing foo applied to x. The Rust syntax is actually confusing for both Haskell/ML programmers (where the arrow comes from) and mainstream programmers. It's too small an issue to change now though. Rust's support for proper "algebraic data types" is very good and gives it an advantage over languages like C++. However there are some small surprises, such as forcing all enum constructors/fields to be public (one must therefore wrap it to make an abstract data type). Every language has its warts and these are particularly minor ones.
- devit 6y agoThat would imply that "foo(x: int)" is a string rather than a function. Haskell doesn't use that notation either, it uses -> both for the parameter list and for the return type, and separates argument names (arguably, these are poor choices, since currying is not an efficient CPU-native operation and not intuitive so distinguishing between multiple arguments and returning closures is useful, and argument names are useful for documentation).
- valenterry 6y ago
- jxf 6y agoI confess I'm pretty ignorant about the history and origins of Rust, and it's not something I tend to investigate deeply for a lot of my tools. But I derive a great deal of my current livelihood from Rust and helping firms use it well, so thank you, Dave. If nothing else, maybe I'll be looking more closely at my next tools, and hoping they have their own Daves quietly advocating for their success.
- galangalalgol 6y agoHave you ever helped a firm use rust on airgapped or nexus ptoxies developer networks? The nexus module appears abandoned, and the documentation on running an offline crates.io mirror is very lacking.
- xpe 6y agoThis seems like a non-sequitor and off topic. There are plenty of better places to give this feedback.
- galangalalgol 6y agoI think maybe my question was taken differently than I meant it. I was legitimately asking if the gp had/could help with such a task.
- Ar-Curunir 6y agoIt’s a very niche question. You’re better served asking in Rust support channels like the discord or the subreddit.
- bhaak 6y ago> A little appreciated fact: Rust was largely built by students, and many of them interned at Mozilla. The article doesn't mention it but this is of course a very good long term strategy. Things students learn during their formative years at university will bear fruit once they enter the work force. How many of those students are now at or about to enter important positions in the industry? Do you think Java could have become this big if it wasn't teached at so many universities at the entry level?
- brson 6y agoHaving so many students involved in Rust was huge. Definitely the most rewarding thing about working on Rust was seeing students get involved, grow, then turn that experience into a career, while seeding the industry with Rust talent.
- bhaak 6y agoYes, but it goes both ways. As a student, I was always thrilled to see bits of future technology today. I am still sad that some of the things I've seen or have taken part in didn't materialize and haven't taken a hold in the present. The students you had were certainly as happy as being with you as you were having them. :-)
- yitchelle 6y agoIt is a double edge sword. No doubt if the students are motivated and dedicated, they could build the next metaphoric rocket ship. Also they also runs the risk of causing the project to off course and failed. It sounds like the leadership of Dave was key to getting the team to focus and to delivery high quality results.
- camehere3saydis 6y agoThe converse is also true: students are relatively less fettered by today's "best practices", less constrained by non-academical pursuits, and thus would be more capable of dreaming up a better paradigm for the future.
- flakiness 6y agoReading "JavaScript: the first 20 years" [1], Dave Hermans name is popping up here and there as well. His contribution in this case was highlighted in the story of the (failed) ES4. I wonder how these early experience has shaped his thoughts on Rust. [1] https://dl.acm.org/doi/10.1145/3386327 https://dl.acm.org/doi/10.1145/3386327
- varispeed 6y ago> A little appreciated fact: Rust was largely built by students, and many of them interned at Mozilla. So now companies make billions off of the software written in Rust and has even one student become a millionaire? Companies that appropriate such projects should start paying their fair share to people who made it possible for them to make such profits.
- rover0 6y agoBeing in the team that created rust would look great on any CV. I think millionaire is reachable for many of them.
- varispeed 6y agoUnder the current framework, you cannot get wealthy off of salary. If you working a wage, then you are a corporate slave most of the time.
- seabrookmx 6y agoI don't know what your definition of corporate slave is, but you can certainly become wealthy off a salary. Just limiting to software engineering (there's other lucrative fields out there) you can easily make a six-figure income remotely. This gives you the freedom to live somewhere with very low cost of living. It's not hard to build wealth this way. You could debate that getting the necessary skills to get a job like this is harder than it should be.. that corporations themselves are broken.. whatever your worldview is that's fine but "cannot get wealthy off salary" is just plain false.
- varispeed 6y ago> This gives you the freedom to live somewhere with very low cost of living. It's not hard to build wealth this way. This is quite contradictory and proves my point.
- staticassertion 6y ago
- fithisux 6y agoThe impression left by this article is that Bjarne Stroustrup is doing a big mistake by continuing his work on C++. Nim / Zig / D are UFOlogists and who needs Racket / CL / Haskell anyway. Java could be found in ancient Egypt being served to mummies.
- galgalesh 6y agoEven if rust becomes a full replacement, it might take half a century before the last C++ project stops being maintained. In the meantime. Investing your time in improving C++ is a safe bet for a long-lasting meaningful impact on software [development]. C++ will outlive Bjarne.
- Decabytes 6y agoHaving written Racket code myself I was surprised when I saw that Rust had Hygenic macros. I've never learned how to use macros effectively, but once I've gotten more comfortable in Rust I'd like to give it a good shot. Given Dave's background with Racket and Macros, this feels like a worthwhile endeavor. On a side note there are a lot of cool language oriented programming stuff that Racket does through it's macro system, and I wonder if it is at all possible to do something like that in Rust
- yw3410 6y agoI was super-surprised when I used rust macros (specifically macro rules) about how lispy it was. There was an aha-moment when I realised that it was token based and not AST based like some other macro systems I've worked with in some other languages. Case in point is how to express varargs in macro rules which is expressed roughly like a comma followed by an expression repeated n times. Super nice.
- ndesaulniers 6y agoI swear I recall being a fly on the wall and just being in awe; early on in my career just listening to Dave Herman, Luke Wagner, and Alon Zakai discussing asm.js which would one day lead to webassembly. It was very early days even for asm.js, but from how they spoke of it and it's potential you could tell it would have huge impact on the industry.
- jrochkind1 6y ago> Hiring Yehuda Katz to design Cargo I did not realize this; that explains why cargo is so similar to ruby bundler (which Katz also wrote).
- whoisburbansky 6y agoThe name Katz set off bells in my head while I was reading the article, but it was only until I saw your comment that I realized why. Cool bit of connection-making there!
- hardwaregeek 6y agoHe also worked on Yarn. Yehuda Katz has probably the most experience of anyone on dependency management
- jrochkind1 6y agoI haven't heard much from him lately not sure what he's up to. I'd love to see an interview with him on his experiences with dependency management. What did he learn? What things in earlier attempts did he change in later attempts (from bundler to cargo to yarn)? What does he think he got rightest? What mistakes does he think he made? What mistakes does he think other people are still making? What features of a language or platform faciliate or challenge good dependency management? etc etc etc. In general, I think there isn't much "learning from prior art" in our field that crosses language/platform boundaries. Katz being personally driving the implementing popular dependency management solutions on three different langauges/platforms was one way to actually learn from cross-language experience! I think in dependency management in particular, there are still a lot of lessons people are learning on their own not realizing another language/platform already learned some painful lessons on it... or maybe differences in langauges/platform mean some things aren't transferable...
- deleted 6y ago[deleted]
- neilv 6y agoBefore going to Mozilla, Dave Herman was also a prolific contributor of open source libraries for PLT Scheme (Racket).
- worik 6y agoVery nice story I love the designed by committee aspect of Rust. I have great respect for good committees. I have served on a few (and some bad ones, shiver). One of the things that makes a committee work is a good facilitator As the saying goes: A camel is a horse designed by a committee: Goes twice as far on half as much carrying twice the load....