Hacker News new | ask | show | jobs
by acron0 4582 days ago
Looks smart! Curiously, any reason you chose not to use Revel?
2 comments

Two reasons:

1) I didn't want routes in a text file. This is whiny, I know. Just a personal preference. 2) Go is the only programming language that has held my attention long enough to actually finish a fairly usable framework. Writing a framework is a good exercise in software design, so I felt like I had to use the opportunity.

I totally agree with you on routes in a text file. Are you gonna go 'batteries included' with Gadget, or keep aiming for that middle ground?

I ask because I am looking to put my weight behind a framework and am undecided, but not at all attracted to Revel...

I would like to go something like "batteries included but not installed." The User interface I have now is a good example of what I mean -- I would prefer to keep everything built around implementing an interface, but it might be nice to provide an "official" authentication implementation as a subpackage.

I've started writing subpackages as they become important to me. The most useful thus far is probably gadget/forms, which is very much inspired by Django forms. I prefer a data validation layer that is independent from or at least very loosely coupled to a model layer.

Or martini? I liked the look of martini but have not delved deep enough to make an informed decision. Might pick Go for my next side project...
Just came back from a go meetup where I met the developer of martini actually, I think it's a really well thought-out framework :)
The only thing I really see in martini over plain gorilla mux is dependency injection which has a reflection cost. Once you peel back the Classic mode, which I advise not using except for trivial projects, your code base is about the same. I'm sticking with gorilla.