As a seasoned software engineer, who has primarily used C++ for development, I see Go as a profound improvement in software creation. Rarely has a new development technology interested me so much. I am hooked!
I see Go becoming more and more useful as the current computing trends progress, and it may well have a big advantage being familiar to C/Java language programmers and backed by google and being open source. And it has Ken Thompson's name on it, so you _know_ its good!
Go is simply amazing. Easy( at least for me) to learn if you are coming from another language, eg C++ or Java, although there are a bit of learning curves, but easy to overcome. And he is not lying about the compiler speed...it is insane. I am enjoying Go so much haha
+rbrick (Ryan) how do i make a server in C with a data base with teachers and students with grades ? I heard that the code for this is out there, on golang.org, but I can't find it...can you help me ?
I've learned Go and I like it a lot, it feels very modern compared to other compiled languages. I wish it had Generics though, and better support for functional programming.
+Sushi how do i make a server in C with a data base with teachers and students with grades ? I heard that the code for this is out there, on golang.org, but I can't find it...can you help me ?
Anyone interested in broadening their programming breadth. Or anyone who's interested in doing distributed programming. Or anyone interested in learning something new.
1) Yes 2) Everyone There are some tasks especially well suited for Go.. It is worth it for a professional programmer to be at least aware of those strengths such that Go can be used when it has a clear advantage.
at least Go is seemingly built by people that end up using it, so that should make it catered toward developers, not catered toward compiler developers, at least I hope...
@@harindaka Not "figure out". You seem to have a flawed understanding of how these technologies work. Innovative and modern languages like Go and Rust aren't actually new, these ideas have been part of popular discourse for literally decades. Unless you have a super proprietary closed source language and ecosystem, there're very few reasons to think the community of maintainers is just too "dum" to "get things done". Maintaining a language is an incredibly complicated and demanding process, especially when you're trying to offer the best compatibility with C code out there.
I think that NO, it will be the same problem as other "platform independent" languages that you have to implement function for almost each platforms because these depends of some modules are made to interact with some SO libraries..... Is the same promise of all the "multiplaform" languages.
Make no mistake, VMs have their advantages. They allow for introperspection or realtime code update. Or they can modify the runtime behaviour. VMs can make heap allocations very, very cheap. That is why some of the fastest JSON serializers are written in Java. But also operations like String manipulation or reallocating an ArrayList (aka Vector) are very efficient. Also a VM can do some very crazy / risky kind of optimizations that are platform specific. AOT compilers always have to be conservative and cannot do runtime analysis like a JIT can. So a JIT could do speculative optimization or try to reduce cache misses.
The "run everywhere" argument Java popularized is actually extremely overrated and completely out of date in today's landscape. E.g., truly cross-platform technologies like Unity and Flutter don't ship bytecode. And the second big name to shamelessly follow Java, C# has become exceedingly AOT-focused in recent years. If you're working in the cloud, there isn't a single reason to manage your own VMs at a language level, you'll only be slowing down your application with unnecessary abstraction. That said, the real, the actual reason why and where VMs are helpful is rarely mentioned by proponents of the VM-apocalypse. That being, for languages with a huuuge runtime, it makes sense to carry around only the bytecode instead of the entire runtime packed with it as that'd cause size bloat of significant magnitudes. This is why VMs truly shine in some scenarios like, JS in the Web, Python in Notebooks, etc. But again, like I said before, the industry is beginning to detox from this 'anti-pattern' of programming language design in recent years. Super high level languages like Julia prove how a 'mixed' solution works fine if not better. And case in point, Go proves how a good language with a good compiler can process millions of lines of code by the time a VM has finished warming up for a simple hello-world program.
Google Go seems, in my opinion to be language that has the built in features of a scripting language with the perk of having the inherent efficiency of a compiled language. There are some features left out that I find kind of disappointing. Like not being able to pass variables by reference;
@@Mike-iz9kh He was probably talking about the syntactic suger C++ has where there's a distinction between "pass by reference" and "pass by pointer". I come from C++ too and initially I had the same reaction but now I feel that considering how Go tries to be a more explicit language, it's totally justified how they don't have C++ style "pass by reference".
I find go very messy and disorganized. The dependency model is not clean or simple, and has caused me many a daylong headache. It basically took C++, and took away all the things that make C++ organized. We're left with a language which is good for nothing other than pipelines. It's a fun toy, but IMO good for nothing other than prototyping.
I dunno, I find it way too difficult to set up and compile C++ projects. C++ dependencies make me want to rip my hair out, whereas with Go I can just `go get` them and I'm done.
@@BrandNewByxor Go tooling wasn't as great when he wrote that comment. I guess languages need to be out there for at least a decade to get to a competent level.
"I'm too lazy to learn a new language so I will just claim that this objectively terrible language I'm comfortable in is better to avoid having to take responsibility for my joke of an existence as a software professional."
and now 4 years later they're keeping the same promise and with a better compiler, long live to Go !!
As a seasoned software engineer, who has primarily used C++ for development, I see Go as a profound improvement in software creation. Rarely has a new development technology interested me so much. I am hooked!
Rob is a genius and a funny guy at that.
Would be fun to hang out with him.
I see Go becoming more and more useful as the current computing trends progress, and it may well have a big advantage being familiar to C/Java language programmers and backed by google and being open source. And it has Ken Thompson's name on it, so you _know_ its good!
1:10 - Did anyone else hear someone say "Seriously?" in the background?
+TheShernie I did :)
Absolutely
she probably got dumped
Hahahahahaha! Clearly!
Yeah...And also there is conversation is going on
Great questions by Rachel.
Go is simply amazing. Easy( at least for me) to learn if you are coming from another language, eg C++ or Java, although there are a bit of learning curves, but easy to overcome. And he is not lying about the compiler speed...it is insane. I am enjoying Go so much haha
+rbrick (Ryan) how do i make a server in C with a data base with teachers and students with grades ? I heard that the code for this is out there, on golang.org, but I can't find it...can you help me ?
You're asking about C, not Go...
Take an online course on C or a better language for this, and a class on servers/databases. Maybe take harvard's CS50
sounds nice.. will look into it.
and now 10 years later they're keeping the same promise, with a better compile time! Looking forward to Go 1.14 on Feb 2020.
46
Sounds good, maybe I try it 😀
it is like this in every video, even those with screencasts/presentations ...
I've learned Go and I like it a lot, it feels very modern compared to other compiled languages. I wish it had Generics though, and better support for functional programming.
+Sushi how do i make a server in C with a data base with teachers and students with grades ? I heard that the code for this is out there, on golang.org, but I can't find it...can you help me ?
can u use go to build mobile apps?
Theoretically it has compilers for arm, then YES, you can compile go code as "android JNI" and use it into android environment.
I hope you are still around. Generics are coming soon :party:
For anyone reading this in 2022+: Go now has decent support for generics.
Anyone interested in broadening their programming breadth. Or anyone who's interested in doing distributed programming. Or anyone interested in learning something new.
1) Yes
2) Everyone
There are some tasks especially well suited for Go.. It is worth it for a professional programmer to be at least aware of those strengths such that Go can be used when it has a clear advantage.
1:13 LOL Those are good reasons. I think
O'Reilly
has taught me so much tytyty
at least Go is seemingly built by people that end up using it, so that should make it catered toward developers, not catered toward compiler developers, at least I hope...
Crisp, fast replies..
I've started learning Go two days ago so i don't know much but, the speed is insane. I've come from C/C++ background. And i must say Go is much faster
Who's watching at 2020
Cool
Golang is amazing
C++17 also getting efficient imports
C++21 you meant
Christ so it took C++ 17 versions to figure that out?
@@harindaka it is just much harder to implement modules while keeping backward c compatibility
@@harindaka Well, it has figured out dozens of things Go has still not figured out...
@@harindaka Not "figure out". You seem to have a flawed understanding of how these technologies work. Innovative and modern languages like Go and Rust aren't actually new, these ideas have been part of popular discourse for literally decades. Unless you have a super proprietary closed source language and ecosystem, there're very few reasons to think the community of maintainers is just too "dum" to "get things done".
Maintaining a language is an incredibly complicated and demanding process, especially when you're trying to offer the best compatibility with C code out there.
So the code you wrote runs exactly the same no matter what platform you run it on
I think that NO, it will be the same problem as other "platform independent" languages that you have to implement function for almost each platforms because these depends of some modules are made to interact with some SO libraries.....
Is the same promise of all the "multiplaform" languages.
yes, as long as you don't make your own code depend on a platform
Humm I never understood why we needed a virtual machine in the first place.
Because VM makes it easier to run your program on any OS, be it Windows, Mac, Android, Linux, without any changes in code.
Make no mistake, VMs have their advantages. They allow for introperspection or realtime code update. Or they can modify the runtime behaviour. VMs can make heap allocations very, very cheap. That is why some of the fastest JSON serializers are written in Java. But also operations like String manipulation or reallocating an ArrayList (aka Vector) are very efficient. Also a VM can do some very crazy / risky kind of optimizations that are platform specific. AOT compilers always have to be conservative and cannot do runtime analysis like a JIT can. So a JIT could do speculative optimization or try to reduce cache misses.
The "run everywhere" argument Java popularized is actually extremely overrated and completely out of date in today's landscape. E.g., truly cross-platform technologies like Unity and Flutter don't ship bytecode. And the second big name to shamelessly follow Java, C# has become exceedingly AOT-focused in recent years. If you're working in the cloud, there isn't a single reason to manage your own VMs at a language level, you'll only be slowing down your application with unnecessary abstraction.
That said, the real, the actual reason why and where VMs are helpful is rarely mentioned by proponents of the VM-apocalypse. That being, for languages with a huuuge runtime, it makes sense to carry around only the bytecode instead of the entire runtime packed with it as that'd cause size bloat of significant magnitudes. This is why VMs truly shine in some scenarios like, JS in the Web, Python in Notebooks, etc. But again, like I said before, the industry is beginning to detox from this 'anti-pattern' of programming language design in recent years. Super high level languages like Julia prove how a 'mixed' solution works fine if not better. And case in point, Go proves how a good language with a good compiler can process millions of lines of code by the time a VM has finished warming up for a simple hello-world program.
I cant keep up anymore.
Golang is worth keeping up. I learned it a few days ago.
Prepare for the inevitable "Go 2 considered harmful" comments :-) ... Seriously, Go looks nice.
C is proven longevity my friend, and will continue to be around, IMO.
Go 2 considered harmful! ;-)
The amount of wasted space on the video is disconcerting.
Google Go seems, in my opinion to be language that has the built in features of a scripting language with the perk of having the inherent efficiency of a compiled language. There are some features left out that I find kind of disappointing. Like not being able to pass variables by reference;
How do you mean? You can definitely pass variables by reference in Go.
@@Mike-iz9kh He was probably talking about the syntactic suger C++ has where there's a distinction between "pass by reference" and "pass by pointer".
I come from C++ too and initially I had the same reaction but now I feel that considering how Go tries to be a more explicit language, it's totally justified how they don't have C++ style "pass by reference".
Should I learn Go in 2019? I already know Python, C and little bit of JavaScript, Java and C .
By the way, I am 15 years old.
I definitely recommend it.
"Java compiles to shIT"
O'reilly isnt really convincing with 0 Golang books in its inventory. So talk to mahh handdd.
2017, here. Still nothing. Well, one 60 page brochure. That doesn't count.
Ray Koren Oreilly has no commitment to Go.
Swift
Nimble
go built from?
c++ or c.....
Here is the current usage of languages in the go repository:
Go 86.0%
Assembly 8.3%
HTML 5.1%
C 0.4%
Shell 0.1%
Perl 0.1%
After Go1.4 it can be bootstrapped by Go now.
2019 ?
I find go very messy and disorganized. The dependency model is not clean or simple, and has caused me many a daylong headache. It basically took C++, and took away all the things that make C++ organized. We're left with a language which is good for nothing other than pipelines. It's a fun toy, but IMO good for nothing other than prototyping.
Looserof7 you’re arguing against an opinion...?
I dunno, I find it way too difficult to set up and compile C++ projects. C++ dependencies make me want to rip my hair out, whereas with Go I can just `go get` them and I'm done.
@@BrandNewByxor Go tooling wasn't as great when he wrote that comment. I guess languages need to be out there for at least a decade to get to a competent level.
Go go go to the gym
php is better anyway
^ stereotype webdeveloper.
"I'm too lazy to learn a new language so I will just claim that this objectively terrible language I'm comfortable in is better to avoid having to take responsibility for my joke of an existence as a software professional."
Ralph Fischer bro
lowkey, just got cancer
LOL.