Is Golang Still a Successful Programming Language?

  Рет қаралды 13,995

Melkey

Melkey

Күн бұрын

Пікірлер: 100
@MelkeyDev
@MelkeyDev 2 ай бұрын
Subscribe if you want a Gopher
@nexovec
@nexovec 2 ай бұрын
I have a pretty cool gopher plushie my grandmother knitted for me.
@nimgol03
@nimgol03 2 ай бұрын
I'm a Goblin 😆
@esra_erimez
@esra_erimez 2 ай бұрын
I completely agree with you about Go error handling. It boggles my mind that people don't get it. Exceptions were invented to handle errors in constructors for object oriented languages. They never felt right to me.
@umardev500
@umardev500 2 ай бұрын
That's what I think before know Go... After uses Go everyday I love the go error handler that best, it's flexible then any others language
@tomasslavik1119
@tomasslavik1119 2 ай бұрын
I feel like exceptions are just hiding stuff. Golang error handling is explicit and I sometimes feel explicit things make code easy to understand. Longer to read but absolutely clear about "hidden mechanisms".
@snorman1911
@snorman1911 2 ай бұрын
Both have their pluses and minuses. To be fair, a large block of code where I want to handle any failure that comes up (a series of file writes, database operations, etc) looks way cleaner with an exception handler, and doesn't run the risk of someone adding a line of code and forgetting to add yet another error handler.
@sergsergesrgergseg
@sergsergesrgergseg 2 ай бұрын
@@snorman1911 just make a little wrapper
@michaelell389
@michaelell389 2 ай бұрын
Golang is excellent because it's simple enough that an ape like me can write, readable, performant, refactorable code, and we can then crosscompile that code to run on anything.
@einzelltuter2847
@einzelltuter2847 2 ай бұрын
same
@esra_erimez
@esra_erimez 2 ай бұрын
10:11 It is a good thing that comments don't have audio because you'd hear me screaming in agreement with you at the top of my lungs. I wasn't against iterators being implemented but the implementation that they went was is the opposite of Go's own philosophy. They are anything but readable.
@hebozhe
@hebozhe 2 ай бұрын
From a linguistics angle, the supposed syntactic ease of Python is almost completely canceled out by its lexical breadth (think COBOL) and permitted semantic obfuacation (think any dynamic PL).
@lancemax857
@lancemax857 2 ай бұрын
I'll use golang for backend development 9 times out 10.
@dukeofnorfolk1842
@dukeofnorfolk1842 2 ай бұрын
Some guy said it has the best minimum effort to performance ratio
@belkocik
@belkocik 2 ай бұрын
And after 2015 Rob stopped contributing to a golang repo.
@connormc711
@connormc711 2 ай бұрын
And most the contributions have been around optimizing and adding features like generics. Seems like he did a pretty good job :)
@_____case
@_____case Ай бұрын
He was still the TL of the Go project until 2021.
@jamesfitzpatrick9607
@jamesfitzpatrick9607 2 ай бұрын
The adding of iterators and generics I think are a sign of what is to come. The syntax around the iterators is horrible. But that style of nested `func` is used in so many other libraries. The big one we are currently using is `lo`, and it makes the code so hard to read. But I had this though a year ago before the iterators and generics where there. It is a young language. By the time it is as old as java, python, javascript what feature will be added to it. Will it still be able to say it is a simple language? I don't think it will.
@austinraney
@austinraney 2 ай бұрын
This reads as reactionary. Sure, iterators seem a little daunting at first glance, but after playing with them a bit, I think they are another example of the go team balancing performance and complexity in an extremely elegant way. Try implementing an iterator for a type instead of writing function that returns an iterator and I think that will at least make it click faster. But how? Go could not have introduced iterators using an interface (e.g. Next() (int, T)) b.c. that would have broken backwards compatibility. Code out in the wild could conform to the iterator interface but be completely oblivious to their existence. This is a huge problem and made it a non-starter. Plus, the interface design has really poor performance and lacks clear iterator clean up semantics.
@jamesfitzpatrick9607
@jamesfitzpatrick9607 2 ай бұрын
@@austinraney If what I said was reactionary, it was not meant to be. I agree an interface would have being far nicer but breaking backwards compatibility is a non starter. I not going to pretend I know how that would have affected performance, but your not the first person I heard saying that so I will take your word. No clear iterator clean up semantics sounds like the language was not designed to have iterators. My argument is Go is still a young language at 15 years old and the adding of iterators and generics have made it more complicated. What other features will get added to Go by the time it is the same age as Java (29 years) and will we still be able to say it is a simple language. It's my belief that we will not be able to say it. Over the next decade the language will grow in features making it more complicated. Will it still be simpler than today's Java, I would say yes. But will it be simple, I don't think so. One other issue I see which I am not fully sure which side I am falling on yet, is the calling the language a batteries included language. Don't get me wrong I love the standard library, I love the idea of batteries included languages, but what other languages are know for this, Python. Currently Python is trying to remove dead batteries from the standard library for many reasons. There will be a day when Go will need to do the same thing. This is a problem which comes with age, and I am not sure if this is a real problem, but when people try sell Go based on the batteries included argument I am hesitant.
@hamm8934
@hamm8934 2 ай бұрын
I'm classing it now: options are going to come to Go before the end of this decade. Requests for options to me seem as prevalent as requests for requests used to be. People really dont like go's error handling (whether that's justified or not).
@Bob-1802
@Bob-1802 Ай бұрын
@@jamesfitzpatrick9607 And Python is adding new more complex batteries, just to satisfy professionnal programming. Its original philsophy was simplicity (can't remember when I heard that before 🤔🤭) for script purposes, not a full fledge language like Java. It seems that most popular programming languages are facing the same fate, trying to make everybody happy. Go is facing the same thing.
@oleksiistri8429
@oleksiistri8429 2 ай бұрын
1:33 true, that is why i chose go for my project - simplicity!
@bpo217
@bpo217 2 ай бұрын
@MelkeyDev I think I remember you saying somewhere mid video that you think adding enums to Go is a good idea. I am just curious because I know you are a seasoned Gopher and I know you can accomplish the same thing with IOTA and a struct field in Go. Why specifically do you think this isn't enough I guess? Did you want the type safety and tooling support for narrowing the possible options in your current context? Genuinely curious! Did you have a video about this already?
@chillbro2275
@chillbro2275 21 күн бұрын
"Pythonic" I like it :D no shade. 10:55 I couldn't understand that iterator code either, and I've got a lot of coding experience.
@martingallauner
@martingallauner Ай бұрын
Why did you invert your line count?
@JT-mr3db
@JT-mr3db 2 ай бұрын
I’ve never used go without generics or iterators and keen to understand why you think they were not good features.
@cabc74
@cabc74 2 ай бұрын
Go users have this mantravthat their language is simple. It is so simple tha makes simple things like iterating over avcollection a hard thing (until now). So they are mad that now the have a simple and standard way for it. Snobbery
@jacilperez3441
@jacilperez3441 2 ай бұрын
@@cabc74lol
@mjcgreatness
@mjcgreatness 2 ай бұрын
This is my first time hearing anyone refer to python code as hard to understand. Looking forward to my first Go project to see for myself.
@homework3218
@homework3218 Ай бұрын
What do you think is better to learn from scratch at the moment, Go or Java? I have some basic experience with C++ and a foundation in computer science since I’m studying in this field, but I don’t have any commercial experience yet. Could you please advise if it’s not too much trouble?
@tomasslavik1119
@tomasslavik1119 2 ай бұрын
I feel like Golang keeps the C like philosophy: features are not a part of language. Wanna hash table in C? Implement it. Wanna garbage collector? Implement it. Wanna monads? Implement. C and Go are just languages around computer primitives. Paradigms, design patterns, whatever is not a part of language, but no one prevents you from implementing.
@lhd7105
@lhd7105 2 ай бұрын
Was enum not added b/c entire sub-cultures of Golang enjoyers could create a rule to do it through some 3rd party way? Maybe like a 3rd-party compiler (Think Typescript)... Like does enum in Golang have to prove itself before being begudglingly added to official language? I think such a thing sort of happend to C++, like I seem to recall that Boost library was so helpful as a band-aid then C++ was forced to basically start to make boost a part of the language. By the way Melkey sensei I honestly could not understand the iterator example you screenshotted either and I know a dozen programming languages.
@Johanthegnarler
@Johanthegnarler 2 ай бұрын
I program in roughly 6 languages a week. Go has been replacing all of them lately
@WaseemAshraf
@WaseemAshraf 2 ай бұрын
Instead of using iterators I would use channels and go routines. Personally I don't think there was need of iterators but if they were being added a very simple syntax would've been appreciated.
@austinraney
@austinraney 2 ай бұрын
I don’t think it’s that bad: type Foo []int func (f Foo)Iter(yield func(int)bool){ for _, value := range f{ if !yield(value){ // clean up return } } }
@learningwithaaron
@learningwithaaron 2 ай бұрын
i uses classes in javascript wen using express depending on the complexity of the project. It makes things cleaner and resuable
@nathanp3366
@nathanp3366 2 ай бұрын
I am gathering recently that this is not a unique take but I really don't like how in go to make something public you capitalize it. I just don't get the logic - the language prioritizes readability and simplicity to the point of being extremely verbose with some things but they don't want an export keyword or something?
@lovekickerpk98
@lovekickerpk98 2 ай бұрын
i just have to say := this operator was a mistake. my code is inconsistent with whether to use = or := when reusing variables. happens alot when working with err's.
@ebukaume
@ebukaume 2 ай бұрын
A counter argument to having 1 way of doing things. It takes time for people from other languages to get used to :=.
@mscholzdev
@mscholzdev 2 ай бұрын
4:30 I think TS is the best by adding it to node for the same language in front and back end even if JSDOC can do typing but not transpiling
@mscholzdev
@mscholzdev 2 ай бұрын
I use go now as backend btw (and arch, vim and dvorak (thanks to theprimeagan and Tj devries ((
@darwinrc
@darwinrc 2 ай бұрын
@@mscholzdevarch mentioned, Dvorak mentioned, theprimetime mentioned
@mscholzdev
@mscholzdev 2 ай бұрын
@@darwinrc 🤣🤣🤣
@afterschool2594
@afterschool2594 2 ай бұрын
Go error handling is good enough although I love Rust one better, I am not a Rust users though. I think pattern matching any possible error would be better than just errors.New(msg) since we may one to handle a certain case of returned error. I know that we could just set global variable of errors but not every package in Go do that since it's not enforced.
@Tantewillieja
@Tantewillieja 2 ай бұрын
Nil pointer references and empty strucs, truly don't understand the design choices of go
@Lemmy4555
@Lemmy4555 2 ай бұрын
Not a fan of Go while i sometimes pick some takes from it and apply them in TS, however i think many times the Go maintainers are extremists, the case of enums is crazy, such a needed feature that is so obvious and yet they do not want to implement it and people resort in 3 or more different ways in order of solving that. that's the opposite of simplicity, that's a fight against windmills.
@peterj.2114
@peterj.2114 2 ай бұрын
Considering that every project nowadays requires you to build something quickly and maintain it, Go is a no-brainer unless you are doing something hyperspecific where the ecosystem is already strong elsewhere. Having dealt with npm, Maven and a plethora of random bullshit theoretically-useful-but-actually-not-language-features in the past Go really just kinda clicked for me. Hoping it stays lean going forward. Iterators are definitely something I can't see myself using but don't know enough about their usage to comment on them.
@chillbro2275
@chillbro2275 21 күн бұрын
It's such a turn off to have languages clone each other. Not every language does this, but i feel like the big ones do that .
@ArturdeSousaRocha
@ArturdeSousaRocha 2 ай бұрын
The problem with adding enums is what the zero value should be.
@ebukaume
@ebukaume 2 ай бұрын
I personally think it's a mistake to fallback to zero values for missing values. It's painful to deal with at several levels
@Guergeiro
@Guergeiro 2 ай бұрын
4:15 I've used TS for frontend and backend. I think the killer feature is type sharing at the boundaries of the system without much effort. Hands down, my favourite language is Golang, but even if i keep a correct OpenAPI spec for my http API and use a tool to generate the types for the frontend, this is a friction point and extra step. If backend and frontend are separate teams this isn't a problem, but if you're doing a fullstack, then it's unnecessary friction. And like you said, I guess TS gets you 80% there on the backend+frontend, so this is one of the key points for fast iteration.
@Johanthegnarler
@Johanthegnarler 2 ай бұрын
I don't like JavaScript on the backend. And lately, I've been freed from JavaScript hell. I don't even fuck with NPM anymore except for a couple linters and semantic release. It's been so liberating simplifying my stack. I love Vue, but damn just reducing all the bloat from the over engineered front end for essentially the simplest forms of SPAs you can produce has been amazing.
@MelkeyDev
@MelkeyDev 2 ай бұрын
I know so many people say that same argument about type safety between FE and BE, and for the record, I agree. Having it all done with TS guarantee's that. But I think as a group, we've gotten too obsessed with strict typing. Throw it back to just sending JSON. IDK, it might be me, but I think it's okay
@Guergeiro
@Guergeiro 2 ай бұрын
@@MelkeyDev tbh, it's good as in developer experience, but that's that. No more guarantees. And you can pretty much achieve the same thing with openapi schemas with a tool that generates types from that.
@darwinrc
@darwinrc 2 ай бұрын
Or better still, get rid of JS/TS and use HMTX
@Bazixxx
@Bazixxx 2 ай бұрын
I love and hate go. It's so damn fast, but still missing many language features. Every time I use go, I miss Kotlin.
@oleksiistri8429
@oleksiistri8429 2 ай бұрын
yeah, that func-yeild-func-yeild thingy sucks )
@cd-stephen
@cd-stephen 2 ай бұрын
@MelkeyDev - the hardest part of watching this video, is seeing the Advance360 as a decoration piece 🙂
@MelkeyDev
@MelkeyDev 2 ай бұрын
Good thing I have two. One is the piece you mentioned. The other is the one I use. Never make assumptions!
@cd-stephen
@cd-stephen 2 ай бұрын
@@MelkeyDev yeah just messin... love your chan.
@danielt8880
@danielt8880 2 ай бұрын
And Now Go has generic. Lol
@muzzletov
@muzzletov 2 ай бұрын
WHERE THE FCK ARE ARENAS??!?!?!?!??!
@hamm8934
@hamm8934 2 ай бұрын
shhhhhh that would make too much sense.
@RoroZoro-lf4nz
@RoroZoro-lf4nz 2 ай бұрын
Everything about the language is good except the introduction of iterators. I don't even think 10% of go codebase benefits from the usage of those iterators. They are anything but simple, very hard to read and to write. I just don't see any benefit of using them. The language definitely lost a part of its simplicity with those iterators being introduced. Generics are ok but not iterators.
@ebukaume
@ebukaume 2 ай бұрын
Python and JavaScript used to be simple. Just saying...
@DrewryPope
@DrewryPope 2 ай бұрын
you're wrong about iterators and generics
@DrewryPope
@DrewryPope 2 ай бұрын
if anything they should go even further
@esra_erimez
@esra_erimez 2 ай бұрын
I respectfully disagree. I don't think generics should have been added to Go.
@MelkeyDev
@MelkeyDev 2 ай бұрын
im not wrong
@esra_erimez
@esra_erimez 2 ай бұрын
@@MelkeyDev I love this response
@davidbm873
@davidbm873 2 ай бұрын
I see generics as type unions, and I like it :3
@mubashir3
@mubashir3 2 ай бұрын
Please don’t use the shocked face thumbnail. It’s overdone and officially entered the annoying phase a few years ago.
@MelkeyDev
@MelkeyDev 2 ай бұрын
but sir
@learningwithaaron
@learningwithaaron 2 ай бұрын
node, scratch, pascal and python will forever be the simplest
@statuschannel8572
@statuschannel8572 2 ай бұрын
Node ? bro i spent hours and hours to setup a basic typescript project in node
@michael1477
@michael1477 2 ай бұрын
@@statuschannel8572 bro its like 3-4 commands to run and then adjust tsconfig file according to personal preference. How did it take you hours just for this? it wont even take 5 minutes
@oleksiistri8429
@oleksiistri8429 2 ай бұрын
nope!
@vitalyl1327
@vitalyl1327 2 ай бұрын
Pascal - yes (but Oberon is better). Still, Scheme is the best simple language out there.
@ebukaume
@ebukaume 2 ай бұрын
I think his point is that starting simple always result to pain later in language designs
@Myexpectationsarerealistic
@Myexpectationsarerealistic 2 ай бұрын
i can read assembly and C. No issues with literally any language other than Haskell and some weird Chimp Tier written Python.
@SoftIceCreamMan
@SoftIceCreamMan 2 ай бұрын
Whatup GoGang?!
@DM-pg4iv
@DM-pg4iv 2 ай бұрын
FYI JS is going to add structs as s feature who would've guessed this world happen
@dukeofnorfolk1842
@dukeofnorfolk1842 2 ай бұрын
Never used generics in my entire career
@vitalyl1327
@vitalyl1327 2 ай бұрын
I pity those who have to maintain your unreadable boilerplate code.
@dukeofnorfolk1842
@dukeofnorfolk1842 2 ай бұрын
@vitalyl1327 my code only does one thing, and it did well
@armanrozika
@armanrozika 2 ай бұрын
learn english first dude
@thqthq9999
@thqthq9999 2 ай бұрын
C
@PaulSebastianM
@PaulSebastianM 2 ай бұрын
Go is not fun to read at all.
@statuschannel8572
@statuschannel8572 2 ай бұрын
yes its boring and boring is GOOD
@ProfessorThock
@ProfessorThock 2 ай бұрын
Why not?
@vitalyl1327
@vitalyl1327 2 ай бұрын
Golang is awful. It's a language built on the very wrong premise that language simplicity can somehow translate to solution simplicity - while in fact all this simplicity does is facilitating horrible boilerplate code and outright barring even a chance to solve complex problems in a simple way.
@dukeofnorfolk1842
@dukeofnorfolk1842 2 ай бұрын
@@vitalyl1327 It does things explicitly, it doesn't have cheap hacks just so your function can have 5 less lines of code. If your idea of simplicity is by how many lines of code, check out PERL and see how readable it is
@gringo6362
@gringo6362 9 күн бұрын
Weird thumbnails
@mjcgreatness
@mjcgreatness 2 ай бұрын
This is my first time hearing anyone refer to python code as hard to understand. Looking forward to my first Go project to see for myself.
This is the BEST Golang Context Package Tutorial
12:18
Melkey
Рет қаралды 18 М.
Rob Pike: What Golang Got Right & Wrong
29:23
ThePrimeTime
Рет қаралды 158 М.
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 16 МЛН
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 30 МЛН
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
Go Iterators Are Bad
36:12
ThePrimeTime
Рет қаралды 109 М.
Using Helix - Coming from VSCode (3 weeks in)
20:50
Mike Kelly
Рет қаралды 17 М.
Level Up Your Golang: 5 Concepts You Need to know
19:22
Flo Woelki
Рет қаралды 16 М.
Beginners Should Think Differently When Writing Golang
11:35
Anthony GG
Рет қаралды 133 М.
My Initial Impresson Of Go
12:39
TheVimeagen
Рет қаралды 111 М.
Why MOST Developer Portfolios are Worthless
12:50
Travis Media
Рет қаралды 26 М.
Why I'm learning Go
21:35
Web Dev Cody
Рет қаралды 71 М.
go is great i hate it
14:44
SST
Рет қаралды 29 М.
This Is The BEST Way To Structure Your GO Projects
11:08
Melkey
Рет қаралды 87 М.
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН