Why do you hate Go?

Why do you hate Go?

Other urls found in this thread:

golang.org/doc/faq#exceptions
benchmarksgame.alioth.debian.org/u64q/go.html
dave.cheney.net/2015/06/13/listen-up
github.com/rust-lang/rust/pull/25640
github.com/rust-lang/rust-buildbot/issues/2
contributor-covenant.org)
archive.is/dgilk
github.com/rust-lang/rust/issues/28059
en.wikipedia.org/wiki/Rust_(fungus)
en.wikipedia.org/wiki/Rust_(programming_language)#History
reddit.com/r/rust/comments/27jvdt/internet_archaeology_the_definitive_endall_source/
svn.cacert.org/CAcert/CAcert_Inc/Board/oss/oss_sabotage.html
twitter.com/CoralineAda/status/702594868984459264
twitter.com/NSFWRedditVideo

botnet language

Lack of parametric polymorphism. Awful error checking.

It has all the drawbacks of C with none of the benefits of C.

I don't.

wrong wrong wrong wrong

>Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java.

>Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, working with Go is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for.

He's right and you know it.

>hire the ""best and brightest"" to work at google
>forced to make a neutered programming language because your best and brightest are actually literal retards with college degrees

More like it has most of the drawbacks of Java without most of the benefits of Java.

slow as fuck

Forced boilerplate literally everywhere. Annoying tooling. Insufferable community.

It's not slow.

>import from github is hardcoded into the language

this is basically leftpad all over again
nice job dating your language spec almost immediately
what happens when someone deletes a repo that thousands of go projects depend on?

>boilerplate

You're either wrong or using this word incorrectly. Go doesn't have any standard boilerplate beyond "package main".

I like Go

Package management is shit though

It's basically Java with a smaller runtime but even less metaprogramming and worse tooling.

> implying package management is a language problem

it kind of is when you have to type go get xyz without any kind of versioning available

It makes programming too easy for normies. Leads to performant and simple software so fucks with my job security

OP didn't say anything about language related issues.

>what is "if err := 0"

There's this wonderful concept called exception handling that apparently the go devs missed out on.

90s: AOT
00s: JIT
10s: interpreted
20s: ?

Why do you like exception handling more than checking errors? Honestly asking.

Inline code that actually does something isn't boilerplate.

There's no consensus on proper error handling or that exceptions are the way to go, many C++ projects actively avoid them, Java added checked exceptions but no one can agree how to use them, Haskell had exceptions that turned vestigial with all the theoretically better alternatives they came up with, Swift and Rust intentionally left them out.

The go developers didn't miss out, they just didn't include features that haven't been proven in the several decades since they were invented.

golang.org/doc/faq#exceptions

This.

Because it's shit.

Because it properly propagates at the point where it happens instead of letting incorrect programs proceed into a completely broken state. It's also significantly less boilerplate to manage them than error codes.

Because of that retarded mascot. My blood boils whenever I see that shit

Same here. I tried getting over it but it turned out the language matched the mascot quite well.

get over it, anime fags

>hire "best and brightest"
>they're just pajeets

that's what happens when you turn your hiring process into a mythical lottery and attract only retards and foreigners whose life goal is to work at google.
Why is their process so stringent?
Not everyone needs to be a chief engineer.
When you work in a large company like google, they put you in charge of a single menu item in one menu on one software project and that's literally the scope of your influence on the project as a whole.

They have college educated losers cleaning toilets for fucks sake.

this basically. cant have people knowing programming is blue collar labor. Better to pretend its some intellectual pursuit to scare off the normies.

because python isn't a thing already

Goroutines suck. Their stacks are too big, defeating the silly idea that you could have zillions of them. Their split stacks implementation was promising, but they scrapped it and started copying stacks all over the place instead of just solving the problems. Asynchronous programming is still retarded.

It's just bad overall. Use it if you're a google intern fresh out of college I guess. That's the target audience.

Appearantly its slower than Java nowadays. Then again the jvm is pretty impressive.

Try Common Lisp's conditions and be enlightened.

The JVM is the best virtual machine implementation available today. Any language that targets it is worth using due to the JVM alone... and then you realize you can interoperate with the mountains of code already written and tested in Java.

Microsoft CLR is great as well.

...

Due to the weird captcha i actually forgot to write my reply

I heard Javas arraycopy is faster than memcpy

As if I even give Go a single thought.

>arraycopy

Sure. Arrays never really overlap; it's a language and garbage collector guarantee.

Memcpy will copy the memory to a temporary buffer to handle the overlapping memory case. the real comparison should be with memove

