Redis users considering alternatives after licensing move
theregister.com
theregister.com
libc6
libgcc-s1
libgssapi-krb5-2
libicu72
libssl3
libstdc++6
zlib1gVs just running a binary. So simple.
People put up with Java for a while but it’s declining in popularity.
"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.
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.
https://learn.microsoft.com/en-us/dotnet/core/deploying/sing...
So simple.
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.
https://microsoft.github.io/garnet/docs/getting-started
https://microsoft.github.io/garnet/docs/getting-started/conf...
But you haven’t, because posting FUD is more important.
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.
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?
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 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 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.
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.
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.
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!
Garnet also has pre-built docker images for easy deployment: https://github.com/orgs/microsoft/packages?repo_name=garnet
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.
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.
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
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.
The blowback is because of the deal being changed.
personally i appreciate Amazon for sticking it to Oracle with Corretto after the JRE licensing changes.
Unless your primary product involves selling a hosted version of Redis, simply using it shouldn't affect anyone. Is this not the case ?
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.
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.
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.
Your starting premise of "monetization" being the issue is incorrect ... which then causes the misunderstanding of the blowback.
Instead, the blowback is about changing the license as I outlined before : https://news.ycombinator.com/item?id=39951361
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.
[1] code stats since 7.0.0 release: https://lwn.net/Articles/966631/#:~:text=Top%20changeset%20c...
> 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.
This is a very fair point.
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 ?
Over time that means the dependency you are using has less improvements than if you lived in a parallel universe where it was still open source.
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.
Redis adopts dual source-available licensing