Can anyone explain this to me? I work with a guy who's pushing this hard...

Can anyone explain this to me? I work with a guy who's pushing this hard. I'm a PHP dev and it kinda scares me because he's built some pretty neat shit with it in a short amount of time. Where do I even begin to learn this?

Attached: flat,550x550,075,f.u4.jpg (458x550, 22K)

Other urls found in this thread:

github.com/ksimka/go-is-not-good
youtube.com/watch?v=bmZNaUcwBt4
en.wikipedia.org/wiki/ICFP_Programming_Contest
twitter.com/NSFWRedditVideo

They have a tutorial on their website: a tour of go. It's an easy language to learn, and easy to develop performant code quickly. You could make a static file server in 5 lines of code.

it's trash, don't even bother

github.com/ksimka/go-is-not-good

Watch this first, then make your decision.
youtube.com/watch?v=bmZNaUcwBt4

its somehow more of a toy than python, and an outdated toy at that.

I think you're just ignorant.

>I'm a PHP dev and it kinda scares me because he's built some pretty neat shit with it in a short amount of time.
Go is a shit language, but basically anything is better than PHP. He's working faster because he isn't using a tool that's literally designed to enable incorrect code to run.

See You can write shit code (and you probably do) in any langauge. Go is just more forgiving. Be an engineer, not a "coder."

Ignorant of all it's missing features or of its outdated syntax?
I've had to write a few servers in Go and the experience is counter productive. The assumptions about project layouts is nonsensical. The constant repetition because no generics. The antiquated C style OO model which is just syntactic sugar for passing structs. The simple, but limited concurrency model which railroads you into certain design patterns.
No thanks, I'd rather write my servers in almost anything else.

...

And don't even get me started on the useless type system. Why even have strong typing when your type system is so limited.
Oh, and no enums is fucking laughable. Even C has these, how are they not in this pile.

Only awful engineers willingly use bad tools. And if you can't recognize a tool is bad, then that's your own shortcoming.

Because you're encouraged to write encapsulated code, using simple interfaces to use your objects.

Only awful engineer can't use tools, even for intended purposes.

There is no virtue in using a Chinese dollar store hammer when an Estwing is a few dollars more and won't break on you after a couple of uses.

There is a point in using chinese dollar store hammer if that's all you need. There is no need to overpay someone to make a shittier version something that already exists.

Not having enums encourages requiring the use of magic numbers on your interfaces. I can understand the lack of them in a weakly typed language where everything is a clownshow anyway, but there's really no excuse for Go to not have them. Same with generics. It's a missing feature and that's that.

>stuck in 70s
what the hell does that even mean? does that mean it's written by white people that understand the underlying hardware they're creating software for? sign me up.

>You can write shit code (and you probably do) in any langauge.
Yes, but in PHP, writing shit code is mandatory because everything is as inconsistent as possible.
>Be an engineer, not a "coder."
A poor craftsman blames his tools, but a terrible craftsman willingly chooses to use shit tools instead of good ones.

It uses C syntax without actually running close to anything like C is (garbage collected, runtime implemented scheduler, etc.).
Basically a shitty Java or C#.

It means it was designed as if we learned nothing since then. Other than the plague of dynamic languages people keep insisting on using when writing serious software, we've come a really long way from the languages of the 70s.

You don't use magic numbers, you use global variables or embed them in your objects. interfaces hide implementation details. Keep it simple, stupid.

Not him, but go has a C-like syntax.

>A poor craftsman blames his tools
That's what you're doing

>but a terrible craftsman willingly chooses to use shit tools instead of good ones.
An even worse craftsman doesn't know how to use his tools and is likely to blame his tools.

>not passing string "OptionA" and then parsing it
Lol, imagine

go flags make this easy. There are 3rd party packages that make this even easier.

>An even worse craftsman doesn't know how to use his tools and is likely to blame his tools.
The worst ones can't see why a tool is bad

>3rd party packages
Why do you need a 3rd party package for a Enum? What kind of retarded language do that?

Go is meme. Stick with PHP if you want to make it to the next 20 years.

The worst craftsman of all, egotistically proclaims himself the best, casts all others as "bad" because they don't share his flawed opinions.

Go flags are used to parse arguments from the terminal. See my post above if you think you need enums.

Enums allow static checking of values. If you have a data transfer object going between a client and server, it's beneficial to know that each side only uses options the other side can handle, and that all possible options are handled. Enums are just another quality of life feature missing from the language. Purposefully not including features known to reduce a developer's cognitive load is bad design. You will make a typo in your magic value some day, you will wish you had a feature as absolutely dead simple as enums.

You're not getting it. Make the changes you need to when using your objects, then pass it an interface. The interface will do the work for you. Educate yourself before you speak on a subject.

This isn't type checked at compile time, which is why you use enums to begin with.

I sincerely think you don't know what you're talking about.

Go is the ultimate pleb filter, I refuse to write in anything else now. I'm sure Jow Forums knows better than Ken fucking Thompson about what makes a language good.

>>not passing string "OptionA" and then parsing it
>Lol, imagine
Imagine being so retarded that you think this is a remotely sensible solution.
Hint, checking a bit is much faster than a string comparison at runtime.

He's talking about about flags and configuration. Take it down a notch, autismo.

Trips of truth.

Go is for programmers who want to pretend they are writing in C, but don't actually know how to write good programs in C.

No, go is systems programming language. It do alot of what C used to be used for. I love C and I even "think" in C, but go is just better and faster for producing solutions. If you like C, then good for you.

What advantages does Go have over C besides garbage collection and coroutines?

>checking a bit is much faster
>he thinks that enums are a bit long and not a minimum byte long

Attached: 1543352416585.jpg (600x536, 81K)

>he thinks that flags are a byte long
>doesn't realize you can check 8 of them in one cycle.
sucks to be a brainlet

Attached: 1552451611170.jpg (842x699, 61K)

What the fuck. This has nothing to do with enums. The primary use of enums is to strongly type a class of values. You're talking about IoC or dispatch. The fact remains that something needs to determine how to handle a magic value, which often needs to be an int for performance reasons. You will end up writings more code than necessary (story of Go) to ensure you have the values handled correctly in all the possible places. Alternatively, you could use a sane language that fucking has enums.

Go is not a systems language. It's a language specifically designed so Google can train monkeys to write it somewhat effectively with only a few months of training. It lacks big boy features in order to keep codebases uniform even when many novices are shitting all over it.

He probably knows that, but an enum can be a bitfield in many languages.

I didn't know googlers astroturfed Jow Forums

>doesn't realize you can check 8 of them in one cycle.
>one cycle
what about all that ANDing and CMP stuff, that takes one cycle?

simplicity, oop, compile/deployment time, code reuse/sharing, comprehensive standard library, community, crossplatform dev w/ using ugly macros, etc.

>(s)he thinks a single CISC instruction is one cycle

>Go is not a systems language
Yes it is.

>Go is a systems language
>Garbage collected with a runtime
>Systems language

Attached: 1549566142617.jpg (200x250, 12K)

Nice try, shill.

>systems != embedded
>even_retarterer.jpg
The go gc takes like 2ms to clean up

> oop,
kek
> code reuse/sharing,
by reuse you mean copy-pasting because no generics
> community,
echo-chamber of google rats
> crossplatform dev w/ using ugly macros, etc.
because it's not a systems language and all of the platform implementation details are hidden/handled for you by the runtime

C# and Java are both faster than Go at many things (and neck and neck at other things), they have much stronger tooling and communities, and actually have really nice feature sets (especially C#). If Go wasn't GC'd it would surely occupy a valid niche, but instead it's just a well marketed but inferior version of the shit we've already had for 20 years.

Go is trash because it's made by (((Google)))

>Flawed opinion
>Buuut muh Go is good, it doesn't need Enums or Generics cuz idiots at Google can't properly code