Huh? benchmarksgame.alioth.debian.org/u64q/go.html

Ah must have missed something. Tbh when i wanted to check earlier that site was down.

>microbenchmarks

>Go
more like

Go die
lmfao

Bad programmers only hate go because new languages scare them and make them feel inadequate.

Good programmers see that Go is the current best language that's the most fun, expressive, and fastest to work with.

Glad to hear that Sup Forums is unanimous on the fact that Go is the most beautiful, cleanly designed language since C.

So Goroutines are more like threads rather than an epoll instance? Why would they do this?

Go. A language developed and invented by a retard who thinks C's flaws are great and C's strengths are useless, all-the-while advocating for the verbosity of java with an even slower vm, because he believes that's what's going to help pajeets keep on being pajeets.

Truly, only people who don't know how to put the poo in the loo can possibly like go.

The binaries are huge. Huge.
I'm not touching it unless they fix this.
They've been trying for a while...

>all-the-while advocating for the verbosity of java with an even slower vm

Go is a compiled language. Opinion discarded.

It does nothing new.

It will not make you a better programmer.

Better off learning Closure or Elixir if you want to get good.

Rust exists.

>Good programmers see that Go is the current best language that's the most fun, expressive, and fastest to work with.

Go is boring as fuck. Literally nothing new or interesting about it. Expressiveness is meh, Java does a better job. Not much faster than Java either, can't really compete with Rust and gets blow out by C in almost all tasks.

Thanks for proving that only retards like go.

>compiled language

Yeah you're stupid enough to not know the difference between language and implementation. Please adopt a trip so I can filter your faggot ass

Go is what Java would be if Java binaries somehow distributed the entire JVM along with them. Of course they're huge.

>u only hate it cuz u dont undrstand

Go kill yourself.

They're more like a thread pool interface. They did it that way because they're all fucking retarded. People actually think you can have millions of these "lightweight" routines without consuming an absurd amount of RAM.

>thread pool interface
a thread pool is when you spawn as many threads as you have cores and you poll events on each thread

that is the most efficient way of doing things (if Go implements it this way)

I saw some Go code importing something from github repos. Apparently this is standard. Can someone explain why this is acceptable?

