10 ms·
Towards a Rust Foundation
- qaq 7y agoI think hiring of devs might be good long term though provided funding is there. There are always areas which might not be something people would work for fun on but which might be important to ecosystem.
- TheSoftwareGuy 7y agoDoes Mozilla (the current steward of the the language, as is my current understanding) not currently pay devs to work on Rust?
- correct_horse 7y agoThere are some rust core team members who work at Mozilla (https://www.rust-lang.org/governance/teams/core https://www.rust-lang.org/governance/teams/core) but I imagine they don't work exclusively on Rust.
- pietroalbini 7y agoThere are people inside Mozilla paid to work on the project full time. Not all of them are on the core team though.
- steveklabnik 7y agoFraming Mozilla as the “steward of the language” is one reason why we’re making this move. Don’t get me wrong, Mozilla is important to Rust, but (in all things other than the trademark, which is a nuclear option they’ve given no indication of ever using) the relationship is much more of a “large supporter of” then “in control of” one. Having a foundation would make this much more clear to folks who aren’t deeply involved in Rust.
- duregin 7y agoDidn't you sort of have a falling-out type of experience with Mozilla? Does that have any effect on this move?
- steveklabnik 7y agoFrom the very beginning, the folks sponsoring the Rust effort from within Mozilla made sure that Mozilla couldn't directly control things. And Mozilla also just isn't that kind of organization to begin with, honestly. These conversations have been going on a long time. This particular iteration of this conversation started before I left Mozilla. It has nothing to do with me personally, regardless of that relationship. I have long (before, during, and after my employment at Mozilla) have thought that an independent foundation would be excellent for Rust, but am worried about the details. Foundations require active administration, which is even more work. And it's unclear who does that work. I think that we've grown to the point where it very well make sense now, though.
- ihiulll 7y agoFriendly reminder for people on HN reading this: I know this is actually quite interesting, but before you start worrying about the latency of the name servers of your TLD, you might want to do something about the metric ton of JavaScript on your site and the 25 different 3rd party servers from which you side load most of it. Also those 6 additional servers from which you load a bunch of TTF fonts. Especially if all your site does is just display some text and two or three pictures.
- neiman 7y agoI assume it may not be a popular opinion here, but it would be so much easier if projects like Rust could have a DAO (decentralized autonomous organization) instead of a foundation, and a blockchain account managed by this DAO instead of a bank account. The main issues I see with this idea are volatility of cryptocurrencies prices, inability of paying with cryptocurrencies in most cases atm, environmental issues regarding the blockchain and the infantry of DAO governing models. But as an abstract idea I believe DAOs will replace foundations at some point in the future, making such discussions much easier.
- scient 7y agoMeanwhile back in the real world...
- neiman 7y agoI disagree. There are nowadays "real" projects using a DAO, I'm involved in one of them. Are those projects not real?
- strictusername 7y agoHow big is your project and is it on the level of scale of Rust
- geofft 7y ago1. What is the advantage of a DAO in your eyes? (Your comment mostly says that one could be done, not why.) 2. The Rust community is made of people who have been trying very hard to write, essentially, a bug-free compiler and a bug-resistant programming language, and they know it is incredibly unrealistic to be 100% bug-free. How would you convince them that a DAO with its terms specified in code and not in human legal documents would not have even a single exploitable bug?
- neiman 7y agoYou're right, I should have mentioned the advantages to begin with. It's easier, cheaper and faster to setup a DAO than an international foundation, especially regarding registration, opening bank accounts and international members. Important questions such as "which jurisdiction to register the organization in" or "who manages the bank account" becomes irrelevant in a DAO. It's also cheaper and easier to manage a DAO over time than a traditional foundation. There is no need of payments for bureaucratic stuff, since the protocol is in charge of organizing and executing decisions. I don't belong to those convinced it's possible to write bug-free code, however, not every bug means immediate exploit, while exploits can also happen in legal contracts. The immediate solution is a DAO where access is limited to known legal entities. In case a bug is exploited, you can always fall back on the good old legal system to resolve the conflict. There are other possible solution, but I don't want to turn this comment into a lecture about DAOs. We use a DAO in a project I've been involved with for a long time in the past, Bisq. I'm not sure how we could have managed it otherwise, since we were a small project, with contributors all over the world, most of them not knowing each other personally.
- rectang 7y ago> should the Foundation be a 501(c)(3) (a non-profit, in other words) or not? If you go the independent foundation route, choosing 501(c)(3) would be in keeping with the stated priority to have Rust's governance be independent. This makes it more difficult for corporations to control the foundation's direction through insisting that their donations be used for specific purposes, because donations to a 501(c)(3) cannot unduly advantage any commercial entity. ETA: There are different types of "non-profit" organizations under IRS code 501. 501(c)(3) is a "Charitable Organization", and donations are tax deductible. (Tax-deductible donations cannot be used to unduly advantage a commercial entity because if they were, the business could avoid paying taxes on funds they use to further their own initiatives.) 501(c)(6) is a "Business League", where donations are not tax deductible, so donors have much more leverage.
- deleted 7y ago[deleted]
- codesections 7y agoThe problem with trying to become a 501(c)(3) nonprofit is that you have to show a "charitable purpose", which can sometimes be hard to do ("supporting open-source software" is not a valid charitable purpose under current US law, sadly enough) [not legal advice]
- wrycoder 7y agoEducational 501(c)(3) foundations meet that requirement.
- tyre 7y agoI don't think this foundation would qualify. I'm so incredibly not a lawyer, but my understanding is that educational 501c3s need to be predominately educational, in that they have classes and a physical location. If the primary purpose of the Rust foundation is open source code and standardizing the language, it's not exactly educational.
- caniszczyk 7y agoI have a lot of experience in building open source foundations, from my time at Apache, Eclipse and the Linux Foundation, lots of pros and cons across different entities in terms of how much professional help you want (versus volunteer labor). I generally don't recommend standing up your own foundation from scratch unless you're extremely well funded. The Linux Foundation essentially offers "Foundation as a Service" for projects. It hosts a variety of projects and organizations, from LetsEncrypt.org, to Kubernetes (CNCF) to GraphQL to NodeJS (OpenJS) to the R Consortium and more. I created a presentation here not so long ago about the process/benefits: https://www.slideshare.net/caniszczyk/bringing-an-open-source-project-to-the-linux-foundation-206551742 https://www.slideshare.net/caniszczyk/bringing-an-open-sourc... I'm happy to have a conversation if you ever wanted to chat more about the details.
- Touche 7y agoDoes this mean that Linux Foundation has ultimate control of the foundation?
- rectang 7y agoGovernance can be set up in a number of ways, depending on the charter, with power allocated to different stakeholders in different configurations. See slide 42 from Chris's presentation. As a Rust user, I would follow the creation of such a charter with great interest. https://www.slideshare.net/caniszczyk/bringing-an-open-source-project-to-the-linux-foundation-206551742/42 https://www.slideshare.net/caniszczyk/bringing-an-open-sourc... Moving away from Mozilla, regardless of destination, presents an opportunity for the most powerful stakeholders within the community to exert greater influence, many of whom I would be less comfortable with than Mozilla.
- Touche 7y agoTo be honest I don't know what this means. I was expected a yes or no answer. Does the Linux Foundation have final say over the organization or does its members?
- phkahler 7y agoI'd prefer the evolution of Rust to slow down and stabilize. More like C and much less like C++.
- steveklabnik 7y agoNote that the proposal is for this to not do any of that kind of thing, so it should have no affect on this either way.
- fluffything 7y agoDo you have an example of a programming language that's both widely-used and does not evolve ? Even C has a new standard every 3-5 years nowadays.
- hu3 7y agoA recent example. Go values not breaking current code much more than adding features.
- steveklabnik 7y agoRust also values not breaking current code very highly; it only happens for soundness fixes. "stability" is a tough word; some people use it to mean "doesn't change", and others use it to mean "append-only change."
- pjmlp 7y agoYet even Go has several new features not present in version 1.0 and 2.0 roadmap is underway. Languages are software products, they are evolve to fulfill the market needs or they die.
- hu3 7y agoAdding features? Sure, as long as current code keeps compiling.
- 7y ago
- phkahler 7y agoI'd prefer the evolution of Rust to slow down and stabilize. More like C and much less like C++. OTOH there are a few things I feel the language needs. Better control of memory layout, and a stable ABI in particular, so it can become a good foundation for more libraries and infrastructure.
- fluffything 7y agoRust already provides a stable ABI via `repr(C)` types and `extern "C"` functions.
- unlinked_dll 7y agoAnd memory layout through repr(align). I also disagree that rust should slow down. There are a number of critical features that need to land for the language should “stabilize” (it is stable).
- phkahler 7y agoI agree a few more things need to get in. But AFAICT the abi is not stable and you may need to recompile all dependencies when updating the compiler. I would like it to be "feature complete" without having regular churn like C++. Or the recent battle with Python that was a sort of last straw for Guido. C is almost completely stagnant and that's a good thing. Posix as well. If you want to be a long term systems language it seems stability is a critical feature and Rust needs to get that in the next few years. IMHO or course.
- afiori 7y ago> But AFAICT the abi is not stable and you may need to recompile all dependencies when updating the compiler. That is for the Rust ABI, which much like with for C++ doesn't exist.
- unlinked_dll 7y agoC++ didn’t have a pragmatically stable ABI until like a year ago on MSVC. You had to jump through hoops with extern C APIs or COM and the like. The same is true in Rust, and even in C++ with different tool chains on windows. The only language with a stable ABI is C (and that is more accidental than explicit). It’s too hard a guarantee to provide with little ROI when you have a workaround, and it chains your implementation to ABI details. Just as an example, rustc is very clever about struct layout and liberally pads fields to get superior alignment. This may change in the future depending on architectures and paradigms. You don’t want your ABI to define a padding scheme for your targets today, you want future compilers to be smarter. If you want to guarantee stability you need to align the memory manually on the structs that cross ABI boundaries like shared libraries, and any kind of language construct that lets you do future tricks with ABI within a binary but provides escape hatches for things along the boundary would look identical to how you do things today via attributes. TL;DR ABI stability in the compiler is simply not desirable. You can already do it manually and you should do it manually. It’s fairly ergonomic as well.
- kick 7y agoA classic example of this going wrong is the Gentoo Foundation. Not only did it make them lose the founder of Gentoo (which, admittedly, isn't as much of a problem with Rust: Hoare has already moved on to bigger things), but it caused a variety of organizational troubles that still can be seen in Gentoo today. Hope this goes well!
- ChrisSD 7y agoNote that this proposal is not about changing the governance of Rust the language. That is and will remain the responsibility of an independent group. This is purely about handling administration of the Rust project and having a legal entity which can sign contracts, hold trademarks, own domain names, etc.
- rectang 7y agoDepending on how you set up administration, independent governance can become difficult to sustain. The more money you take from donors, especially "directed" donations with strings attached, the harder it is. For example, you may fear offending a donor who wants to use the "Rust" trademark for their megabudget conference where they sell themselves as the preeminent Rust experts. This comes into play if you consider funding development directly through a foundation, which requires large donations.
- pietroalbini 7y agoYeah, that's why I'd prefer for the Rust Foundation to be as lean as possible, explicitly excluding raising donations for the whole project and paying developers from its scope. Funding development could then be done by other entities, not related to the foundation. https://internals.rust-lang.org/t/blog-post-towards-a-rust-foundation/11601/17 https://internals.rust-lang.org/t/blog-post-towards-a-rust-f...
- stmw 7y agoThe time is right for this step, Rust will benefit from having a proper umbrella organization. Also, it's a very well-writen post on what could be a boring topic.
- M2Ys4U 7y ago> should the Foundation be a 501(c)(3) (a non-profit, in other words) or not? This seems to imply that the US is the only place a foundation would be incorporated? Other jurisdictions may have more favourable legal regimes.
- burfog 7y agoThe major serious languages get along just fine with IEEE, ANSI, and ISO. For example, C is handled by ISO/IEC JTC1/SC22/WG14. The idea that Rust would need a foundation is making me uneasy.
- steveklabnik 7y agoThe Rust project has much more things under its wings than the C ISO group does. It’s a superset. The Rust project sees Rust as more than just purely a language. For example, the C ISO group doesn’t run any web facing infrastructure, with all of the legal and financial obligations that implies, nor do they develop compilers, with all of the CI/hosting infrastructure that implies. They’re just different in scope, which has been true for all of Rust’s lifetime.
- burfog 7y agoThat is common for toy languages without wide industry support. It doesn't inspire confidence. There should be compilers from Microsoft, IBM, Apple, GNU/FSF, and several others. There should be a properly ratified international standard that describes the language. There should be support from 16-bit microcontrollers to mainframes. Languages like C have lots of web facing infrastructure. It just isn't all run by one entity. The eggs are not in one basket.
- oblio 7y agoHow many languages outside of C, C++ and amusingly, old versions of C# fit that? Not that many that I can think of. Maybe Ada, Javascript? Java isn't officially standardized (ISO or such), neither are C# nor Python, Ruby, etc.
- terminaljunkid 7y agoThe problem with those standards committees is they are very opaque and finished standards are not freely available.
- zapita 7y agoAn independent foundation for Rust makes a lot of sense. No doubt the Linux Foundation will pounce on this opportunity to absorb yet another project into its orbit... I would prefer if Rust steered clear of LF / CNCF if possible. Their governance and financials are opaque, they prioritize corporate sponsors and fancy events at the expense of every other priority, and there is already too much power concentrated in a very small group of people. The Linux Foundation / CNCF people will tell you that it's really hard to setup a foundation, and you should leave it up to them. I don't think that's actually true. In my opinion LF gets much more value out of projects (through compounded brand value and revenue opportunities) than the other way around. Nothing terrible will happen if you go with them... but nothing amazing will happen either. You will get the bare minimum support and infrastructure, and nothing more. Meanwhile, a few people who don't actually contribute any open-source code will benefit immensely from the Rust brand. EDIT: I just realized that the Linux Foundation people are already on this thread making their sales pitch...