Excellent talk. I like it when things are put into context.
@goffe22822 жыл бұрын
Nice talk. I was looking for a Go talk that I could have on in the background while cooking. This was the perfect level for me. When I have time to sit down and watch source code in front of a computer then I'll do that. Really nice talk.
@MunnyLerner6 ай бұрын
45:00 - "Simplicity and the Greater Good - while it's often seen negatively, in the context of order, sustainability and group cohesion it's a benefit and it's imperative that in some aspects of the organization it has to be enforced." AGREED!!
@kamilziemian9953 жыл бұрын
Excellent talk. It expleins very well why programmers need language like Go.
@gerardgauthier48765 жыл бұрын
All programming languages are built-up abstractions over a set of basic operations. Choosing a programming language is accepting the abstractions presented in that language... Everything else is religion.
@needlessoptions5 жыл бұрын
Well said broski
@mgmartin515 жыл бұрын
All religions are built-up myths over a basic set of life questions. Choosing a religion is accepting the myths presented in that religion. Everything else is programming.
@dracoford7555 жыл бұрын
Gerard Gauthier absolutely not, metalanguages and LISP dialects operate are entirely different than static languages. The difference between dynamic and static languages; intermediate verifiers and proof oracles, makes each language a different ‘flavor’ of the IPS
@MaestroCipher3 жыл бұрын
Wrong, "accepting the abstractions" is a way not a whole story, there are much more properties to consider. You have a very narrow understanding of the subject.
@gerardgauthier48763 жыл бұрын
@@dracoford755 Oh yeah! I keep forgetting that LISP resides in the realm of magic and not algorithms and hardware. Like I said... religion.
@ismaelgrahms Жыл бұрын
Excellent talk
@mayur.a153 жыл бұрын
Static Typed like Java and C++. Faster than Java on every benchmark. Faster compile time than C++. Readability like Python. Go is absolutely great language.
@TroenderTass3 жыл бұрын
Yeah right. No generics, inefficient utility-functions for basic things like finding the length of a slice, horrible code origanization (everything that has to do with text, both io and basic strings is containted in the same module), insanly rigid and basic concurrency model, and it's simply just ugly, like python. Who the hell would put Python in the cathergory of great programing languages. Also, nil everywhere. It has no exception nor error handling so you have to return errors everywhere and check for them. To even suggest it is a great language, what were you thinking? At best, it is an ok tool for small apps for people who like corky weird stuff that is very imperfect in nature. The this needs to stay as a niche and never ever be considered in real app development.
@uziboozy45403 жыл бұрын
Rust > Go
@blu3_enjoy3 жыл бұрын
@@uziboozy4540 rust is pozzed
@pubsvm73553 жыл бұрын
@@TroenderTass What do you prefer over it?
@praveens22722 жыл бұрын
@@pubsvm7355 ☕ my dear friend
@AhmedTahagg Жыл бұрын
32:37 I am confused, I tried this. The zero value of a map is nil! If you try to insert things it will panic (kind of like a null pointer exception waiting to happen)
@CO8848_25 жыл бұрын
So go combines the best of event and threads because it has thread programming model (not callbacks as in event loop) but channels and green threads are much faster than mutex locks and system calls in threads. That took a long time to come out, I think.
@foljs58585 жыл бұрын
Unfortunately green threads are not the be all end all - they have their own issues. Early Java had them, and abandoned them. Other newer languages too, e.g. Rust tried them and opted for actual threads too.
@CO8848_25 жыл бұрын
This video got me thinking about a lot of things, very interesting to think of the design choices.
@Bkgoodman113 жыл бұрын
The whole part about "simplicity" was almost jaw dropping. "I thought it was just me"...
@yifumao13794 ай бұрын
Nice, detailed talk.
@nonya692 жыл бұрын
Excellent!!!!!
@KrishnaDasPC4 жыл бұрын
From my experience I do not trust nodejs at the server side, you can't sleep peacefully with it. One of the bulk excel generation done in PHP was taking too much time even more than 45 mins , exact same thing rewritten in Go took only 50 seconds to complete. Also deployment is easy as we need only single binary, also binary size is very small in size compared to Java. But frameworks in Go is still not mature as in Java or other popular languages so you have to write lot of code yourself compared to them. But once written it will run super fast.
@RayZde4 жыл бұрын
True about node. Java is so bloated and being run by oracle is a big turn off for a lot of developers.
@arunabraham93823 жыл бұрын
I might wonder what made it so slow. Have you tried the same with swoole Coroutine?
@_stanlymathai3 жыл бұрын
You're not paid to program, you're not even paid to maintain someone else's program, you're paid to deliver solutions to the business.
@anvarichn3 жыл бұрын
Brilliant!
@tonygair3 жыл бұрын
Fantastic!
@AlqGo6 жыл бұрын
Thank google-ness for 1.25 speed!
@taliluvhengo59285 жыл бұрын
1.25? Noob! Pros go 2X
@hipstergod5 жыл бұрын
@@taliluvhengo5928 2x??? Amateur, gods use video speed controller chome plug in get on the 3x speed or more, time has invaluable don't waste it watching things at 2x
@taliluvhengo59285 жыл бұрын
@@hipstergod haha cool. Will check it out
@pengdu77514 жыл бұрын
same. I set it to 1.25 and then forgot that it's already at 1.25
@Skorps18114 жыл бұрын
God bless you sir, I was about to close the video :D
@osamaa.h.altameemi55924 жыл бұрын
this talk is on another level.
@ezengondolkozom37005 жыл бұрын
This has some programmingcirclejerk potential.
@BattousaiHBr4 жыл бұрын
the 1st rule of PCJ is you don't talk about PCJ outside of PCJ.
@AeroPR3 жыл бұрын
Amazing talk
@justinhj16 жыл бұрын
With regards to utf-8 it's not always the best. utf-32 is better if you are working with a lot text in some Asian languages for example, since every character is the same width meaning you can index into an array and know where the characters are. You can't do that with utf8 and utf16.
@rkfkr4 жыл бұрын
tbh, you very rarely need to pick a character by its absolute index or offset. Most real world text processing tasks need iteration, one character at a time, and in this case there's almost no difference. For UTF-8 it would require a bit more processing (like calculating whether it's the last byte of the character) but it's negligible and can be hidden in the iterator logic. Go's range does exactly that (in the form of "for _, c := range str" where c gets the next rune aka unicode character) and it's implemented in the language syntax itself, not even in the standard library.
@rtukpe4 жыл бұрын
Loved this. Made me realise why some things in Go exist and don't exist
@AaronMartinColby5 жыл бұрын
Great talk. History is important. Ignore the troll haters.
@bikramsarkar85443 жыл бұрын
Very Informative
@mmuschalik6 жыл бұрын
There are not many videos that try to defend Go. So I appreciate this. I must say, I'm still not convinced, I'm skeptical. I could just as much use another language and turn off language features with a build plugin. OK, maybe concurrency is good in Go, but green threads are not unique to Go, nothing new there. Please enlighten me.
@kamilziemian9954 жыл бұрын
How Carmen Andoh say in this talk "Go isn't about revolution. It's about simplicity.", I think this pretty well sums Go. If you need language that is clean, simple, elegant Go can be very good choice. If you want something new, you need to check other languages. "I could just as much use another language and turn off language features with a build plugin." I guess that createors will respons along this line. "Yes, you can. But this is unelegant workaround, also can be very unstable. We want elegant language from the start.".
@BattousaiHBr4 жыл бұрын
you are correct, but simply "turning features off" is not really something you can expect when dealing with someone else's code. the point of go's forced simplicity is meant to facilitate maintainability and readability, not only when revisiting your own code 1 year later but also to pick up other people's code.
@LoneIgadzra3 жыл бұрын
Just try it. Simple language, way more than the sum of its parts. Learning it is more exciting than you would think. It doesn't need defending.
@alexisfibonacci Жыл бұрын
Go to other languages is like comparing CISC to RISC or is it RISC to CISC?😊
@JaconSamsta7 ай бұрын
That brings a lot of problems with it. It makes every single development team into a language design team as well, something the vast majority of developers are simply not qualified for. This can lead to very poorly designed sub-languages, overly complicated style guides and lots of wasted time in code reviews. The larger the development team is and the more opinionated "seniors" you've got, the worse this problem becomes. Doubly so if you need to keep your spec in sync of multiple departments. You are bound to end up with the worst of both worlds and something resembling a big bag of compromises, rather than a properly thought out language. Look at C++ if you want to know how bad that gets, or Haskell, where you've got compiler extensions that you can enable on a per-file basis, if you want to see what a complete clusterfuck that can lead to. Obviously those two are rather extreme examples, but most languages are affected by this to some extent. I do love some of the more "advanced" features that you get with languages like Rust, but there is no denying that having four different ways to do the same things, each with their own level of sophistication, can make for very hard to read/review and maintain code. It can certainly make you feel very smart in the moment, but that counts for very little in the long run. Obviously not every language has the same potential for abuse, but there is a good reason why languages like Go or Elm get a lot of praise for their "simplicity". There is typically one way to do and structure something and if you ask two developers to implement the same feature you are going to get very similar code with a low "WTF"-factor. Honestly, "being smart" is what lead us into this whole OOP mess to begin with.
@AIMBOTKATFISH3 жыл бұрын
I wonder what she would say about async/await in NodeJS. Seems a bit more forgiving than callbacks.
@DOPEBEATZBOYS4 жыл бұрын
no one in the room laughed at the lougle joke smfh
@34Spare345 жыл бұрын
Kinda fun that there is no php on the map.
@betims5 жыл бұрын
why?
@marcusbrsp4 жыл бұрын
Spaghetti code language
@kernv0llig4 жыл бұрын
Not in the map but she talks about it. kzbin.info/www/bejne/mJ69f5SLmNx1qpY
@blackhatson133 жыл бұрын
god bless her
@Zamicol6 жыл бұрын
Thank you for taking the time to make this talk. Great work!
@commel Жыл бұрын
The Genealogy tree moves Javascript as a sideline of Java. Besides the name similarity there are not futher similiarities than both are coded in textform...
@evolagenda Жыл бұрын
Loved this
@blacknirvana26055 жыл бұрын
Thank you, _Lady from 1983_. Great talk.
@mr_vazovski5 жыл бұрын
She has an impressive ability to talk while saying nothing. But I've still watched the full 48 minutes.
@storyjaam4 жыл бұрын
Wow. That’s what I was thinking 😂
@storyjaam4 жыл бұрын
She hasn’t provided any coherent logic behind WHY. Yet the talk seems interesting 😝
@belearnt39023 жыл бұрын
Hi all, what do you think the future of GO? should i learn it and change my stack to GO?
@alexisfibonacci Жыл бұрын
You don't have to change your stack. Have it as one of your tools.
@cshri1234 жыл бұрын
Lovely video . Excellent explanation
@atikenny6 жыл бұрын
Amazing talk!
@jujijiju69293 жыл бұрын
On a tangential note, there's a project called OpenResty which takes nginx and embeds the lua programming language's LuaJIT into it and gives you a few different slots where you can plug in your code. I've been using it to serve a small website with this and it works like magic. It's probably not the right solution for everything, but it's neat for a lot of things.
@jonbikaku6133 Жыл бұрын
Bruh
@jneiberger6 жыл бұрын
I just stumbled across this video because I'm dipping my toe into the Golang waters. I don't know who this is, but she is a fantastic teacher. I love listening to someone who can explain WHY something is the way it is. That makes it so much more accessible.
@ultimategotea5 жыл бұрын
Nowadays, the core war has been pumping those thread count #s up QUICK (i.e 64 cores on a single dye w/ 2 threads per core on a DESKTOP CPU WITH DESKTOP TEMPERATURES).
@MR-cf7xi5 жыл бұрын
All the Go's 21st Century Characteristics was addressed by Erlang in 80's \0/ Heck maybe Joe Armstrong was a time travel!
@recklessroges5 жыл бұрын
A good PHP programmer can, (with a little effort) become an adequate golang programmer. (I doubt that they would ever manage to become a good Erlang programmer.) If amazing things like Erlang, Haskell and Scheme were easy then we wouldn't need the {idiot} "languages" for children like PHP and node.js
@tdias253 жыл бұрын
@@recklessroges care to elaborate why these are "children" languages? you know that there are billion dollar companies running on this langs, right?
@samifouad4 жыл бұрын
This is not just a great talk.. it's one of THE GREATEST TALKS EVER. So well researched. So well presented. So well argued. If this was a Go file, we need to import "reaction" and use StandingOvation(). Thank you.
@HiddenUsename Жыл бұрын
@20:35 did she really say "a new idea of a callback"?! LOL
@zenshinsuru5 жыл бұрын
don't waste your time. there is no concrete argument here. it's frankly all over the place. I came here looking for reasons to like go, she didn't help. What I would like to know: - In practice, what exactly are the benefits of green threads over async programming? I have never used green threads before so I'm very curious about how it actually works in practice. - How to handle errors? I do not exaggerate when I say I find it extremely tedious to check errors. This not only slows down my productivity, it also results in very complex code. There must be a better way of doing this (I'm a fan of how rust handles errors).
@LaPingvino5 жыл бұрын
Hello Zen Shinmae. About your first question, they both solve different problems and you can actually implement many concurrency models in Go. Language supported green threads however create a common language for implementing many concurrency models, it's a productive system together with channels, and they enable you to write your code synchronous first. It's encouraged in Go to write all your code synchronous when possible, which makes it trivial to make sure it's correct. Then making it work async is something you can do really simple with the Go language support, similarly to running a task in the background in Bash. About errors, it's tedious but extremely necessary, and it avoids your code blowing up all over the place. That said, your prayers are heard and a first implementation of a less tedious way of handling errors without giving up the safety Go errors give is in the works for Go 1.14. But also, Go errors are just values, so you can program with them and handle them however you want. Rob Pike has a great article about this. It all boils down to many things she said in her talk, but you will have to try out and experience the difference to know that she is not talking nonsense.
@CO8848_25 жыл бұрын
You clearly missed the point
@RayZde4 жыл бұрын
You're right. But to her defence, she's more on the business development side of things and not the design and architect side. Her speech is more like a college essay and presentation.
@TheSurvivor1963 Жыл бұрын
OOP didn't start with Smalltalk, it started with Simula-67 already in 1960s.
@JaconSamsta7 ай бұрын
Once again demonstrating how absolutely useless the term "OOP" is to actually describe anything. Simula and Smalltalk, as well as Smalltalk and the languages that have actually come to define OOP (mostly Java) are vastly different from one another. Nobody can give you a straight answer about what it is and the only thing that overlaps is the fact that you can call namespaced functions, which implicitly (though we've seen some positive moves towards making this explicit) take the instance of type as their parameter, and are callable on an instance of a type, taking it as an argument for that parameter. It's a shit term and needs to die.
@TheSurvivor19637 ай бұрын
@@JaconSamsta I didn't write that OOP is good. Just pointing out a fact that Simula-67 was the first language that came up with the concept of so-called OOP.
@JaconSamsta7 ай бұрын
@@TheSurvivor1963 I didn't comment on any supposed judgement on your part, no idea where you are getting that from. I'm just pointing out that it's a beyond useless term, at least in the way that most people use it.
@LeetMath6 жыл бұрын
tbh i think the gopher picture is kind of ugly (pls don’t be mad lol)
@just16896 жыл бұрын
Wow. What a great talk. Thanks for sharing!
@infoq6 жыл бұрын
If you are interested in more content about Go you can check out the dedicated page on InfoQ www.infoq.com/golang
@TheHermitHacker6 жыл бұрын
Finally!!! I get to be first with a video comment!! Took years to get to this point.
@neuemage6 жыл бұрын
oh yeah this channel is so crowded
@LetsFixThatError6 жыл бұрын
_lol_
@AlqGo6 жыл бұрын
Oof!
@jamalyusuf75026 жыл бұрын
Carmen gets it - go is what the world needs today.
@kevincasey20365 жыл бұрын
TLDR: hype appeal to authority it should be faster than a JVM straw man assumptions about simplicity
@elchemista3 жыл бұрын
All that problems was solved with Erlang. No one give love to Erlang that make me sad 😞
@rhakka2 жыл бұрын
People give props to Erlang all the time. That’s a lot different than saying others should use it. I would personally say Elixir is more receivable by a wider audience but it still doesn’t have as much weight behind it or anybody pushing it or … essentially marketing.
@kamilziemian9954 жыл бұрын
I think it is so great that Go DOESN'T have things like pointers arithmetics.
@RyanMartinRAM3 жыл бұрын
Go has pointers.
@kamilziemian9953 жыл бұрын
@@RyanMartinRAM Yes of course, you can just write p := &i to get pointer p. But it dosen't have pointer arithmetics so code like varArray := [3]int{0, 1, 2} p := &varArray p = p + 2 shouldn't work.
@Glicerol5 жыл бұрын
Is goal of this presentation to convince developers to use go? Is it about go ? I see bunch of random historical and "captain obvious" facts which does not tell exactly "why to use Go:" :) This is presentation about everything and nothing. You can use this presentation, just change arguments to proof that any language is better than others. It's kind of typical to pepople who have some higher technology overview, they dont understand whats going on but they want to sell some idea. She has good presentaiton skills but I have feeling that she is going to sell me something I dont need. As a fan of go language I dont give a shit :) Lost 40 minutes.
@StefanoBozzoni6 жыл бұрын
Completely agree with evrything! compliments!
@FritzFeuerbacher5 жыл бұрын
You can see that Go was influenced by Modula-2, which also started out as a systems programming language.
@polymix29714 жыл бұрын
I agree, simplicity makes way and gets you to do the thing you want to do instead of having to deal with side issues. You would have to be either a complete egomaniac or an idiot to fight against it or not see it in that way. Ultimately as programmers we all just want to get to the meat as fast as possible.
@TheCuttingKing5 жыл бұрын
Worst talk I've ever seen. So much bla bla no actual content. It's titled 'The Why of Go' not 'The great big history of everything surrounding Go but nothing about go itself' Good talk would have been: Show problem > show solution > explain solution > contrast solution with alternatives > Conclude and that's what Go is for. This kind of back and forth was a waste of time.
@dmitrifedorov10235 жыл бұрын
Don't waste your time watching this. Whatever she (and everyone else) is telling, the real reason behind using Go is the lack of C/C++ skills. Look at the slide at 11:47: all five points she makes is the manifestation of a C/C++ programmer's incompetence. And her smug presentation style is really annoying.
@letscode53675 жыл бұрын
Agree with you sir ☺
@ThePandaGuitar4 жыл бұрын
Good luck with your C++ servers and your dangling pointers mate.
@RayZde4 жыл бұрын
It's not a great speech but that wasn't her entire point.
@TheMrKeksLp3 жыл бұрын
C and C++ are definitely not the answer to write correct and safe programs simply. Whether Go delivers on that promise is an entirely different topic but the motivation behind it is more than justified
@HiddenUsename Жыл бұрын
LOL. And where do u find those C/C++ skilled developers in necessary quantities? It's like saying the real reason behind using C is the lack of Assembly language skills. Yes, it makes life infinitely easier. Look up the stats on the C/C++ production systems problem. 80% are memory leaks. It's the fact of life. And no dick measuring context can change that. Besides, C++ is crap, as the whole OOP thing. No wonder languages like Go, Rust, Zig have none of it
@KozLoTV4 жыл бұрын
Impressive talk!
@ksceriath83466 жыл бұрын
"Before I get started, I guess my name is Carmen..." O_o
@mohamedhajr53705 жыл бұрын
Amazing talk, thank you so much.
@Snickersnack3296 жыл бұрын
This talk seems to exude arrogance. I was surprised to hear the “appeal to authority” logical fallacy right up front. If go is designed for our new world of multi core and massive parallelism, why does this new and simple language devolve into the sync module and locking primitives to solve difficult problems? Why go?
@marcinborawski70335 жыл бұрын
Thank you for this talk, very insightful.
@unvexis5 жыл бұрын
Lol, I made it to 6:00 and decided that was enough.
@jinushaun6 жыл бұрын
Was this the first time the speaker saw this presentation? Time and time again, the speaker did not seem to know what was coming up in the next slide? So many mistakes. Very distracting.
@ChunkyChest5 жыл бұрын
wait, no ternary WAIT WUT?
@ezengondolkozom37005 жыл бұрын
Rust people be like 😂😂👌
@TheMrKeksLp3 жыл бұрын
@@ezengondolkozom3700 To be fair we have all control flow as expressions :D
@JonathanRintala5 жыл бұрын
Cool idea 🔥
@JudgeFredd5 жыл бұрын
Interesting speech
@kvbc5425 Жыл бұрын
why is no one laughing, what is this audience
@recklessroges5 жыл бұрын
I think everything said here is correct, (and even if it isn't, with the massive weight of google behind golang, it is unstoppable,) and I don't mind that. {Please golang, save us from the lame duck that Gosling gave us.}