A stupid language made for JS devs, i'm not joking, building an API with it is easy
appeal to authority
marketed as moron-proof
This. Normies managed to bundle it with C, C++ and Rust because they are incapable of understanding one level of abstraction lowere.
If they were, they would know how shit go actually is, the only thing it did right is copying elixir's csp.
No one admits that the actual high-level alternative is C# because it lets you match C++ performance when you need to, and doesn't bother you when you are ok with being within 80% of margin of that.
>A stupid language made for JS devs, i'm not joking, building an api with it is easy
IT'S CALLED A WEB SERVER
YOU DON'T "BUILD AN API", YOU BUILD A FRICKING WEB SERVER
JESUS FRICKING CHRIST I HATE WEBSHITS
>hurr durr I have no reading comprehension
Black person WHY WOULD HE MENTION JS DEVS IF HE MEANT ANYTHING ELSE THAN "WEB API" WHICH IS A NAME FOR THE INTERFACE OF THE WEBSERVERS?
YOU DON'T "BUILD AN API" WITH A PROGRAMMING LANGUAGE
YOU *DESIGN* AN API WITH A PROTOCOL
YOU *BUILD* A WEBSERVER THAT IMPLEMENTS A PARTICULAR API BASED ON A NETWORK PROTOCOL
HOLY SHIT IQfy HAS GONE TO SHIT DO I REALLY HAVE TO EXPLAIN THIS STUFF?
2 weeks ago
Anonymous
>YOU *DESIGN* AN API WITH A PROTOCOL >YOU *BUILD* A WEBSERVER
this, I use Huma to implement OpenAPI v3.1 and it's really comfy
This. Normies managed to bundle it with C, C++ and Rust because they are incapable of understanding one level of abstraction lowere.
If they were, they would know how shit go actually is, the only thing it did right is copying elixir's csp.
No one admits that the actual high-level alternative is C# because it lets you match C++ performance when you need to, and doesn't bother you when you are ok with being within 80% of margin of that.
Good tooling and performance. Back in 2015 profilers, formatters, compilers etc were complete crap. C# and Java were also insane memory hogs, even more than today. Go programs used 1/10th the ram of other ones.
basically the same reason python is popular: you can learn it in a day, you dont waste any time fighting the language
but unlike python, its compiled and fast
so its like python but more suitable for robust, fast production level code (the error handling system also helps on this point)
it has the best built in concurrency of any language except maybe erlang
has a lot of good libraries and a good package management system
also a lot of people now are trying to move away from strict OOP
from my own experience, writing Go is quite enjoyable
>you dont waste any time fighting the language
No, that's exactly what many people end up doing. Go is actually quite opinionated. Writing Go well takes a good introduction and a willingness to abandon some old habits that were never perceived to be a problem. However, from the common criticism I can gather that many of these old habits were indeed always bad. To name a few >cyclic dependencies >unchecked exceptions >deep call stacks
Such things can create a lot of friction when learning Go and make it easy to blame the language.
>dont waste any time fighting the language
Programming in Go is 90% "fighting the language", among the heavily-shilled languages on IQfy only Rust is worse.
>I'm a google worshiper, and believe in the go scripture. >I believe that whatever faults people point out in the scripture is actually their fault not the scripture's. >I also like it when god google positive-enforces me and tell me I'm not moronic and my code is super.
The fact that every pro mentioned by others here originated as a Google talking point, and not as an independent conclusion made by competent and informed people who know multiple languages targeting the same space, tells you everything you need to know.
On the subject of targeted space. This reminds me of how Google tried to market go as a system programming language.
And when this became too big of joke (and it was no easy feat making the go team feel embarrassed, trust me), they pivoted with an infamous s.
What infamous s, you wonder?
It's the s added after system.
So, go is perfect for "systems programming".
Again, systemsss programming, not system programming.
And the sheeple gobbled it all up!
At that time, the crazy, and moronic in its own right, shit projects like docker had to do to overcome go moronations was the undisputed #1 code comedy sub-genre. Good times.
>Go bad because people like it for what it was marketed for >go bad because marketers oversold one aspect of the language
Man what a NPC take. Go is just nice. You don't write a lot of boiler plate. You don't need to manage memory it is not an interpreted language. It has cross platform support by default and you only have issues on some niche things. A good ecosystem with plenty of libraries. My only real nitpick with it is that it's a tad too opinionated about styles and not being able to compile with unused important is annoying.
>I think language is low boilerplate because my code monkey task is largely covered by std and I lack the ability to recognize that the abstractions the language offers range from shit to non-existent.
>std bad >everyone else's abstractions are all terrible
I like C as much as the next guy, but the almost nonexistent std is a huge failing. I don't want to have to use some random guys std or waste a bunch of time writing my own just to get started on making projects. Go's performance relative to other languages goes against your claim that the abstractions are terrible. If they were so bad why does go perform so well?
>I think language is low boilerplate because my code monkey task is largely covered by std and I lack the ability to recognize that the abstractions the language offers range from shit to non-existent.
>Name a specific thing you dislike about go.
not them but I dislike the error handling and how libraries are imported
but I do like all CLI tools built with it
>I dislike the error handling
what is there to dislike about it you dumb fricking Black person
2 weeks ago
Anonymous
typical IQfy user: >there are exceptions
UGH... EXCEPTIONS?... ARENT THEY SLOW AND CRINGE??? >there are no exceptions
UMMM... WTF... CHECKING ERROR VALUES... GROSS...
2 weeks ago
Anonymous
Golang has both
2 weeks ago
Anonymous
go has no exceptions
2 weeks ago
Anonymous
It has exceptions, moron
2 weeks ago
Anonymous
show me the documentation for them
thank you in advance!
>not them but I dislike the error handling
What do you dislike about it? I think it's cool. Try catch blocks are much uglier.
>a specific thing
Enums or, rather, the lack thereof. Sure, I use int (and string) "enums" all the time in Go but they're really not very ergonomic.
Also, Go really forces an imperative approach to many things where a functional solution would be cleaner and more intuitive. Believe me I have tried to fight Go in this regard but it rarely works well. The stdlib way of sorting slices is an obvious example, while the others I'm thinking of right now are more subtle.
This brings me to the syntax for function literals which sucks for lambdas and really limits their usefulness when the syntax obfuscates things more than whatever clarity you might gain from the better solution. Sure, call it a deliberate design decision because it avoids some "clever" code. I still don't like it.
> Enums or, rather, the lack thereof. Sure, I use int (and string) "enums" all the time in Go but they're really not very ergonomic.
What's unergonomic about const a = iota?
What else do you need?
2 weeks ago
Anonymous
>What's unergonomic about const a = iota?
Nothing about that in particular. But it's still too easy to get in unwanted values via constants.
Where it gets awkward is when you want to have somewhat equal definitions on both sides of an API with typescript on the other end. Then you can either define all the MarshalJSON, UnmarshalJSON with switches and catch null and whatnot, or use string constants instead where the zero value will likely frick you up sooner or later. The fun continues if you want to write them to a database.
Granted, this is code you write once and the forget about it and I'm not sure which languages actually handle it better. Still, it feels wrong to have hundreds of lines of boilerplate code for de-/serializing the various enums in your codebase.
>a specific thing
Enums or, rather, the lack thereof. Sure, I use int (and string) "enums" all the time in Go but they're really not very ergonomic.
Also, Go really forces an imperative approach to many things where a functional solution would be cleaner and more intuitive. Believe me I have tried to fight Go in this regard but it rarely works well. The stdlib way of sorting slices is an obvious example, while the others I'm thinking of right now are more subtle.
This brings me to the syntax for function literals which sucks for lambdas and really limits their usefulness when the syntax obfuscates things more than whatever clarity you might gain from the better solution. Sure, call it a deliberate design decision because it avoids some "clever" code. I still don't like it.
>No built way to sort an array (until like go 1.20) >Loop variables are captured by reference, which isn't obvious until you've hit the problem (I think this is getting fixed in the next release) >The way date formatting works, why the frick didn't they just copy strptime? >Appends semantics are FRICKING moronic >No enums >Dumb error handling >Every code base I've ever worked with uses a mix of channels and shared memory, which leads to race conditions
I can do anything in JavaScript, even 3d games. But I started to realise maybe doing everything in JavaScript is not the best. I want to make GUI apps, should I learn GO or continue doing JavaScript for everything?
for guis? well, two ways
JS you have electron. it wants a lot of ram but is overall good
there are no good GUI framerworks for Go. If anything you are left with Qt for C++ or GTK for C
People copying Google, uncommonly good tooling at the time it came out. That's kind of it.
>nocoders or rusttroons, call it
gotard being smug.
that's a new one.
A stupid language made for JS devs, i'm not joking, building an api with it is easy
I've never used Go, only JavaScript, Python, Lua and C.
>A stupid language made for JS devs, i'm not joking, building an api with it is easy
IT'S CALLED A WEB SERVER
YOU DON'T "BUILD AN API", YOU BUILD A FRICKING WEB SERVER
JESUS FRICKING CHRIST I HATE WEBSHITS
Do you understand what API stands for?
Yes, but making an API that is only accessible over HTTP[S] means you're making a webserver.
and what is the wevserver running? my API
>hurr durr I have no reading comprehension
Black person WHY WOULD HE MENTION JS DEVS IF HE MEANT ANYTHING ELSE THAN "WEB API" WHICH IS A NAME FOR THE INTERFACE OF THE WEBSERVERS?
YOU DON'T "BUILD AN API" WITH A PROGRAMMING LANGUAGE
YOU *DESIGN* AN API WITH A PROTOCOL
YOU *BUILD* A WEBSERVER THAT IMPLEMENTS A PARTICULAR API BASED ON A NETWORK PROTOCOL
HOLY SHIT IQfy HAS GONE TO SHIT DO I REALLY HAVE TO EXPLAIN THIS STUFF?
>YOU *DESIGN* AN API WITH A PROTOCOL
>YOU *BUILD* A WEBSERVER
this, I use Huma to implement OpenAPI v3.1 and it's really comfy
appeal to authority
marketed as moron-proof
This. Normies managed to bundle it with C, C++ and Rust because they are incapable of understanding one level of abstraction lowere.
If they were, they would know how shit go actually is, the only thing it did right is copying elixir's csp.
No one admits that the actual high-level alternative is C# because it lets you match C++ performance when you need to, and doesn't bother you when you are ok with being within 80% of margin of that.
Good tooling and performance. Back in 2015 profilers, formatters, compilers etc were complete crap. C# and Java were also insane memory hogs, even more than today. Go programs used 1/10th the ram of other ones.
>bopular?
At the price of some stupidity, you get a lot of sanity. These days, that's a good value proposition.
basically the same reason python is popular: you can learn it in a day, you dont waste any time fighting the language
but unlike python, its compiled and fast
so its like python but more suitable for robust, fast production level code (the error handling system also helps on this point)
it has the best built in concurrency of any language except maybe erlang
has a lot of good libraries and a good package management system
also a lot of people now are trying to move away from strict OOP
from my own experience, writing Go is quite enjoyable
>also a lot of people now are trying to move away from strict OOP
good, oop is fricking dogshit
>you dont waste any time fighting the language
No, that's exactly what many people end up doing. Go is actually quite opinionated. Writing Go well takes a good introduction and a willingness to abandon some old habits that were never perceived to be a problem. However, from the common criticism I can gather that many of these old habits were indeed always bad. To name a few
>cyclic dependencies
>unchecked exceptions
>deep call stacks
Such things can create a lot of friction when learning Go and make it easy to blame the language.
>dont waste any time fighting the language
Programming in Go is 90% "fighting the language", among the heavily-shilled languages on IQfy only Rust is worse.
if you're fighting go your architecture is shit and you're a shit programmer
>I'm a google worshiper, and believe in the go scripture.
>I believe that whatever faults people point out in the scripture is actually their fault not the scripture's.
>I also like it when god google positive-enforces me and tell me I'm not moronic and my code is super.
It was made by old white men who invented unix
Concurrency model, ease of use, good development speed to runtime speed ratio
It's pretty good but I refuse to use a Google product. They have a really bad habit of abandoning projects.
The fact that every pro mentioned by others here originated as a Google talking point, and not as an independent conclusion made by competent and informed people who know multiple languages targeting the same space, tells you everything you need to know.
On the subject of targeted space. This reminds me of how Google tried to market go as a system programming language.
And when this became too big of joke (and it was no easy feat making the go team feel embarrassed, trust me), they pivoted with an infamous s.
What infamous s, you wonder?
It's the s added after system.
So, go is perfect for "systems programming".
Again, systemsss programming, not system programming.
And the sheeple gobbled it all up!
At that time, the crazy, and moronic in its own right, shit projects like docker had to do to overcome go moronations was the undisputed #1 code comedy sub-genre. Good times.
>Systems SS programming
Go should really market on that
>Go bad because people like it for what it was marketed for
>go bad because marketers oversold one aspect of the language
Man what a NPC take. Go is just nice. You don't write a lot of boiler plate. You don't need to manage memory it is not an interpreted language. It has cross platform support by default and you only have issues on some niche things. A good ecosystem with plenty of libraries. My only real nitpick with it is that it's a tad too opinionated about styles and not being able to compile with unused important is annoying.
>std bad
>everyone else's abstractions are all terrible
I like C as much as the next guy, but the almost nonexistent std is a huge failing. I don't want to have to use some random guys std or waste a bunch of time writing my own just to get started on making projects. Go's performance relative to other languages goes against your claim that the abstractions are terrible. If they were so bad why does go perform so well?
Because it is a valid python replacement.
Python is cancer
where is rule34?
It's easy to get a demo of anything running without writing 2000 lines of boilerplate.
>I think language is low boilerplate because my code monkey task is largely covered by std and I lack the ability to recognize that the abstractions the language offers range from shit to non-existent.
Is it easy to learn this as your first programming langauge?
Yes.
Name a specific thing you dislike about go.
>Name a specific thing you dislike about go.
not them but I dislike the error handling and how libraries are imported
but I do like all CLI tools built with it
>I dislike the error handling
what is there to dislike about it you dumb fricking Black person
typical IQfy user:
>there are exceptions
UGH... EXCEPTIONS?... ARENT THEY SLOW AND CRINGE???
>there are no exceptions
UMMM... WTF... CHECKING ERROR VALUES... GROSS...
Golang has both
go has no exceptions
It has exceptions, moron
show me the documentation for them
thank you in advance!
>not them but I dislike the error handling
What do you dislike about it? I think it's cool. Try catch blocks are much uglier.
> Enums or, rather, the lack thereof. Sure, I use int (and string) "enums" all the time in Go but they're really not very ergonomic.
What's unergonomic about const a = iota?
What else do you need?
>What's unergonomic about const a = iota?
Nothing about that in particular. But it's still too easy to get in unwanted values via constants.
Where it gets awkward is when you want to have somewhat equal definitions on both sides of an API with typescript on the other end. Then you can either define all the MarshalJSON, UnmarshalJSON with switches and catch null and whatnot, or use string constants instead where the zero value will likely frick you up sooner or later. The fun continues if you want to write them to a database.
Granted, this is code you write once and the forget about it and I'm not sure which languages actually handle it better. Still, it feels wrong to have hundreds of lines of boilerplate code for de-/serializing the various enums in your codebase.
>a specific thing
Enums or, rather, the lack thereof. Sure, I use int (and string) "enums" all the time in Go but they're really not very ergonomic.
Also, Go really forces an imperative approach to many things where a functional solution would be cleaner and more intuitive. Believe me I have tried to fight Go in this regard but it rarely works well. The stdlib way of sorting slices is an obvious example, while the others I'm thinking of right now are more subtle.
This brings me to the syntax for function literals which sucks for lambdas and really limits their usefulness when the syntax obfuscates things more than whatever clarity you might gain from the better solution. Sure, call it a deliberate design decision because it avoids some "clever" code. I still don't like it.
Doesn't go use merge sort for their sorting algorithm?
>No built way to sort an array (until like go 1.20)
>Loop variables are captured by reference, which isn't obvious until you've hit the problem (I think this is getting fixed in the next release)
>The way date formatting works, why the frick didn't they just copy strptime?
>Appends semantics are FRICKING moronic
>No enums
>Dumb error handling
>Every code base I've ever worked with uses a mix of channels and shared memory, which leads to race conditions
Cute frickable mascot.
I'm no programmer, but I think that it might be succesful because it's logo is cute! Think about it anonette!
Mascot looks like a blue onahole
Because Google shoved it down everyone's throat. In a few years people will stop using it the same way people realizes Microservices are bullshit.
please be true
I can do anything in JavaScript, even 3d games. But I started to realise maybe doing everything in JavaScript is not the best. I want to make GUI apps, should I learn GO or continue doing JavaScript for everything?
for guis? well, two ways
JS you have electron. it wants a lot of ram but is overall good
there are no good GUI framerworks for Go. If anything you are left with Qt for C++ or GTK for C
comfy error handling
excellent generic implementation
goroutines
tiny executables
strong corporate backing
great speed
excellent memory management
less troons using it
it took c and made it modern and good. the other popular languages python, js, java are complete shit in their own way.
its not meant to replace c
its more like a java replacement after everyones become sick of OOP and bloat
Why doesn't Go have explicit threads or async support?
os threads suck and async is just poor mans threading
Go, Odin, Python are my holy trinity. They just werk. They are Blazingly Fast except python. And are less troony in general.