Hacker News new | ask | show | jobs
by threeseed 4570 days ago
> If you haven't tried GoLang yet, you should try writing your own framework.

Why ? Wouldn't time be better spent learning a language on the JVM that has a whole array of stable, well-tested, production ready frameworks i.e. all of them.

Switching from the JVM to Go is like taking 1 step forward and 100 steps back.

3 comments

That's what I don't understand about HN. 4/5 fastest frameworks were java, and the takeaway is to pick go (granted it is the fastest though). Go is relatively new with few resources, java is old hat with plenty of books, docs, tutorials etc and a global talent base of developers.

I can understand learning and using go for some things, but companies are moving major infrastructure to it with staff that are still learning it.

It's not actually the fastest. Check out the tabs at the top of the benchmark. You are only looking at basic JSON serialization on an i7. A more realistic benchmark is the 'fortune cookie' benchmarks which actually hit a database and does some modifications on the results - which most of your requests will do. Go performs at only 50% of the more optimized Java/C++ frameworks in this case.
The benefits are just too big to ignore and the barrier of entry is really, really low. The Go language is so refreshingly simple and the standard libraries are very well documented. You can hit the ground running in days.
The benefits are too big to ignore? Would you mind letting me in on the secret then? The only benefit I see in go is fast compilation. That is hardly big enough to justify using such a primitive language.
The thing about Go is if the language appeals to you then the fact that there aren't 10 layers of legacy framework cruft between you and the actual app logic is actually a good thing, not a bad one.

And Go does have some great "batteries included" stuff where it counts. With a few notable exceptions I find the 3rd party web frameworks for Go don't really add much over the standard library's net/http and html template system.

I have a bias against Java. I realize I may be deluded, but my experience the vast majority of things written in Java are garbage. Here, 'garbage' is an intentionally vague term coming from my personal opinion of using a piece of software in a consumer and DevOps role. It may be that the Java language is conducive to writing bad code, that the JVM has problems, or that the 'global talent base' is so broad and Java is so 'easy' that talent is difficult to come by, or I might be plain wrong.

I realize that Java is incredibly useful for some things and that my reasons for labeling software garbage aren't always of primary concern; criticizing anyone for choosing Java is beyond me.

However, I would be very reluctant to ever choose Java for a project given the opportunity.

What would you choose instead and why?
Is it a toy? Is it a startup? Is it worth doing really well? Who is going to use it? Is it a tool for the ages? How much do I care about it? How big of a project is it? Is building software my only goal? Do I have the resources to do it right?

... there are so many questions with so many different answers.

I used Scala, which was running on the JVM. The barrier to entry be it Java or Scala is quite high.

I completed the "Introduction to Programming in Go" in under 3 hours and in less than 6 hours I was able to code a full-fledged application. I cannot say/vouch the same for Java or Scala.

I would like to have an enterprise-level language inside my company without the complexities associated. I think goLang solves my problem and hence I use it.

I love the JVM, it's fast, sturdy, reliable. But throw in more JAVA developers at it, no matter how good, you end up with half-baked code, unused classes and unwanted complexity. I wish I could throw in more Scala developers, but it's not possible at the moment within my financial constraints.

Almost 100% of the developers we hire know C/C++ well, so it's much much easier to teach them GoLang, than say, Java. And that is a huge time and money well saved for me.

>If you haven't tried GoLang yet, you should try writing your own framework.

I only say this because I want people to understand how incredibly simple the GoLang is.

Hope this helps.

Interesting that you find C/C++ people to pick up Golang fast and easy. From my experience, it's the Python/Ruby crowd that tends to gravitate towards it. Most C++ programmers I know are stuck too much in the std::map<what<is<this<oh_god>>>> type of coding and refuse to touch Golang.
AbstractFactorySingletonFactoryFactory killMeNow = FactoryCreatorFactory.CreateSingletonAbstractFactory(…)

But of course, you have to first write about 300 lines of XML to wire up the various BeanInversionContainerFactoryDependencyInjectors.

Java is a needlessly verbose, death-by-pattern-programming monstrosity. Go is a fresh look on programming in general. The standard library is phenomenal, built-in concurrency is excellent, and it's an extremely productive environment to be in. It feels like driving a Mazda Miata vs a Ford F-250.

Different strokes for different folks, I guess.