Be honest with yourself, Go Should have those things, even if they are not perfect. Look how many people rely on that feature to make their code good. Having an "easier C" is a bad excuse for not integrating those features.

>Hur dur you want to force me to think like you
I really don't care what you use at the very end. Just don't be blind believing that Go did good throwing features just because. Just don't yourself and your team on the foot

Actually it has sub millisecond latency.

The only time the GC is an issue is when you don't have heap space to spare.

>because it's not a systems language and all of the platform implementation details are hidden/handled for you by the runtime
>I write ugly, hacky code. That's what makes a systems language.

>C# and Java are both faster than Go at many things
Like What? Also, Go has the best gc out there.

Golang is for fucking retards. Stick to Python/JS/C++.

Attached: 1531830913546.png (725x1511, 213K)

>gr8 b8 m8

We need a programming language for children, women, non-whites, mentally retarded people.
Not everyone can do C++.

>Watch this first, then make your decision.
eh? taking advice from a woman? lol'd. nice try kid. go slurp some moar onions.

How is it b8? The creator of the language himself said it's intended for people too stupid to grasp Java.

Attached: cpp.jpg (1750x463, 192K)

It's intended to get fresh out of school vs cs graduates pumping out code. Not great code, mind you, but working, performt code.

>[C++] certainly has its good points. But by and large I think it's a bad language. It does a lot of things half well and it’s just a garbage heap of ideas that are mutually exclusive. Everybody I know, whether it’s personal or corporate, selects a subset and these subsets are different. So it’s not a good language to transport an algorithm—to say, "I wrote it; here, take it." It’s way too big, way too complex. And it’s obviously built by a committee. Stroustrup campaigned for years and years and years, way beyond any sort of technical contributions he made to the language, to get it adopted and used. And he sort of ran all the standards committees with a whip and a chair. And he said "no" to no one. He put every feature in that language that ever existed. It wasn't cleanly designed—it was just the union of everything that came along. And I think it suffered drastically from that.

Ken Thompson; cited inSeibel, Peter (2009).Coders At Work. p.475.

Go is shit. No generics, no ecosystem as large as java, stupid error handling

HOWEVER
Go is leagues better than PHP and the reason your coworker is beating you in productivity is because Go is actually a programming language, not a crippled mutant like PHP. He is also beating you because he is a dev that isn't afraid to try out new things and learn, you on the otehr hand are a fossil that gets scared of a fucking programming language made for lowest common denominator dev.

your coworker is shit, but you are even more shit.
>PHP in the year 2019
just kek, really.

The fact remains that the very best programmers continue to choose C++ to write serious software.

They have no alternative, besides Rust which is a joke but will still likely end up taking a good chunk of them

Can someone give me a source that Google specifically made golang for code monkeys?

>And he sort of ran all the standards committees with a whip and a chair. And he said "no" to no one.
That makes zero sense if you're just piling everything in. If you look at what is getting piled into C++ today, it looks like it's trying its hardest to ape C# and the good stuff from FOSS languages. C++ is long overdue to fix the shitmess that is linking and get a proper package manager.

Attached: 1259211016158.jpg (1205x881, 61K)

Well you see OP,
when a language is an utter abomination and useless in nearly all circumstances, it becomes a web dev language.
Go is an OK language for web dev, just like all the other OK languages (PHP, javascript, HTML, CSS).

However, unlike what Go-whores would like you to believe. Go is NOT:
> a systems language
> embedded language
> game dev language
> robotics language
> HD language
> scientific language
> general scripting language

Just like all the other OK languages, you could try to use it for these purposes, but like the special needs retards who try to fit a square through a circle, just because you can doesn't mean you should.

Its from Rob Pike, the source is a conference a few years ago iirc.
>
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike 1
>It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical. – Rob Pike 2

>reading things through the context of being a NEET
Out of school graduates have no real world experience. Go allows them to quickly get into software development. You can still write bad code in Go, it's just more forgiving.

