It seems you could have just helped codegangsta along instead of "yet another web framework in Go."
It seems you could have just helped codegangsta along instead of "yet another web framework in Go."
In the same kind of Martini-like web frameworks that don't use reflection, there is also Goji - http://goji.io.
First. Martini uses reflection, it's IMPOSSIBLE to make it as fast as Gin without removing all the reflection. Obviously it would break all the API, it would not be Martini anymore.
Martini is not slow because a bug, it's slow by design.
Second, Gin uses the fastest http router available, HttpRouter. I strongly believe that people should use HttpRouter, it will work perfect for you unless you need regex to validate the URL. The problem is that HttpRouter is not strongly featured, it lacks things like groups, middlwares, error management, control flow, rendering...
One requirement for my startup was high performance, HttpRouter was the best choice, we added a very lightweight system on top of it, so developers are happier.
The final results, from 20x to 40x times the performance.
As I said, if you need performance and productivity Gin is probably a good way to go :) I hope it was useful.
I just hate "yet another xxx in yyy" projects, but I'm not downplaying the work involved.
But again, this project (Gin) is completely unrelated to Martini. Martini itself is not that old; deprecating it would be pretty poor form given that refactoring your project to work with Gin would be A Big Deal.
If the author had forked Martini your argument would have made more sense, but we shouldn't be afraid of building something new just because someone else broke similar ground before.
You say deprecating it is poor form, yet this guy just built a "better" version of the framework and says we should switch to it. I don't see how that's any classier than just saying "Martini sucks."