You mean the cross platform framework? That will hinder adoption? Or do you mean the “Micro$oft is evil” people that still refuse to believe, even when provided links, that .NET is open source? And can even build a single binary?
you know, I live in one of those countries that traded licenses for power.
Microsoft demanded a software self-audit from our company (we use Linux on 100% of our computers). When we refused they reminded us that it was mandatory, otherwise they would send an auditor who will access our premises with a judge's order (with cops and everything) to do the audit and then bill us for their time, even if they don't find computers running windows.
are you telling me that I'm an extremist or something for avoiding MS' stuff when perfectly fine alternatives exists?
This looks like a troll response, but I will respond earnestly anyway in the spirit of open discussion.
What I mean is that if you many (most?) web applications run on Linux. There are a set of applications and libraries with which Linux users and admins are broadly familiar. In general, .NET is not one of those.
And that's fine! .NET is obviously very successful and runs a huge percentage of the biggest sites on the Internet. BUT if you're talking about replacing Redis, a Linux stalwart, the unfamiliar runtime is a thing. Besides, Redis in particular does not require special dependencies to be installed.
(Out of curiosity, I clicked from the Garnet page to the .NET install instructions. 7 clicks deep into the MS documentation are the relevant apt-get commands. Starting from redis.io is almost as bad, but because Redis is already standard, nobody would start there.)
I can assure you it isn't. This is normal reaction to hearing time and time again the same kind of misinformed sentiment that comes with covert or overt hostility when .NET is mentioned, and attempts to provide details to help participants to update their priors are responded to with demagogy. At some point, it becomes one interaction too many that is bound to make people snap.
I don't think this kind of discourse belongs to HN in the first place, as it is driven by tribalistic behavior which is just shameful.
I can assure you, you are wrong. Most Linux devs and admins don't know lick all about best practices/maintenance/care-amd-feeding of a .NET runtime.
I get the pain at seeing a snap judgement against a valid virtual machine. But we just don't have the wide scale practice of running that virtual machine, like we do node or python or jvm or rails. .NET has long been a very distant satellite practiced by people who are not like us, who don't run Linux.
It's no longer a hard barrier to cross (running .net on Linux)! Many people do! Yay!! But it still feels like a separate world from a separate place & circumstance.
This is a superficial and personal perception that is not in sync with the state of the industry. This kind of bias, luckily, is highly regional, but its concentration around some US states has been unfortunately contributing to its toxicity here and on similar websites. At some point it has to stop, people like you are not doing it out of positive motivation. As stated previously, it’s a tribalistic behavior over perceived allegiances to companyA over companyB. Maybe you should also stop using Java, Go, Rust and every other platform and almost every other reasonably useful language too? They are mostly driven and/or owned by big corporations after all.
You are, quite literally, criticizing a tool that integrates better and requires less ceremony than other options listed or assumed (consider the amount of ceremony your average process of building Redis Server requires). It's been 8 years already, and nothing needs to be proven anymore, it's more of a matter of persistent annoyance to deal with this sentiment. That's all.
What makes me sad personally is that this kind of sentiment encourages making worse software products by promoting less convenient, slower and of poorer quality choices over a better technology.
I don't know what to tell you. I'm not trying to criticize anything. I'm offering a well founded basis explaining why people are shy of a technology.
It's not a giant conspiracy theory. It's not some underhanded badmouth campaign.
.NET comes from a very different background that was remote from what everyone else was doing. That's just a fact, that's a true history, and it matters.
But you can't seem to face that truth in any way. And are aggressively crapping the hell out of this Redis thread with outrage that we haven't welcomed you by laying out the palm leaves & celebrating your entrance.
I'm extra shy of Garnet because of this incredibly over-the-top mercenary & reckless assault on discourse, and your attempts use shame and force to mute anyone trying - even gently - to discuss .NET hesitancy.
It's not just my opinion that .net is a foreign vm to most Linux users.
And it's not helping ya'll's case that snarky snippey non-reply attacks are what we are seeing on display from advocates in these threads. You an neonsunset have 13 replies between you, where you've attacked and assaulted and belittled anyone trying to do much as mention that .net is a bit off-brand for Linux & sharing some discomfort with it. I've never seen an appeal for popularity that relies on overwhelming force like this, very novel attempt!
You have literally fallen into the same thinking of the people I described. You've been able to build to a single binary for several years. Now you can even do it natively, so no JIT.
FYI Garnet requires JIT but this is sort of irrelevant in Garnet's scenario as as frequently starting and killing your Redis server is the last thing you want to do. It can be self-contained in either case, and the happy path scenario will be using one of the pre-built docker images I linked in one of the sibling comments. The described issues are made up.
I meant .net runtime dependency which most people are not familiar with and there is not enough trust in MS as there is trust in say, apache foundation.
It’s not that, it’s .NET is weird tech on Linux. You have to install a new and different runtime. Config files are xml and stored in different places? All sorts of crap.
Vs just running a binary. So simple.
People put up with Java for a while but it’s declining in popularity.
I don't know if it's weird or not, but it is very very different. Running .net implies a lot, brings a lot of conventions and configuration with it, that's very dense. Dense and powerful and useful. But is it's own universe.
Part of what was so liberating when Node was emerging is that it's so so so configuration less. Python is still fighting to figure out what a package is & where libraries go, and how does work. That was moot with Node, not an issue, because node_modules is the thing & it's almost always local (Debian valiantly fighting to system wide that). .NET has orders of magnitude more carried assumptions & confirmation than Python.
It's super awesome, a lot of it has great reason & power for being there. But this idea that runtimes are black boxes & we ought not notice or care is a day 1 experience that your day 2 engineers may swear at you at over.
If you had read the docs, you would know it needs no configuration unless you want to adjust the settings. The latter is Redis-like, simple JSON file and a few CLI args:
It looks like a very well documented & great product.
But it's presenting the impression that it's a blackbox, that it's just Garnet you have to configure.
But there's a huge vm under the surface of this facade, and you're not showing what the rest of the iceberg looks like in these docs. No vm is free of tuning. Not Java, not node, not .net, and they all have specific learned natures.
It's concerning not encouraging that Garnet doesn't even begin to respect that, that it presents itself as a neutral blackbix binary when there's so much more here.
I'm really shocked at the complainy whiny petulant tone that any remotely critical point of view is met with. I've never seen a group of people so brazenly so aggressively insist we should have no concerns, that showing any appreciation for nuance or difference is met with accusations of FUD. Terribly insulting to be bossed around like this, and I hope the rest of the .net platform advocates aren't think skinned & petulant. I don't think you'll get far trying to win cultural arguments by force.
Garnet looks awesome but this attitude of outrage anyone might for a second pause about .NET & that any concern is invalid and not allowed is absurd.
There's a comment stating that the project requires complex and involved configuration, and it's a problem. A link is provided in response that demonstrates it to be the opposite. Turns out, as a reply states, it is equally an issue, possibly because of an assumption that a VM-based language must come with a significant amount of required configuration ceremony (even though counter-points to this, like Go, exist). .NET is configurable, GC modes can be changed, at startup or on the fly (within certain limitations), compiler options can be adjusted, but the default approach is for the users to do as little input as possible unless something does not perform to their expectations.
> Running .net implies a lot, brings a lot of conventions and configuration with it, that's very dense. Dense and powerful and useful. But is it's own universe.
> that it presents itself as a neutral blackbox binary [0]
> .NET has orders of magnitude more carried assumptions & confirmation than Python. [1]
This was posted without verifying whether these statements are true or not, presented as fact. It is not unreasonable to be upset if it happens every single time. You could compare this to how Ruby community feels that whenever Ruby-related projects are discussed, someone is bound to come and point out how it has terrible performance and is therefore unusable (I was guilty of this as well). Emotional embellishments and holier than thou attitude are insufficient to reframe this. When facts change, I change my mind, and if a statement turns out to be incorrect, I stand corrected, and it has been a great boon for acquiring all kinds of tidbits of technical knowledge here so far. At the end of the day, this is an informal setting, therefore the rules of HN and internet etiquette apply first and foremost.
[0]: instead of easier to use pre-built docker images, quickstart guide ends up pointing to just cloning the source code, and doing build+run (dotnet run -c Release). This is as far as it gets from a blackbox binary.
[1]: it only makes the assumptions that are safe to make, which are the same most other platforms are subject to - that certain POSIX and Linux (or macOS/FreeBSD) APIs and glibc or musl are available, that the runtime is present in the $PATH (or not, if an application is published as self-contained or natively compiled), that sort of thing.
Is there a language or tool with no runtime?
Also Config files can be JSON.
I find nothing weird when it comes to .NET on linux vs any other technology
"apt install redis-server" on my server says that the following will be installed:
- libjemalloc2
- liblzf1
- redis-tools
Garnet requires .NET, so...
apt install aspnetcore-runtime-8.0
Acting like Redis works "out of the box" while Garnet requires a whole other paradigm shift is disingenuous. I have no dog in the fight - I use macOS and I don't use Redis or Garnet.
Just flag+downvote and move on, it's been 8 years already and it never changes.
While on the topic of macOS, Swift Library Evolution ABI support is coming .NET for native integration with Swift (particularly for system APIs). I have not tried it yet but it's an interesting feature AFAIK no other language has, well, besides Swift itself.
Here we go again, heh. What drives these replies? It's by far one of the easier and simpler dependencies as far as "involved runtime" packages go. That is - easier to deal with than various Python versions, OpenJDK or even Node.js.
I find it a bit ironic that the complaints are for what is effectively the simplest process of building the entire thing from source which is distributed under MIT (because that's what dotnet run does the first time you invoke it after cloning the repo), sometimes you just can't win.
I would take the continued fall of the dominoes (Mongo, Elastic, Hashi, Redis...) as a sign that the impact on the businesses who do this is positive or neutral, and it's just the HN bubble that creates the sense that there was an outsized public outcry over the changes that should make other companies wary. These guys aren't following suit blissfully unaware of the backlash against similar moves: as they measure it the backlash was weak enough that the business folks decided it was worth it to follow suit.
In my experience working in the industry, I wouldn't even have noticed that any of these license changes had happened if I weren't on HN. My company uses all of Mongo, Elastic, and Terraform and there hasn't even been a whisper of switching away from any of them.
That they're being fully honest and open about the fact that it doesn't matter anymore and they would rather be open source if possible? I don't have any compelling reason not to take them at their word when it comes to their motives, because no data I can find suggests that the switch was bad for them.
> Redis CEO Rowan Trollope defended his company's move away from the more permissive interpretation of open source. He said the decision was designed to prevent AWS and Google from charging for Redis in their database services without paying for it.
This seems to be a similar reason why Elastic Search moved from open source.
From the founder/CTO of Elastic:
I never stopped believing in Open Source. I’m going on 25 years and counting as a true believer. So why the change 3 years ago? We had issues with AWS and the market confusion their offering was causing. So after trying all the other options we could think of, we changed the license.
But who knows what the future holds? Maybe the Redis team will change their mind and revert back the decision like Elastic Search did a few weeks ago: https://news.ycombinator.com/item?id=41394797
I guess I don't really understand the blowback when a project tries to monetize, but not when AWS takes your free shit and monetizes it for themselves.
It annoys the community when Redis starts out with a permissive license that attracts outside contributors including employees from Tencent+Alibaba+Amazon+Bytedance+etc who collectively commit more code than Redis employees [1] ... and then later change the license which destroys the goodwill that attracted the outside contributors in the first place.
No, I understand that changing the license is the issue drawing the reaction. But it looks like they're changing it in order to monetize.
> It annoys the community when Redis starts out with a permissive license that attracts outside contributors including employees from Tencent+Alibaba+Amazon+Bytedance+etc who collectively commit more code than Redis employees [1] ... and then later change the license which destroys the goodwill that attracted the outside contributors in the first place.
When an open source project achieves success it does so on the backs of not only those who use it, but those who contribute. Sometimes these contributions are not just code but also include constructive feedback, bug reports (some very detailed with repros), documentation, advertisement by way of blog posts about the ways consumers use it, and more. While i fully believe that other players should be expected to contribute monetarily or with code, I also don’t believe that you should fundamentally change the relationship between the project and the consumer because the consumer has built a product on or with your project. They chose to build that product based on the license you provided them. If you didn’t want to license it that way then don’t do so from the beginning and you probably won’t get as many of the aforementioned benefits.
If I choose to open source something it’s because it’s either a passion project or it solves a problem that myself and others struggled to solve. I don’t open source it under the expectation of eventual profit. In fact, i hope by putting it out there it might become better as others improve upon it and we all benefit.
> If I choose to open source something it’s because it’s either a passion project or it solves a problem that myself and others struggled to solve. I don’t open source it under the expectation of eventual profit. In fact, i hope by putting it out there it might become better as others improve upon it and we all benefit.
I agree with this. The problem is, you've open sourced it and someone else does profit to the tune of millions/billions. That seems unfair and is why I'm sympathetic to these sorts of license changes sometimes. Seems like they went into this knowing full well many would move to forks.
> If you didn’t want to license it that way then don’t do so from the beginning and you probably won’t get as many of the aforementioned benefits.
Fair point. Was that foreseeable in 2009? A lot of the actions we take now are based on what's reasonably foreseeable in the future. I honestly don't recall.
> Fair point. Was that foreseeable in 2009? A lot of the actions we take now are based on what's reasonably foreseeable in the future. I honestly don't recall.
The company now known as Redis didn't acquire the redis trademark until 2018, and didn't change their name to include redis until after that. That is probably the better timeframe to think about.
Well if they did not give away it for free in first place AWS could not have taken it. They are only themselves to blame for giving away free samples and then crying when in entirely morally justifiable way someone decides to sell their free product as service. Should have done that themselves.
And second thing is, often the pricing of these monetization turns is just exploitative.
You can be generous without wanting to be taken advantage of. Using a product is one thing, reselling it and becoming the defacto place people use it is another.
Another take is that if Amazon eats everyone’s lunch, we will have nothing else.
One is a hosting company using software under the terms that it was licensed. The other is the author(s) of software getting a following with very permissive licensing and then changing the deal after the software has been adopted.
The blowback is because of the deal being changed.
The difference is the blow back comes from the users affected. I have no love for Amazon or Google, but if I'm currently using Redis as part of my product or service, forcing these new terms is threatening my business because I rely on it. My employer specifically tracks all third party software we use and this new license wouldn't fly - we would be forced to find an alternative.
No, because now AWS will be selling a fork and virtually everyone will be using that instead. Now we have a broken ecosystem, having to support effectively two libraries or a lowest-common-denominator, but only because they're mad that their open source software was popular (!?) and want a do-over, even though it never would have been popular to begin with if it wasn't open source.
All of these open-source-no-wait-lol-jk companies want to have their cake (widespread adoption because it's open source) and eat it too (be rentiers paid to host and support the software they released).
It's especially egregious in the case of Redis as Redis Labs hasn't been the primary contributor for a number of years. As is always the case with closed source relicensing it's a landgrab.
The article suggests valkey as an alternative with nice features in recent versions.
If redis finds a way to integrate these features from these other fork(s) back into its own product, adds additional "enterprise" feature set on top and sell it, I wonder how it will be received by the OSS community.
Are there any products that are importing features from their more permissive competitive forks ?
I was recently looking at keydb due to the licensing move and well I also liked the fact that the data can be encrypted at rest, but it looks like there hasn't been any activity on the repo in 5 months, anyone familiar with it or have good alternatives there?
I'm still a bit out of the loop here. How exactly does the Redis license change affect me anyway, as an end user who just runs Redis binaries and does not use or sell any managed redis service?
Not much really, imho Redis is pretty much "done" for what most people use it for. Looking at the commit graphs in the last 24 months the number of commits have not changed drastically either, so you'll be fine.
It might be an issue later when you decide to monetize and go big, but then perhaps a cloud providers solution may be a better option.
On other side one has to ask does not doing this work out? Spend lot of money making product and giving it out free. With no proper realistic plan how to make money at sufficient scale with it. Free money runs out what you do next? This or just simply die?
Sure, the goal of a company is profit not market share. Plenty of businesses that couldn't make money while expanding make all their money over the years or decades it takes to drive all the customers away.