This is just not how things happen. At all.
There's a lot of fear in our post about things that _could_ happen, but haven't actually happened in Google's history, or aren't unique to corporate sponsorship.
> 1. I wouldn't be able to refuse if they told me to add tracking, analytics, AI "learning", or lock-in mechanisms.
Google just doesn't do this with OSS projects. I've never seen on mine, or heard about it in others, or heard news of problems. I did work near a CLI that sent some usage analytics back (so they could see crash reports, etc) and some people complained, and it was removed. It was never nefarious and the idea that Google is trying to make better ad profiles or somesuch via OSS projects is frankly ludicrous.
> 2. If at any point they thought that Vale competed with Golang, they would shut it down. It doesn't matter that they're completely different (Vale doesn't even have a GC); if any person in the chain of command even had the _perception_ that it did, Vale would die. > 3. If at any point they wanted the headcount for other things, they would shut it down.
How is Google stopping funding a OSS project any worse than Google never funding it in the first place? They can't "shut down" the project any more after paying you to work on it than before paying you to work on it. If you want to work on it for free, just do so.
Yes, you _might_ have to fork the official repo if it got moved to under Google's GitHub orgs, but contrary to your fears, Google has a good track record of handing off OSS projects they don't want to maintain. There's a whole OSS office to help with this and an official process for transferring ownership and copyrights.
You're also allowed to work on non-Google OSS projects for 20% if it fits in the spirit and goals of 20% time, so if Vale is even vaguely in-line with Google work and goals, you could have just... worked on it. Did you actually talk to anyone at Google about this?
> How is Google stopping funding a OSS project any worse than Google never funding it in the first place?
Think this through. Let's say they spin up a team to work with me on it (which honestly is the only point of giving them Vale at all). Then suddenly, they shut down the entire team and harvest the headcount for some other project. That's devastating, projects don't survive that kind of sudden exodus. I could quit and work on it solo, but then I'm one person trying to pick up the pieces and work through the technical debt and missing knowledge of an entire team. It would take _years_ to recover from that.
The alternative is to keep it open-source, work with volunteers, and eventually do what Zig did: make an open-source-centric 501(c)(3) and hire people to help.
What you say makes sense if I just want to keep this a side-project. This isn't a side project, it's my life's work at this point.
I can't imagine that there would be a reason to close it to work on it at Google. That would be a very unusual situation.
> This isn't just a side project for me.
Then you probably made the right decision to work on it full time, but only as an alternative to working on it part time. If Google would have paid you to work on it full time, there really isn't any risk. If they ever tell you to work on something else, you can still quit.
1. Make next version propietary, or particially propietary
2. Keep updating the closed version, no more core team for open version
3. After some time the open version is too oudated, too far behind the propietary version
4. Ambiquity on lisencing also deteriorates intrest
For examples see, Qt, MySql, Java
So, android being an open source project, how does one turn off these nefarious repeated connectivity checks (phoning home)?
Or how does one modify `/etc/hosts` like we do on Linux?
Why do we have to go all the way to root the device or use a different OS to achieve these?
- https://android.googlesource.com/platform/frameworks/base/+/...
Developer tools are different.
Also the source code link I provided was to vanilla Android, not to a commercial version running on someone's phone.
Nim's also geared towards systems programming, though it does so with an RC foundation. It's features are well-designed and complement that pretty well.
Vale's more geared towards the higher-level cases (games, apps, servers) where memory safety, performance, and developer productivity are all priorities. It's meant to be more of a "software engineering" language, focusing on keeping things loose and decoupled in the large, while offering tools like regions [1] (not done yet) to eliminate overhead everywhere it can.
[0] https://verdagon.dev/blog/when-to-use-memory-safe-part-1
[1] https://verdagon.dev/blog/zero-cost-memory-safety-regions-ov...
In Vale, each struct has a generation in theory, but they are often merged with their parent struct. It requires some pretty interesting logic which can't be implemented in Rust.
Regions require truly immutable references, which Rust doesn't have. Their shared references are unfortunately foiled by the RefCell escape hatch.
Additionally, the rest of Vale's future design prioritizes developer productivity more than Rust has, in my opinion:
- A coroutine-like mechanism instead of Rust's async/await function coloring, and structured concurrency which doesn't involve the Sync/Send "data coloring" problem.
- Vale's borrowing is done on the region level and on an opt-in basis, so users can decide to only use borrow checking where it makes sense.
- Linear typing ("Higher RAII") which allows for different static checks which aren't quite as infectious as aliasability-xor-mutability.
I love Rust, but it has some quirks that make it much more suited to low-level development than these higher user cases. I don't see how Rust can fix them, but there are some smart people working on it and I hope they figure out a way, because the world needs a fast and safe language that's easy to learn and focuses on productivity, even if it's not Vale ;)
(Don't get me wrong, I'm quite fine with also focusing on hobbyist, proof-of-concept languages for potential improvements to developer productivity. But then I'll probably want a Pony.)
Don't get me wrong, it encourages very memory efficient code but its also tedious to write. Take RC for example, but you can already do efficient RC in Rust. It's just not as pleasant or easy as in Nim. Rust Rc's still require a fair bit of details about using and borrowing the memory, passing references to non-rc functions, etc.
Also Nim could just compile to Rust as a backend. ;)
I've added Vale to my blog post. It looks very interesting.
Congratulations on taking a stand for what you believe in.
I created Vale just before coming to Google, almost a decade ago. For _years_ I repeatedly wondered whether I should hand it over to Google via go/opensourcing. It would mean I could work on it for 20% time, and maybe eventually full-time, which would have been my dream.
Every time, I came to the same decision: Google cannot be trusted with ownership of Vale. Three reasons:
1. I wouldn't be able to refuse if they told me to add tracking, analytics, AI "learning", or lock-in mechanisms.
2. If at any point they thought that Vale competed with Golang, they would shut it down. It doesn't matter that they're completely different (Vale doesn't even have a GC); if any person in the chain of command even had the _perception_ that it did, Vale would die.
3. If at any point they wanted the headcount for other things, they would shut it down. This happened to my first team (MyMaps) and second team (Earth) and hundreds of other teams across Google. Directors and VPs love to graciously collect existing projects just for their headcount.
I knew that if I wanted Vale to have a better chance to survive, I had to keep it as a personal project, and only work on it off-hours.
Eventually, after a lot of soul searching and burnout, I realized I couldn't do both. The world didn't need another person working on corporate chat systems, but the world does need a memory-safe high-performance language that's easy to learn and focuses on developer productivity. I left Google a little over a year ago.
It was the decision I'm most proud of in my life, though likely not a wise one financially. Losing that FAANG salary hurts, and it's quite uncertain I'll eventually be able to make a living off open-source work. But it's worth a shot, at least for a couple years before the money runs out.
If all goes well, and I finish the main feature (regions [1]) and I get enough donations, I'm hoping to make a 501(c)(3) non-profit corporation for Vale once. I even went to Portland to have a chat with Andrew (of Zig) about the burdens of running a foundation like that, and it seems pretty feasible, especially once the language gets to a certain level of resources and stability.
[0]: https://github.com/ValeLang/Vale
[1]: https://verdagon.dev/blog/making-regions-part-1-human-factor