Thoughts on go lang?

Thoughts on go lang?

Other urls found in this thread:

blog.golang.org/errors-are-values
golang.org/doc/faq#Why_doesnt_Go_have_feature_X
twitter.com/NSFWRedditGif

If you're not being paid , don't learn it

Shitty language but the implementation, the standard libraries and goroutines make it worth using. Package management was also a complete disaster but dep makes it usable.

Neat idea but castrated on purpose so poojeet can crank out shitty code for google

Good language. My favorite to program in right now. Std lib and built in testing tools are just a couple of reasons why it's a joy to work in.

You enjoy typing repetitive boilerplate over and over and over again?

>things that triggers gtards

Good
>Extremely simple
>Interfaces are very flexible
>No misfeatures e.g. exceptions
Bad
>No generics
>Lame type system (no sum types, no tuples but for some reason multiple return?)

It's OK I guess. I'd sooner use it than Java or any of the overengineered OOP languages that are popular these days.

Nice meme
Sum types aren't a big deal if you use interfaces correctly

Golang or python?

>meme
>implying if err := isn't scattered everywhere
>implying the lack of generics doesn't promote a repetitive, tedious coding style

It is java with with coroutines. It has zero reason to exist.

The whole point of sum types is to form a closed set of possible states. Open interfaces defeat that purpose.

nothing wrong with if err. the problem is that poor programmers (like yourself) just end up returning the error without adding any additional context.

Yes, Go code is boring, and I like it that way.

make your interfaces unexported. problem solved

interfaces don't describe state, I don't get your point

Bump

Python is far too slow, distribution is a mess, and dynamic typing is garbage. Go has a really poor type system but it's still far better than dynamic typing.

Escaping the Java community and Java libraries is reason enough. I've replaced several Java services with Go services and they easily use 1/10th the memory and have way less time spent doing garbage collection. OOP was a mistake.

Sum types like Either are superior to Go's error handling but both are far better than checked or unchecked exceptions.

>err :=

I really don't see a problem with that

If Haskell is so great why do all the libraries for it suck? It doesn't even have a compliant HTML parser LMAO.

Go is an experiment. Koolkiddies use it to cover up their incompetence building robust software buy thinking about scaling and containers first.

Nah, it's actually ok.

Go is complicated.

Go is basically C with automatic memory management, a built in package manager and a cute concurrency model (that is actually useless, if you think about it for more than 5 minutes).

Because of the garbage collector, you really can't do low level programming, or real time things like games or videochat applications.

The concurrency model is nice for really tiny things, like NodeJS, but because Go is for imperative programming, if you are trying to do something a bit complex you will end with a clusterfuck of mutex and locks all over your code. Go's concurrency is a joke compared to what you can do with Erlang or Scala.

The concurrency model is nice for really tiny things

Fucken go make you implement all shit again all the time. We were over that low level memory safety with Java and Scala. What the heck.

blog.golang.org/errors-are-values

Both, we use both, it's fine.

>compared to what you can do with Erlang or Scala.

Scala is an on going disaster and most of the developers jumped ship a long time ago. Erlang is a complete joke unless you're doing little more than marshalling small messages back and forth (ie. inefficient routing, chat service etc.).

>Scala

LMAO

the concurrency model is an more convenient version of that in erlang you fucking mental midget

Shitty painful ugly language that at the end of the day runs almost as fast as C

[Citation needed]

You don't have to type it over and over if you know how to program, it's just not as clean as generics.

you realize Go's concurrency model is subset of erlangs, right?
>will end with a clusterfuck of mutex and locks all over your code
maybe you are doing it wrong

Go if you want to work at Google
python if you want to work anywhere else

>Because of the garbage collector, you really can't do low level programming, or real time things like games or videochat applications.
This needs to be screenshotted and framed as the absolute state of Sup Forums

s/subset/superset/

latency vs throughput, game programming is very latency oriented

