Skip to content

Conversation

@egonelbre
Copy link

@egonelbre egonelbre commented Jul 2, 2019

Hi, saw your post on comparing Python, Go and Rust. Really cool that you are making the comparison.

Here's how I would refactor this to look more idiomatic Go. Each commit should explain itself, but feel free to ask questions. As usual, many of the changes are cosmetic, so feel free to ignore - getting working software matters more.

There are few things I was thinking but didn't make the changes, like that maybe RGBA colorspace isn't the right choice here. I would've probably gone for any of YUV, YCbCr, YPbPr, CIELab - since they represent human perception better.

Similarly when computing delta between RGBA it might make sense to use pre-multiplied alpha, otherwise you get differences between completely transparent pixels. However, depending on the exact use-case, it might not be the right choice.

There are a bunch of optimizations possible to make the Go version faster but probably doesn't matter here since the computation isn't too large.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant