When did you realize this is the best language?

When did you realize this is the best language?

Other urls found in this thread:

github.com/golang/go/wiki/GoForCPPProgrammers
yager.io/programming/go.html
github.com/uber-go/zap.
github.com/darkjh/go-mapreduce/blob/master/mapreduce/mapreduce.go
twitter.com/AnonBabble

Always

At the letter G

But Go isn't D, how can it be the best language?

D is retarded

explain?

Botnet prog lang

Oh yeah totally

that's not the C logo silly

Go is improved C

Go is retarded

then why doesn't the garbage collector collect the language and throw it away?

Any language in CLR

D made a legitimate effort to be a cleaned up and generally improved C++, then shat the bed by adding mandatory GC into the bowels of the language and its standard library.

By doing so, it relegated itself to a Java competitor that Pajeets aren't actually smart enough to understand.

Go embraced its Pajeet pandering and will slowly carve out a stable slice of that niche.

I don't even care.

I also like it alot. Am no real programmer, but doing my best to learn it in my free time. Go helped a lot. Great documentation, and no dependencies fuckery. If i need anything, i can simply write it by myself and import it or search for a lib on github and import it.

The only thing which bugs me: I once wrote some simple things in Kotlin/Java in an IDE and i was blown away how great debugging was. Breakpoints. Steps. Since Go has also no real REPL (not like JVM based langs), i wasnt able to wrap my head around debugging in go till now. What's the best way to do so. Or do you simply relay on playground and testing?

It's like java with training wheels. If you're making some basic crud and most of the project is outsourced to brown people, look no further.

They've stopped pushing the systems programming language narrative ages ago. Go is not competition for C, they both satisfy different roles.

>They've stopped pushing the systems programming language narrative ages ago
Amusingly, they're Github wiki page still claims they are:
github.com/golang/go/wiki/GoForCPPProgrammers

Though, Go is specifically meant to be a C++ alternative, not C.

When I was in a parallel dimension. Then I came back and golang was Java without inheritance again.

a couple of months ago. rewrote around 60% of our services at work over into golang. Have never seen such stellar performance and stability.

you don't sound like you make a living in tech. Or, you are but are such a shitty developer that nobody wants you to write code. Or your company is actual trash.

>Made by Google
>Segmented stack
>Garbage collected
>No generics -> no reusability for data structures
>Compiler produced slow code
>Go get can only clone the master branch
>No enums
>Nil values
>No map/filter/reduce
I can go on all day.

> Made by google

Huge red flag.

/thread

when hello world compiled to 1.7mb

Piece of shit language. I dare you to explain why
interface {}
is not the same as Object in java

Also this:
yager.io/programming/go.html

Also everything said.

I much prefer Rust and Swift over Go.

I work at Google and even Google employees widely recognize that Go is a poorly designed language.

The lack of generics hits pretty hard with Google's huge codebase. There's tons of copy-pasted versions of the same code with different types all over the place. I did a bit of an audit on a few specific cases to make an argument for adding generics on our internal discussion board.

It also does a bunch of other stupid stuff, like special casing "multiple return values" and using them for error handling, rather than using algebraic types, and (related to lack of generics) not including an "iterator" abstraction, instead suggesting the ass-backwards idiom of using channels for iterators.

And for a newly-designed language to have worse functional programming support than C++, Python, and Java is a fucking disgrace. You can't even map.

To top it off, the designers clearly realized these shortfalls, and hacked around them by including a special-case generic map, built into the language. Would your map be faster if it was backed by a B-tree? Well fuck you then, you better get your Ctrl-C finger ready.

this desu

My PROS:
Its a easy to read language
has a nice set of libs
I like the error handling
go routines are easy to use
you have alot of tools if you want to start a web service
Has an integrated format code
you can generate multiplatform binearies

My Cons
The method of importing libs sucks
made by google
Chinks like golang expect botnet programs
linking with a C lib can be disastrous
New languange none needs a golang dev
You end up rewriting the same code over and over :S

>Sup Forums hates pajeets
>Sup Forums loves a language specifically designed for pajeets and interns

You're a retard.

Go is the best language I've used. Was easy to learn and got me a job pretty fast.