Your asshole seems to be located where your mouth should be.

>I don't understand English
He said it's intended for people who don't have time to spend ten years learning all of the edge case behavior of 10% of C++ to write viable C++ in their favorite 10% subset of the language.

"I have spent many years learning the quirks of a bad tool and thus can write decent code with it" != "I am a smart person"

If you think he's referring to C++ or Java when he says brilliant language, you're event stupider than Google's fresh recruits. He's talking about shit like Scheme that has delimited continuations and hygienic macros.

SEETHING gofers

Attached: 1549616978604.jpg (740x960, 106K)

> It's compiled
Dropped.

it's good, all webdevs should move to combined static typed languages for backend

the only valid compliant is no generics, which is getting added in Golang 2. Though, I thought some of these were funny.

>slow json parsing
there's a ton of non-standard JSON libraries that are significantly faster. see: easyjson
>GOPATH is a mess
replaced with gomodules
>has pointers
this is a feature, not a problem
>is compiled
this is a feature, not a problem
>no OOP
Golang is basically OOP, the way you define class methods is just slightly different
>project layout is bad
kinda true
>weird mascot (gopher)
lol
>un-googlable name
just type golang instead of go
>no unused imports
actually not true
>no this
literally javascript baseddevs not understanding pointers
>channels are slow
use a mutex faggot

>Golang is basically OOP, the way you define class methods is just slightly different
Hopefully they handle dynamic dispatch correctly after adding generics. The current model is literally just C-style OO with implicitly passed structs.

>The current model is literally just C-style OO with implicitly passed structs.
Do you know what dynamic dispatch is?

Yes, calling a method on an object without knowing it's class, only the expected return value of the method.
It's pretty basic OO stuff which isn't possible to replicate elegantly in C.

Go has dynamic dispatch.

How can you have dynamic dispatch without generics? It doesn't even make sense.

This post is not even wrong.

retard, neet weeb thinks (s)he is smart because mommy said so.

Based poster

*its

>it's not class-based OOP with exceptions
>like 40x
>I can't change sane defaults and have dozen broken alternatives to everything
>I can't read simple manual
>it has GC
>it has pointers
that list is laughable

Is Breivik working on CS from prison?

If your tool is so complex that no one knows the entire language, including the people who wrote it, then it's clearly more complex than necessary.

>The fact remains that the very best programmers continue to choose C++ to write serious software.
Ha. The very best programmers at the top of the Dunning-Kruger curve.

he's actually right

No, the people working on Google Chrome, GCC, LLVM, Skyrim, the Mars rover, Photoshop, virtually every single big desktop software package (audio, CAD, etc.), military systems, stock exchanges, etc.

There is a contest organized by functional programmers (Haskell, etc.) to show they're the best. Yet C++ has won more than any other language....
en.wikipedia.org/wiki/ICFP_Programming_Contest

It's in a class of its own. It's byzantine for sure, but it's also the fastest and most powerful language ever.

>speed programming means it's the best
This is one of the reasons why C++ programmers suck.
>the people working on
Doesn't mean jack shit. If they used a better language maybe all of those things would have sucked a lot less.
>military systems
Ada

You have to be extremely ignorant to think that everyone working on the most complex projects aren't using C++

If you know C you already know Go

That doesn't mean it's the best. In fact, whatever language is used the most sucks by definition.
>complex project
>lots of people
>must cater to lowest common denominator
For a big project, what languages you can hire bottom of the barrel for matters the most. So yes, in that sense C++ is the best language, you'll always have programmers available.

The researchers at CERN who discovered the Higgs Boson used ROOT, which is written in C++.
Do you think those people are the bottom of the barrel as well?

All those experts, in many fields, choose C++ because it's by far the most powerful language ever, as ugly as it might be.

>implying knowing C means knowing how to develop with 2nd gen CSP

Oh fancy 1960s technology you have there

C++ is also the hardest language to use