
Show HN: ABCWeb – A Go Web Framework - jeremyliew
https://github.com/nullbio/abcweb
======
adamkittelson
I'm usually the last person to jump to the defense of anything golang
related... but people seem to be raising eyebrows about the nodejs dependency.
Assuming they're using it for asset compilation etc I really don't see the
problem. There's no reason to keep rewriting that stuff in every language.

~~~
jalfresi
You don't see a problem with installing nodes for assets compilation? What is
the tech world coming to...

~~~
jerf
I very much want to avoid ever programming in Node, but if the best asset
management tools are written in it, and I don't have to program in it, so
what? There's all kinds of code on my systems written in languages or
frameworks or styles that don't want to have to write in myself, but, well, I
don't. I just use them.

------
0xCMP
NodeJS is not a horrible dependency and it's not required when creating a new
project. It's not like everyone doesn't already have Node or NVM installed for
some other project.

How else is the framework going to handle/bundle these two parts together?
There is so much code already out there that works for developing rich
frontends that it seems silly for a "framework" that is trying to handle
everything for you wouldn't handle that.

------
alphabettsy
Install nodejs as a first step... Should not be a requirement of a Go web
framework.

~~~
nullbio
A lot of people seem to be reacting to this and I can't say I'm surprised, I'm
no fan of javascript or nodejs either, but allow me to express my thoughts so
that perhaps you can see things from a different perspective.

We made an asset pipeline in Go (aptly named pipedream, and it turned out to
be one), our original plan was to use this instead of requiring an "external"
dependency for asset management. We got to the point of handling all the
different combinations of compilers and we were forced to pipe to them on the
command line because there are no Go library implementations for most of
these. Once we started doing this the problems became apparent. The interfaces
for these tools on the command line are not very flexible in a lot of cases,
and they wildly vary in implementation and flow. All the tools that you want
to use to mess with Javascript (typescript, uglifier etc) have significant
advantages when able to be used as a library instead of a standalone compiler.
They're meant to be used like that and when we tried to break it into
something nice based on "compilers" and "minifer" binaries, the dependency
handling became a nightmare, recompiles became inevitable, and all this other
fallout because the tools that are created for JS are all written in JS and
there was no great way to bridge that gap and use them like gulp can/does.

To summarize why we failed with our pipedream efforts the biggest reason is
because the command line interfaces to these compilers left so much to be
desired. They all want to be their own recompiling watchers like typescript,
and they don't think about pipelining. Gulp manages to pull it off by using
their libraries, but you can't do that outside of JS.

I also want to state that I think the hate is overblown in our use case, once
it's installed it's out of the way and you never have to worry about it. It's
automatically taken care of by abcweb and as someone who isn't a fan of
javascript or node I've had no problems with it and have been able to
appreciate it for the work that it saves me.

The decision to use gulp didn't came lightly, but it happened to be the best
option out there. We've made it entirely optional though `--no-gulp` if people
want to try to build the dream like we did. Maybe they can succeed where we
failed.

------
phish
Are there any example webapps built with this?

~~~
nullbio
Not yet, this was only just released to the community yesterday. I plan on
making an example app, further polish the docs and create a video. There's
lots to do!

------
sAbakumoff
Why would anyone need a "go web framework"? What is it, gorilla toolkit is not
enough anymore?

~~~
Numberwang
Gorilla seems abandoned since 2013

[https://plus.google.com/116448763101158824911](https://plus.google.com/116448763101158824911)

~~~
pkroll
Must have moved at some point:
[https://github.com/gorilla/](https://github.com/gorilla/)

------
maerF0x0
Also checkout go buffalo [http://gobuffalo.io/](http://gobuffalo.io/) the
claims are nearly the same "Rails for go" .

Too bad they didnt collaborate to make a single project better.

~~~
laumars
> _Too bad they didnt collaborate to make a single project better_

Building a web framework is one of those things everyone seems to try. Along
with writing a CMS and/or message board.

I have no issue with the NIH mentality here just so long as the developers are
realistic enough to accept that their pet project might not amount to anything
significant in the wider community.

------
sethammons
> Step 1:

> Install NodeJS

o_O