>go
>even remotely good
Toppest kek!
>all the elegance of C
>all the power of QBASIC
>all the performance of java

I think claiming they were a systems programming language was their single biggest mistake, especially when rust was a competitor. If they had been honest from the start and positioned themselves as a web backend programming language they could have had a lot more going for them I think.

>le performance meme

>le only useful for web backends meme

How is it any different from rust trait objects?

...

interface is evaluated at run time
trait is evaluated at compile time

If you write Go like that, then you don't know enough about it to be able to make valid criticisms.

Rust can actually evaluate traits at both runtime and compile time, but the safety of doing so is always checked at compile time.

>Rust
OK, sure.

>Swift
GTFO

That article is absolute bullshit. Didn't you notice the Go examples he gives are all things you would never need to do in Go? There is literally no reason to ever implement your own linked list, for example. But it serves to help him big up his preferred meme hipster languages so fuck me, right?

As far as I can tell from these Go threads--which always devolve into Go-bashing threads--it's probably a generation thing. Old-school UNIX hackers make a new language, millennial hipsters bash it because "waaah it doesn't do what my meme functional flavour of the month toy language does".

That comic has nothing to do with the language, the code looks like it was written by a retard. Why would you name an interface{} "slice"? Why not just accept a []T?

Posting code written by a retard has nothing to do with how good or bad go is.

What's wrong with empty interfaces/Object?
If I want to explicitly ignore the type system it should let me.

we just used it to pull some (a lot) of data from HitBox's API. It works, its fast to compile. Tho there is retarded stuff about the syntax and no generics. Also the project structure is weird.

They still have a lot going for them. It's also a great language for writing tools to inspect binary file formats without segfaulting all over the place, due to the (admittedly slow due to omg Reflection) binary.Read/Write

Don't worry about them, brother. I think Go is awesome and still come to these threads because I'm a masochist I guess. Their loss for simply e

the world runs on the fucking web now, user. Get over it

This, C++ 11 implemented this feature with the auto type. It's a modern feature that's very useful.

Made by Ken and Rob from Bell Labs, people that have put their names on a ton of minor projects such as UNIX, Plan9, UTF-8 and a little language called B which directly inspired Dennis Ritchie when he created C.

I think it's pretty cool and if my boss would let me use it I'd have a ton of shit running on Go already

but alas as a corporate code monkey I must use C# in order to be as replaceable as possible

void * and other forms of weak typing can result in runtime crashes (ClassCastException in Java).

writing any non-trivial code can result in crashes

I don't think it's bullshit to claim that there's a problem with what Go does not/can not do.

But whether that's a problem of the language itself, or of the contemporary programmer's propensity to use one language for everything, is another question altogether.

That's not an excuse. Strong typing helps you catch errors at compile time. Weak typed languages (Python, Ruby) are at their death bed.

Go isn't weakly typed - neither is Python btw

interface{} isn't a strong type and plays a big role in Go. I wouldn't call Go strong typed for the same reason that Java has with Object.

It was only a "mistake" in the sense that by doing so, they strangled Rust in the cradle. Go would be a sweeping success even without doing that, so it's not like it cost them anything.

But it doesn't play a big role at all.

And being able to circumvent a type system doesn't mean it doesn't exist.
You're the only who "woudln't call Go strong typed".

But it actually does nigger.
Marshalling, printing and others depend on reflection. Or do you run a web server without writing JSON or XML?

How terrible! Handy functions to quickly print random types exist!
How often do you get run time errors when using fmt.Print?

I know I'm talking to a Google shill, but I'll take the bait.
Proper servers write quite a bit of logging information. Companies quickly realized that using the 'log' package for Go completely sucked in terms of performance because of interface{}. Alternatives popped up like github.com/uber-go/zap. Having 3rd party libraries like that one to fix Go is a good indication of a bad language. Another interesting library is fasthttp.

>performance
We were talking about type safety - you're moving the goal post now.
This has nothing to do with Go having strong typing.

It's quick handy logging. If you want it fast - use plain Write or the third-party libraries you mentioned yourself. Where is the problem with the language here?

>We were talking about type safety - you're moving the goal post now.
Oh right, performance isn't important. Good thing, Go has shit performance.
How can you even consider interface{} to be remotely safe?

