Replies: 5 comments 3 replies
-
The three existing clients are
|
Beta Was this translation helpful? Give feedback.
-
"Best effort" is meaningless - you dont get a race car performance by putting a spoiler on a family car and vice versa. This whole discussion does not make sense - Glide is a software product, implementing some functionality (semantics) and exposing it via language-specific interfaces (syntax). Semantics and Syntax work together. Even if it is possible to translate the current Syntax to other library Syntax (see the spoiler analogy), this still wont make client code compatible. Moreover, it will harm GLIDE a lot - GLIDE was built upon the idea of having a common functionality code, which exposed by thin, idiomatic, minimum-effort bindings. This means that if we had a sufficient RPC technology (e.g. GRPC) the binding would be generated automatically. This also means that all the bindings look and feel the same. Taking an foreign interface and implementing it for a selected binding BREAKS this tenant. If we want truly make the client's migration easier, we should do it not by messing the GLIDE code but via a dedicated Adapters which will translate a foreign interface to a unified GLIDE interface. This will also make the migration truly convenient since the Adapter will implement the entire foreign interface. |
Beta Was this translation helpful? Give feedback.
-
Creating Drop-In packages for .NET should be relatively straightforward, provided there are no licensing conflicts. However, ongoing maintenance is also necessary. Personally, I would prefer a .NET tool that facilitates upgrading to Glide. However, this would require that most, if not all, of the library semantics can be effectively translated to Glide. Roslyn platform can already be used for that: https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/get-started/syntax-transformation |
Beta Was this translation helpful? Give feedback.
-
If the customer wants to move to new client, how many lines of code needs to be changed? I'm not sure it is a lot. Probably makes sense to check out heavy users code. Cause having the compatibility is huge constrain and benefit yet unclear |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Important
If you are a user of glide, consider to be one, or waiting for your language to get its binding already, please comment your input.
Best effort API similarity
In the contributors meeting, we had a discussion on whether we should put some effort on trying to keep our API similar to the main client that exists in the ecosystem of the specific language.
In the current state, we are referring to C# and .NET, so the main existing client is
StackExchange.Redis
. -- C# clients stats in the comments.While there's a lot of strong opinions around it, we need to have a data backed decision.
Understanding the implications:
We can't start the discussion without understanding what we're discussing.
We might understand that we are having the same API or that it is not feasible at all, but probably it will be somewhere in the middle, and we should understand where.
Understanding the users
After understanding the above question, we should understand how what we find feasible will affect users.
We need to understand how each one of the options we find feasible will impact users' adoption and ease of use.
Ways to gather information: (Please add yours)
It's relevant for any of the languages.
Please add points if you find some missing.
After we will have the data, we can keep iterating over the discussion.
Beta Was this translation helpful? Give feedback.
All reactions