jorgebucaran / colorette

🌈Easily set your terminal text color & styles
MIT License
1.61k stars 51 forks source link

Add Nano Colors mention as inspiration #78

Closed ai closed 3 years ago

ai commented 3 years ago

Recent !s optimization was clearly backport from Nano Colors. Can you add a note that Nano Colors was an inspiration for the project.

ai commented 3 years ago

https://github.com/babel/babel/pull/13783#issuecomment-927258580

You edge case suggestions was very useful, but you didn’t mention !s fix there. You didn’t create an initial boost, and you didn’t fix it to name yourself as author.

I most of the cases, I am OK with idea copying between projects. But in this case, I think I have the right to do another way and ask to mention me if you copied this performance boost. You may mention me in a way “Initially create in Nano Colors and then fixed by team work of me and Andrey Sitnik”.

jorgebucaran commented 3 years ago

I'm afraid you can't claim !s as your own invention. It's a pretty obvious fix by looking at the stack trace.

Screen Shot 2021-09-26 at 18 07 14

I'm cool with borrowing ideas from each other too, of course.

ai commented 3 years ago

Anyway, it was not did by you.

And it was a fix for initial my idea that === '' compare is slow. Without that changes, this discussion would not be started.

You do not need this fix in Colorette for undefined argument. You added !s check only because you saw that it was very effective in Nano Colors.

jorgebucaran commented 3 years ago

Sorry, but I must disagree on behalf of the little programmer out there. You just can't take credit for a !s.

!s was the smallest change I had to make to avoid the explicit s === undefined, so I went with that. I could've reversed the expression just as well and not use !s at all:

!(!s && (s === "" || s === undefined))
s || (s !== "" && s !== undefined)
s || !(s === "" || s === undefined)

They're all roughly equivalent and produce the same result. I'll tell you what, I'll switch to another one and close here.

ai commented 3 years ago

You lost the whole idea of optimization.

You saw from Nano Colors that s !== "" && s !== undefined is slow. You copied the fix of this slow part.

Now you are changing !x to x instead of do an honor thing and mention an author of original work.