Go isn't fit for cutting edge triple AAA video game engines but "videochat" applications can be written in Go easily. One of the biggest video serving websites on the Internet is primarily programmed in Go and the videos themselves are served directly with a Go application.

Been learning it since 90% of the new DevOps tools coming out seem to be using it

How the hell is that the case I've seen a lot of java code and programmed a ton of go code, and from I can't tell their quite a bit different lol. I mean there both system level languages but thats about it, its probably closest to c I'd say.

>The concurrency model is nice for really tiny things, like NodeJS, but because Go is for imperative programming, if you are trying to do something a bit complex you will end with a clusterfuck of mutex and locks all over your code. Go's concurrency is a joke compared to what you can do with Erlang or Scala.

Actually generally speaking other than a few exceptions state is ridiculous easy to manage in go routines and the only time I've needed to implement things like mutex's are for things like cgo implementations of sqlite and shit.

It's like Java except even more shit.

The performance meme has to die. The *only* time GC *ever* matters is when you *absolutely* must have deterministic performance, like embedded.
>latency vs throughput meme
HFT is too and we do away with vast majority of our code being Haskell or Java. The tiny bit of code that actually has to be fast to hit performance targets is done in asm with the help of superoptimizer. Mind you we're dealing with latencies much smaller than AAA games while doing considerably heavier proccessing.
Game programmers are among the worst when it comes to developing performant systems. I cry every time i review the shit they write (usually they do so with a blank paper/board), thinking they're cowboy Carmack in the wild-west when a bug can mean losing hundreds of thousands of dollars instead of few man-children crying on forums. Mind you this is *after* they've been through the training proccess (6 months). How is it possible that developers from other fields can get up to pace within that period but i have to babysit these shitters for a year?
For soft-realtime systems, i find the following to be true:
>God tier
Academics with heavy theory background, like formal verification or complexity theory
Embedded guys
>Good tier
Network guys
>Trash tier
ML guys
>Japanese shitter tier
Game developers
Pls subscribe to my blog.

I don't see the use cases for it, honestly. It just screams another "me too" in the never-ending cascade of "like C but..." that people think they want but don't actually have any use for.

That's not what "real time" means dickhead, why don't you go fuck yourself

I've only read the The Go Programming Language book but it was really surprising how bad the language is. Everything is nullable, nil interfaces, no sum types, terrible error handling, no generics, broken loop variable scoping, terrible APIs (especially scanner), no way to restrict mutability, horrid package management etc. I'm sure I've only scratched the surface of how shitty it truly is.

I'm going to keep playing with it but this is definitely trash.

None of us use it because here we are on this board just dickin round.

what annoys me is that you can't do this twice in the same scope.

sav'd.

While I would probably never use it myself (nearly every decision in the language is the opposite of what I want), I like the idea that it makes distribution fairly pain free (i.e. here's a static executable). Though I've noticed that, despite that, every go project seems to be distributed via the package manager so you lose that positive anyways.

Thoughts? Pretty good actually. We've already seen a very successful implementation on it, Docker, and its a fundamentally faster and more powerful language that that of JS and other trendy languages.

I wish it was even more like C, specifically regarding typing and memory management. But I'll be fine with what it is now given how fucking retarded today's programmers are.

The one thing, ONE THING, I dislike about GO is that I have to put my curly bracket on the same line as the func declaration. For that reason only, 0/10

I'm over here still doing perl like a 90 year old. Don't replace it if it aint broken.

>this whole post
but especially
>Because of the garbage collector, you really can't do low level programming, or real time things like games or videochat applications.

This is the guy calling you Pajeet for using go.

Another good project has recently adapted go: dnscrypt-proxy.

>[Citation needed]
golang.org/doc/faq#Why_doesnt_Go_have_feature_X
>felicity of programming
In case you're the target audience, that means easiness. Other quotes:
>cost in complexity in the type system
>convoluted code