Again, it’s not as black and white as you think. Not everything is perfect, nothing is, and nothing ever will be. Yes, Shiro APIs are a bit old-fashioned, but they work perfectly, understandable and productive.
Trust me, as you rework your problems “in terms of Shiro design” your desire for casts will largely disappear. I believe you are trying to use objects in your code that you are mostly do not need to. > On Nov 8, 2020, at 4:24 AM, Alex Orlov <[email protected]> wrote: > > Hi Andreas, > > I am just a Shiro user and this is Shiro user mailing list. I fulfilled my > duties — opened an issue and gave explanations. > I develop my projects, Shiro developers develop Shiro. I just can’t develop > any library I use in my projects ( > 30) — because > to do it I must give up my projects. > > The idea of my message wasn’t "Change the API because anyway you have nothing > to do". The idea of my message > was — "Don’t call a wrong thing a right thing". > > > -- > Best regards, Alex Orlov > > > Воскресенье, 8 ноября 2020, 12:54 +03:00 от Andreas Reichel > <[email protected]>: > > Dear Alex. > > > On Sun, 2020-11-08 at 12:47 +0300, Alex Orlov wrote: >> So, when you do FooImpl impl = (FooImpl) foo; it means that either you are >> doing something wrong, >> or API is not flexible enough. > > > Sometimes it may mean: it works perfectly fine as it is and the people have > more relevant stuff to do. > Look at Hurd: perfect in theory, unusable in practise. Look at the Linux > kernel. Far away from being perfect or clean, but runs impressively well and > reliable. > > That said: your best argument might be a pull request, which demonstrates the > improvement you have in mind. I am sure, the Shiro developpers would merge it > when the advantage of the refactoring is obvious. > > Best regards > Andreas >