Last time I checked, a number of goroutines (let's say 100k) will be mapped by the Go runtime onto a much smaller number of actual threads for actual execution.

Their stacks are page aligned. For every virtual memory page allocated by the OS, only one go stack will be present. So, if you have 100k goroutines, then at least 100k virtual memory pages will be allocated. On Linux, PAGE_SIZE is often 4KB by default.

That equals 400 fucking megabytes just for those 100k fucking goroutines. Want one million of them? Better have more than 4 GB of RAM asshole... Cause shit's about to get swapped.

So NOT ONLY do you NOT get the benefits of threads, you incur their stupidly high costs!

Great job faggots...

because modern programming dogma scorns developers who "roll their own libraries" for any reason if a solution already exists

this is why we had the leftpad fiasco where one npm user deleted their account and took down every repo with it because 50,000 software projects had leftpad as a hard dependency

More like hire the """diversity quota""" nignogs then wonder how could you make it easier for them to program.

>modern programming dogma scorns developers who "roll their own libraries"

Good god I really fucking hate those "don't reinvent the wheel" faggots...

But the leftpad fiasco happened because people were stupid enough to depend on a package hosted on some outside repository always being available. They were depending not just on that package, but also on npm hosting it also on the guy's account being valid. It's because JS people are shitty devs who can't see the consequences of the choices they made. This problem doesn't happen with debian packages because they're vastly more competent

>go programmers and advocates

dave.cheney.net/2015/06/13/listen-up

Actual google engineer here, I've been working with go on a project for the last year.
>forced to make a neutered programming language because your best and brightest are actually literal retards with college degrees
Most of the code inside Google is either C++, Java or Python or bastardized version of it.
Most people still make memory management mistakes, yes even the non retarded greybeards, and only a turbo autist would stick with assembly of C instead of trying to create some better tooling.

That being said the amount of fucking retarded college students with reasonable algorithms knowledge but no practical low level experience angers me.

The real issues I have with go are, and the reason why C# is best language are:
> if err := someshit(); err != nil {
> painful to do typed errors
> no decent map function/operator, for loops everywhere
> no fucking generics or templating

Most of the go community seems to be aware of these problems though, they are just taking their sweet ass time to fix them.

>C# is best language

I actually really like C# and CLR, but always felt like it'd lock me into Windows when all my tools target Linux. I hear it's cross platform now. Is that right?

What's the most minimal C# development environment I can setup right now? Do I actually need visual studio?

>why C# is best language
Hello sir, I am a witness of Rust and I would like to tell you the good news.

>lack of proper error handling
>lack of functional constructs
>lack of generics
This is the truth.
If they fix all three, they've won me over and I won't use Java ever again for server code.

My C# experience is from when I was at Microsoft. I've never touched the cross platform stuff.

To me most of the cross platform stuff is high class memetics. VS code seems like a good place to start though.

>sir

jeetpah pls

>poojeets
>christian
pick one

I was scared off by the apparent SJW shit in the community. Most of my personal projects are Windows of embedded, so I don't really need to touch a language like that outside of an enterprise environment.

Go allocates N kernel threads, and then schedules M goroutines on top of those N threads. By M read many more, for M >> N.

>the apparent SJW shit in the community

Please do tell the story

I basically collect open source drama, these should make nice additions to my bookmarks

Most of the lunatics have left because nobody was giving them any attention. The only thing they did was give us bad PR.

You should probably look into the language for embedded programming, I know there are people working on libs for that as we speak. C is still king but if someone has a chance of disrupting that space it's Rust.

Go can't do parallelism.

Only things I remember is some people wanting gender neutral philosophers for the example dining philosopher implementation.

That and the CoC bullshit that nobody ever uses (thankfully).

If you look into the people that wanted it you might find some interesing drama, but i'm not really concerned with these politics, I just like to code in peace and have my PRs merged on technical merits.

Things like this:
github.com/rust-lang/rust/pull/25640
github.com/rust-lang/rust-buildbot/issues/2

The best part about non corporate communities fostering a language is that it doesn't have to be design-by-committee space where everything needs to be sanitized for brand safety. My experience with the rust community was that they voluntarily do this kind of shit, the absolute madmen/women/people/apache attack helicopters.

github.com/rust-lang/rust/pull/25640

God damn this is gold...

>I just like to code in peace and have my PRs merged on technical merits.

Hahaha time to learn the linux kernel work flow then because Github is fucking dying. Seriously.

What was once a 100% horizontal company full of intelligent developers who just worked has turned into a piece of shit full of managers and with a literal SJW troll openly policing projects and developers on their thought crime.

I probably will eventually, I don't really have enough experience with the language to say there is actually anything technically wrong with rust.

I don't.
It's not very good though. better than C, for one/

forced code formatting is autistic as hell

Hi

great project!! I have one observation and a suggestion. I noticed that you have rejected some pull requests to add some good django libraries and that the people submitting thsoe pull requests are POCs (People of Colour). As a suggestion I recommend adopting the Contributor Code of Conduct (contributor-covenant.org) to ensure everyone’s contributions are accepted regarless of their sex, sexual orientation, skin color, religion, height, place of origin, etc. etc. etc. As a white straight male and lead of this trending repository, your adoption of this Code of Conduct will send a loud and clear message that inclusion is a primary objective of the Django community and of the software development community in general. D.

This is incredibly racist on multiple levels.

Here's the full archive with the developer's heroic response.

archive.is/dgilk

That issue was deleted because the owner of the project reported it to GitHub as abuse/racism, and they simply deleted the entire issue since it hurts their agenda.

Java has benefits?

The JVM and multiple mountains of existing code are serious benefits.

>they simply deleted the entire issue since it hurts their agenda.

It was an obvious troll.

github.com/rust-lang/rust/issues/28059

Rust should be renamed to something which does not discriminate against noble metals. Not all metals corrode, such as ruthenium, rhodium, palladium, silver, osmium, iridium, platinum, and gold, and yet they still make significant contributions to society and thus should not be ignored or bullied. Please change the name of Rust to something that does not discriminate against noble metals. This would also conform better to the Code of Conduct:

We are committed to providing a friendly, safe and welcoming environment for all.

you can't make your video games with go

kek
Although, I think Rust was named after the type of fungus.

>Rust was named after the type of fungus.

What fungus is named rust

Quick wikipedia search gives a result...
en.wikipedia.org/wiki/Rust_(fungus)

Also proof it was named after fungus
en.wikipedia.org/wiki/Rust_(programming_language)#History
reddit.com/r/rust/comments/27jvdt/internet_archaeology_the_definitive_endall_source/

SJWs follow this manual to the letter without even realizing it.

svn.cacert.org/CAcert/CAcert_Inc/Board/oss/oss_sabotage.html

>with a literal SJW troll

twitter.com/CoralineAda/status/702594868984459264

This person is employed by the company to troll project maintainers.

>community management and anti-harassment tools

Jesus fucking christ we're paying them to do this now?