That's a funny way of spelling clojure.

Go is "safe by default".
Go just lets you fuck yourself in the ass if you're into that sort of thing, but most people aren't likely to do something unsafe on accident.

>Oh right, performance isn't important. Good thing, Go has shit performance.
Fuck off, you failed in arguing your point of type safety and are now bringing up performance in some idiotic attempt to "win the argument"

>Go has shit performance.
Go actually has pretty good performance.

>How can you even consider interface{} to be remotely safe?
It's not but no one makes you use it if you don't want to.

But it's useful at times. How else would you do a print function that can take any random object of every possible type without some kind of void pointer/empty interface/Object?
Generics won't help you there.

And again, how often do you get run time errors while using Print that aren't OS errors while writing to the stream? It's a none-problem.
And you can even completely avoid using it ever - just use io and strconv.

kys

>switching the goalpost
you are a fucking idiot

stop embarrassing yourself

I'm not but I'm siding with them; you failed to argue your point and now you're acting like a 9 year old. Accept it gracefully and learn something, unless you have a valid rebuke.

> try out a go demo
> change the source code a little bit
> line up matching braces in the same column
> get an error
> into the trash it goes

For fuck's sake, when will they learn to stop treating whitespace as semantically significant?

You minunderstood. It's not that Go is inherently evil
just kidding, it is one of the worst languages out there

>Why not just accept a []T?
...he doesn't know

I am in love with the syntax, standard formatting, documentation system, and build system, I don't want to use anything else anymore unless I have to.

>mad that people treat whitespace as significant
>refuses to use the language because of own whitespace preferences
middle lel

>whitespace significant
ayyy

>Syntax specification: Just do whatever makes you feel special, no need to worry about other readers or drawing inside the lines!

t. brown person

go sucks

>code literally taken from official tutorial
>if you write Go like that

Why is the logo so fucking stupid

>Swift

Apple fag?

>ITT: viral media campaing by google shills

My fucking sides! I guess they don't call you gotards for nothing.

>without segfaulting all over the place,
Actually, that's precisely the opposite experience that I've had with go. For example, if you make stdout readonly, it will segfault when trying to write. This doesn't happen in other modern languages.

Though the common failure case, I find, isn't in segfaults but rather in something breaking and a stacktrace popping up. I don't know of a production go program that doesn't do that all over the place so it's not like it's caused by my inexperience, I think.

You can remove the stacktrace with build flags, but nobody does it because it's useful.

It's useful to never handle any of the billion errors that happen in production code? I doubt it.

Why go mascot is so retardet?
Python have nice snake
Ruby have fucking ruby
C/c++/c# have letter so you know what it is
Java have nice coffe
And go have fucking faggot blue retardet hamster

>interface{}

go .... you have a .... (((go)))pher

What were you using before?

The empty interface object is powerful and every modern language has an equivalent. The only people who complain about it are people too dumb to understand how interfaces work.

Might as well be upset about C for having functions. That's literally how stupid you sound.

now, gotta put something else to the top then instead

fuck man I'm really mad at computers right now

underrated post

This desu senpai

Try Reddit if you want post ratings.

Is the Gopher a Jew or something?

>Writing malware on macOS
>GOOS=windows GOARCH=386 go build
>lostboy.exe

Had me at that cross compile son.

goypher

>he doesn't like freedom

Hahaha, oh shit..


I agree with both of you.

Writing Go is a lot of fun, but there are a few reasons I don't use it:


1. Go channels are a very good idea and easy to use, but they are not powerful and clean enough. Especially for more complicated stuff.

2. Coding everything by yourself is tiresome. I think it is just a little bit too powerless to be useful.

3. The missing functional capacities. A modern language without even a simple each/filter/map/reduce is just broken by design IMHO.


Just compare this (about 300 LOC, 10 package imports)..
>github.com/darkjh/go-mapreduce/blob/master/mapreduce/mapreduce.go

..with something like Ruby:
(1..10).map{|i| i**3 }.reduce(:+)

I don't even need Ruby's playful syntax or all the meta programming. But why can't we have a reasonable middle ground?

A language with the performance of Go, but where you don't have to code EVERY trivial task by yourself?!?