Upload

The Go Programming Language

by GoogleTechTalks • 354,041 views

Google Tech Talks October 30, 2009 ABSTRACT Presented by Rob Pike What is Go? Go is a new experimental systems programming language intended to make software development fast. Our goal is that a...

Comment failed to post.
What I want to know is how they've managed to garbage collect without a massive performance hit.  I mean, it's really good for the majority of business software, but there's a reason why hardware drivers are still all written in C... As to complaints about the language having semi colons, if you want to be able to write a statement on more than one line (can be useful for making code readable) you either need to signal the end of the statement, or you need to enforce layout.  Personally, I prefer the former.
Report spam or abuse
+Parker8752 "there's a reason why hardware drivers are still all written in C" The reason is called "inertia"...
Report spam or abuse
+Gath Gealaich If by inertia, you mean that nobody has come up with a replacement for C that has all of its strengths, then yeah.  The thing is, hardware drivers need to be efficient.  Garbage Collection takes up resources.  OO takes up resources (especially once you add polymorphism).  Generics take up resources.  When writing hardware drivers, you don't want any of these things, because you need it to be as efficient as you can possibly make it. I mean, sure, resources aren't at near as much of a premium as they used to be, but you still want hardware drivers to use as little as possible, so that everything else the user is doing has more to work with.  The reason C is still used is that while Assembly is strictly more efficient, C is easier to work with than Assembly (and far easier to port to other CPU architectures), and nobody has bothered to replace it with something better yet. I have hopes for Rust - I hear that it compiles pretty much just as efficiently as C while being a much better language overall.  If it can compile just as efficiently then it would make for an excellent replacement for C (and not a moment too soon - at nearly 40 years old, it's showing its age).  Go, on the other hand, might be a good replacement for most of what C++ does (also not a moment too soon - see comment on C regarding age, but 30 instead of 40) - but unless the garbage collection is done far differently to the way most garbage collected languages do it, it can't be a good replacement for the kind of software that C is best suited to.
Report spam or abuse
Report spam or abuse
That's the weirdest language I know. And I thought Ruby was weird.
Report spam or abuse
Report spam or abuse
Report spam or abuse
Report spam or abuse
johanovanoha Shared on Google+ · 1 year ago
Report spam or abuse
Report spam or abuse
Вакансия  Руководитель проекта, разработчик  SQL The Go Programming Language  т. 050 410 24 38
Report spam or abuse
Вакансия  Руководитель проекта, разработчик  SQL The Go Programming Language   http://rabota.ua/employer/add_vacancy?entityAction=Edit&vacancyId=5419419&pageIndex=0&userId=0&enableSearch=False&vacDesignType=ByStatePublicated
Report spam or abuse
forced formatting is bullshit i hate python for it  now i guess i hate go for it uppercase public my ass
Report spam or abuse
Drew Sullivan Shared on Google+ · 1 year ago
Great intro to the language GO
Report spam or abuse
Ok, if you're going to keep being so obtuse about it, I'm going to say one more thing about the subject of garbage collection in C++, and then I'm not going to continue this pointless discussion. Because of the stupid YT char limit, my response is in my next reply comment. (Turns out I'm slightly wrong, btw, C++ does not REQUIRE a garbage collector. But it allows one, and I believe it is standard implementation.)
Report spam or abuse
I try java often. only in some particular cases do such claims hold true and in no real-world apps i have seen, could the case be made it couldnt have been made faster in c
Report spam or abuse
What are you talking about? Many years ago a fine new language was called Simula which was compiled - not interpreted - and it had garbage collection. Go is in that same tradition. Saying there's no such thing at a presentation of such a very thing seems kinda silly to me.
Report spam or abuse
Fast compilation also means some application may write / rewrite Go code on its own and run it in very short time. It's good for smart scripting or research on evolving programs.
Report spam or abuse
I would have thought that we are in an age where each line of code doesn't have to end with a semi-colon to be parsed. Come on.
Report spam or abuse
DMD core is a closed source, maintained by walter himself and only 32bit. LDC 64 linux only, win32 port still far away, i've talked to the devs themselves.
Report spam or abuse
There are others language more productives than C/C++, but C/C++ is faster, OK Google folks have to make up a revolutionary garbage collector, to achieve what they promised....
Report spam or abuse
No, real men write it to their SSD with the world's smallest jumper cables.
Report spam or abuse
It's all lies. LIES & LIES. They just wanted free human capital! programming languages? really or label to recall database of math functions? Are there such things as patent on math equations? Who invented the quadratic equation, did he get pay? So the advancement of civilization still depend on the math scholars. Like ancient Greece, only to be known if they teach or it were stolen/object of conquerors.
Report spam or abuse
Report spam or abuse
24:42 "a slightly different example."
Report spam or abuse
I do I have to point out AGAIN that one of the two guys who created Go happens to have also been one of the two guys who invented C? Every single programmer in commenting on this thread added together into one Megazord programmer would not have one percent of the programming skills of Ken Thompson. Quit trying pretend you know more than he does. You don't.
Report spam or abuse
We still use a von Neumann architecture, so I wouldn't expect programming to have changed drastically. After the arrival of high level languages, differentiation became a matter of style, syntactic sugar and code organization. However, the push toward parallel processing is driving innovation. Similarly, operating systems have been relatively stagnant, due to the need for compatibility and consistent metaphors. 3D interfaces and virtual reality will free us from cliche metaphors.
Report spam or abuse
Concurrency is the way to go! IMO, Go's syntax should be more like CSP's. It is hard to see the composition of processes. What about interruption? That would be an interesting feature. The other thing I thing is missing is the possibility to do some type of model or refinement checking ... it is possible, just look at FDR and SPIN. ;) Good job!
Report spam or abuse
And I suppose the margin here is too small to hold your proof. Thanks for that, Fermat.
Report spam or abuse
Report spam or abuse
It looks like this is pretty good choice for server development. It has many of the features that I liked in Python, and gives the extra bit of control that you don't get from Python.
Report spam or abuse
This looks like a very interesting language, although the syntax does seem pretty ugly, but I guess build-times make up for that.
Report spam or abuse
Who transcribed this? They did a terrible job, it's full of obvious mistakes!
Report spam or abuse
I can see why I'd use Go instead of Java or C++. I can see why I'd use Go instead of Python or Javascript. However, I can't see why I'd use Go instead of Perl. Good to see a new language, it's been too long. I like the channels feature, and I'm going to check out the website. But it does feel like 'scripting for C coders'.
Report spam or abuse
No matter how many new languages come out they still don't get it. Simplicity is the most important thing. When ppl see a language that looks like a mess of code they get turned off right away. What is so bad about BASIC style codes?
Report spam or abuse
the compiler is implementing it as 1 thread per goroutine
Report spam or abuse
The interface concept is beautiful. Passing of objects under various unassuming contexts without multiple inheritance (evil) or templates (rabbit hole) = Kickass.
Report spam or abuse
Does anyone know if it's possible to get the google tech talks as podcasts?
Report spam or abuse
It's just static duck typing and takes quite a performance hit: methods must be searched for
Report spam or abuse
D language of digitalmars is much better than this language
Report spam or abuse
Also, are people aware of the Scala language at all? Scala is *quite* good. It seems everyone has their own ideas and I'm afraid that people aren't aware of work already done.
Report spam or abuse
I think this language will become really great and used widely, but the thing that it still is a bit slower than C/C++, which makes me sad :P
Report spam or abuse
javascript is a scripting lanaguage it only works on browsers which are usually written in c/c++, get out of here noob
Report spam or abuse
This is less about creating a new language and really about making it easier to write online apps that will run on google servers. That is why all the talk at the beginning about scaling efficiency. This is just the next step in Google's plan to rule the world by eliminating os dependency and moving everything to the web. Google wants everything to become a web service. This is a very good start in that direction.
Report spam or abuse
Can anybody give me the "Clarity about Binding" as far as dealing with C Lite programming
Report spam or abuse
but then what whould happen when you actually needed one?
Report spam or abuse
All right then. Use Go! and pretend it's compiled. Java people do the same and they're happy with it.
Report spam or abuse
(1) The point is, the distinction between interpreted languages or languages that run in a byte-compiled environment and languages that do not is far greater than the distinction between languages with or without garbage collection - and that was my point. Go is - like simula - a fully compiled language that does not run in a byte-compiled environment such as Java, Python, LISP etc. In fact garbage collectino is a big win for most application programmers and the only drawback is that you (2)
Report spam or abuse
Report spam or abuse
Please improve the subtitles. (perhaps ask speakers to make a transcript of their own talk)
Report spam or abuse
Hi, I was wondering if the subtitles have been generated automatically or not. There're many mistakes. Here are the ones I remember: "MT" instead of "empty" "point arithmetic" instead of "pointer arithmetic" (critical mistake) "to trial" instead of "tutorial" And many, many english errors, along with a very bad punctuation (misplaced comas and points). Thanks for posting the video Regards,
Report spam or abuse
@BinaryReader Faster Development vs. Managing memory differently / increase in processing speed. It is a trade-off alright.
Report spam or abuse
The reason why I ask if Google would use its Go language to re-write Chorme, or even Chromium is that I am looking into using the language, and one reason I would do it is if Google stands by its creation. Having Chrome or Chromium re-written in Go means the equivalent to having UNIX written in C. Then they would have put their money where their mouth is, and I would know they stand by their creation.
Report spam or abuse
I can't believe he says its slower to do development these day. I remember back in the day when we had only C and Emacs as language and tools. It sucked and was way slower development time. Also what the hell is "System" development? I thought it had to do with hardware.
Report spam or abuse
I understand that, I was basically pointing out that the concepts that were being presented are not "new" as they are being advertised. They are being brought to a lower level, sure, but they aren't new. Wow, I sure got a lot of hate for posting that...
Report spam or abuse
Even smart people Go! ahead and make mistakes sometimes.
Report spam or abuse
Most programmers don't realize how much energy has gone into trying to make python run faster. Many projects exist for the sole purpose of solving this problem and all of the ones I have seen (Pypy, Psyco, Pyrex) provide their own dialect of python (example: Pypy uses RPython -- aka "Restricted Python"). Go appears to be approaching this problem from the other side by starting with C++ and making it more python-esc. As a big fan of both python and C++, I can't wait to see what it is capable of.
Report spam or abuse
This is a cultural phenomenon. There's nothing inherent to logic or software design that women can't handle. Historically women have been rather busy raising children, etc. This has created a cultural divide between men and women. It's reflected in how children are raised before they go off to school, and permanently burned in to our minds by growing up in a divided culture. We need to work towards a less divided world, which will require many generations.
Report spam or abuse
Extremely limited type inference, no implicit conversions. This in no ML.
Report spam or abuse
Actually it is, if you want I can send you a message with the algorithim though.
Report spam or abuse
Does anyone know how fast Go is, compared to C, C++, Java, etc?
Report spam or abuse
me too , i hate blogger , and i can live without G+ , but everything else is really important for me
Report spam or abuse
@kennethadammiller Go is already out- this is just an old video.
Report spam or abuse
Said the guy who claimed that SIMULA and Go are interpreted languages. A little wake-up call here - it is you who are rambling, not me.
Report spam or abuse
Report spam or abuse
Report spam or abuse
Shame for the censor - I bet the "best scores" to the comments You score yourself/
Report spam or abuse
Paranoia? I really don't know where you're getting that from.
Report spam or abuse
Two options: var myvar int; myvar = 0; or you can declare myvar:=0; In this case you don't declare the type of the variable but it is dynamic as Python! ;)
Report spam or abuse
SIMULA and go both manipulated memory directly. The runtime system have a garbage collector module which does some work every now and then to garbage collect and that is the reason for the externsive runtime. However, while not garbage collecting, the code is not much different from C++ or C or assembly. The main thing in addition to the garbage collection runtime is various restrictions in pointer manipulation etc which the language have to enforce in order to be able to garbage collect. (1)
Report spam or abuse
Your thoughts are twisted and you may not have enough mental capacity to make it worthwhile to waste your time with computers. You would be happier doing something else. And the voices in your head would eventually go away.
Report spam or abuse
You can write C++ or Java in notepad, if you love misery. Don't confuse the Integrated Development Environments like Visual Studio or Eclipse with the actual programming language. Of course they used tools to create their compiler, that's how it's done. Then you re-write the entire compiler in your new language, and compile that with the C++ compiled compiler. Then, your compiler can compile itself, and you can be much more certain your language is sound.
Report spam or abuse
You could but you would obviously just be trying to capitalize on google's success. Do you think google is trying to capitalize on Go's success with "Go!"?
Report spam or abuse
last reply from me, ..quoted from D compiler front-end license (in the download in case you didn't know ;) ) "Compiler Front End Source - These sources are free, they are redistributable and modifiable under the terms of the GNU General Public License (attached as gpl.txt), or the Artistic License (attached as artistic.txt). It does not apply to anything else distributed by Digital Mars, including D compiler executables. -Walter Bright" read the last sentence.
Report spam or abuse
I don't understand one thing: what does 6c do? It's called "c compiler" - is the go-code translated to c and then compiled? Probably not, so what is it for? Also, is it possible (theoretically) to make a go-compiler for microcontrollers, like the AVR? Would it make sense?
Report spam or abuse
"Some C++ implementations automatically recycle the storage occupied by unreachable objects (garbage collecting implementation) ... Even when a garbage collector is running, delete will invoke a destructor if one is defined, so it is still a serious error to delete an object twice." -- The C++ Programming Language, 3rd Edition, Bjarne Stroustrup, Addison Wesley Books
Report spam or abuse
Did you out these with the gccgo compiler as well? Which was told to be more thorough, but as a penalty way slower than the speedy (6c?) one.
Report spam or abuse
@UnitedPebbles yes i wonder who stole what from who
Report spam or abuse
These are Plan 9 conventions. In Plan 9 the C compiler is $c where $ is the platform identifier such as 8 for 386 or 6 for x86-64.
Report spam or abuse
It's great to have something new doing things a bit different. It's great to see if running on a mac too!!!!
Report spam or abuse
@BinaryReader In many cases you are quite right. C++ and C has its place. primarily in embedded real time systems and in time critical systems like system programming and similar. I would not use them to develop, lets say, a administrative system though...
Report spam or abuse
Really? You've been programming since the 80s and you don't understand the phrase "systems development"?
Report spam or abuse
@KrakensDen I know. I think that what I should have wrote is "as soon as it becomes significantly prevalent" many languages are created, but few make the cut. have you ever heard of x++? hardly any use it, but it's out there. I just want to see that a lot of people adopt it.
Report spam or abuse
@BinaryReader: "writing optimal and safe applications in C++ is just plain difficult, and doesnt yield anymore benefit than to use something else." Not to mention that fast code C++ does not arise spontaneously, even if C++ helps you a bit, it can easily generate a bloated pile of instructions that fills neither the instruction cache nor the data cache efficiently enough. Look up the DataDraw project on SourceForge to see what I mean by this. :)
Report spam or abuse
Somebody's got to take the garbage out. I'd rather have my memory managed by an automated, optimized, reliable GC.I don't want to have to re-invent all that every time I build a new system. Do you? Would you be doing your own GC by hand if you got paid to produce working apps and you got docked (fined) for every defect? I think not. ;-)
Report spam or abuse
all theses "ums" are "umbelieveable". i can not continue watching. sorry.
Report spam or abuse
@JoseThePhd actually it's worked very well, the difference being that Google's objectives are wide and varied in the technology market. Look at the massive support behind their APIs.
Report spam or abuse
I know this sounds premature at the moment (I haven't tried Go yet), but, if all Go's claims are true, then Go really rocks. Looks like a C++ and Python/Lisp hybrid to me! Great job Google!
Report spam or abuse
I'll keep my reply polite: Maybe I'm wrong or dilusional then or do you really think because he did not choose a GPL licence, you think it's closed source? Please read backendlicense.txt from dmd.1.041.zip or later ( it's in /dmd/src/dmd/ ) you'll also note the directory called "backend"
Report spam or abuse
There is nothing wrong with a Garbage Collector. I get a little tired of hearing people talk about how fast C/C++ is without considering the productivity of other languages. Writing large scale applications in C++ just isnt practical for 99% of software development today. furthermore, writing optimal and safe applications in C++ is just plain difficult, and doesnt yield anymore benefit than to use something else. just saying is all.
Report spam or abuse
Oh I see. You have absolutely no idea what these computers things are. C++ has no garbage collection. You're confusing it with the fact that stack memory (and stack memory only) gets returned to the system when a function exists.
Report spam or abuse
I was just replying to K1ckingNScr3aming. You know about Google trying to take over the world.
Report spam or abuse
For the what you give up in execution time for what you gain... concurrency and garbage collection as well as a lighting fast compilation, it's a really good trade off. Yes, i know C is really fast, but you have to understand that efficiency between languages has to do with a lot of variables. Like, which parts of each language are more efficient than the other. I think that I will adopt Go programming as soon as it comes out. until then, i'm a C/++ programmer. (i'll probably learn python too.
Report spam or abuse
Report spam or abuse
@DrDubnium /me WOOHOO! btw, i cant upload vids for a while because i have run out of broadband :)
Report spam or abuse
Yeah, that's what we all said about Microsoft, ten years ago. Nobody will ever "engulf everything", because everything will keep changing and morphing out from under them.
Report spam or abuse
@WCverfrisser: "I think this language will become really great and used widely, but the thing that it still is a bit slower than C/C++, which makes me sad :P" The reason why Go is currently slow is because the compiler right now is quite simple. Go is by no means significantly slower that any comparable C compiler - Tiny C Compiler, for example. Right now, it's designed to compile quickly. Compilation of reasonably fast "release" code might easily follow.
Report spam or abuse
Show more Loading...
to add this to Watch Later

Add to

Loading playlists...