I don't have anything to compare to, but Go seems quite fast. I would guess no worse than 2x C in this case, but I'm pulling that number out of my butt.
Actually I was originally going to write this in C but it started to be a PITA and I had the spontaneous idea that maybe Go would be the right choice for this (never used it before). It totally was. No way I would've had this level of results so quickly in C.
Being a big fan of Python and C, Go seems like a really good middle ground. Really happy to have learned it.
As someone trying to learn the basics of rendering, I was really pleased to see your project pop up on the github explore email today. It's very easy to follow, even for a non-Go programmer like me.
Performance question from a no-Go programmer though - does returning objects from functions incur a cost? For example "func Reflect() Ray {}" or "func Add() Vector" - do they create a new object on the heap? If so is that an issue in Go?
I'm very very impressed by your code quality especially when this is just your first Go project. I'm an experienced Go developer btw. You're just so good.
Actually I was originally going to write this in C but it started to be a PITA and I had the spontaneous idea that maybe Go would be the right choice for this (never used it before). It totally was. No way I would've had this level of results so quickly in C.
Being a big fan of Python and C, Go seems like a really good middle ground. Really happy to have learned it.