Added: 2 years ago
From: GoogleTechTalks
Views: 269,283
Sort by time | Sort by thread (beta)

Link to this comment:

Share to:
see all

All Comments (335)

Sign In or Sign Up now to post a comment!
  • I want this video on my CUPE phone.

  • This vid is a favorite on Chisinau

  • Go to hell Google.

  • A lot of languages come and GO (wups.. bad choice of words) but C seems to say :) and honestly I am quite happy with it! :)

  • He got me when he said, too many libraries. YESSSS HEARD THAT. JS Is shit bcuz of this, inconsistent & incomplete thousands of similar libraries. i know Go is dfrnt thing but God someone need to do the thing already to fix this.

  • 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.

  • i like cheese

  • much database

  • Doesn't Haskell have all of the things he says are lacking already?

  • 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.

  • 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.

  • @d0m96 in Go, you can choose

  • @alexander256 so it's like javascript?

  • @d0m96 Not exactly. JS semicolon insertion requires knowledge of parser state. If you encounter a token that would be a parse error, and the previous token was on a previous line, then a semi is inserted and a reparse attempted. Or something like that, I don't fully understand JS semi insertion.

    It's comparatively simpler in Go. When the lexer encounters a line break, and the previous token was one that could conceivably end a statement, a semi is inserted. See the Go spec, Semicolons section.

  • Why on earth is tech talk comments spammed with porn?

  • Now we only need the Worlds First GooGle IDE ! (WFGGI)

  • PYTHON 3.1 FTW!!!

    check out mah channel for pythopn 3.1 tutorials, there is a serious shortage!

  • @TheMedic1231 /me High fives Medic.

  • @DrDubnium /me WOOHOO! btw, i cant upload vids for a while because i have run out of broadband :)

  • Hotspot Java seems to be faster or similar in speed to GO. So the reasons you wanna use GO are better integration into C (seems nice), and you like the ideas of channels and the presented concurrency. However you loose nice static analysis support and IDE support, which makes go a no go for bigger projects.

  • 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. ;-)

  • It always seems like Rob Pike should be older than he is...I don't really know why other than he seems like a contemporary of Thompson, Ritchie and Kernighan even though I guess he's not. Totally useless post. Sorry.

  • Am I the only one that misses OOP and classes? I mean, GC is nice, speed is nice as well as concurrency but... imagine programming anything bigger without classes and objects.

  • He has some good ideas, but the syntax looks messy.

  • the most importan question is, when will go as fast as java? Given now that go is considerable slower it makes no sense at the moment to switch from java to go. Hope that changes in the next 12 months or so (fixes in the garbage collector,etc.).

  • all theses "ums" are "umbelieveable". i can not continue watching. sorry.

  • Thank god that I write programs for mobiles and for the web, cuz I don't have to deal with this "whick lang is faster" dilemma. I'm just forced to use java:j2me and php,css,js instead :D:D:D

  • @Juhi04 yeah, because there's no such thing as flash, aspx, cgi, perl, python... and all mobile platforms are exactly the same and use all the same hooks. I get what you mean that there's more holy wars around languages for desktop applications, but at the same time you don't make your point very well by pointing at an emerging field of programming where new languages and paradigms are bound to spring up sooner or later.

  • 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,

  • 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.

  • The Go compiler is fast. It must be written in c++. ;-)

  • @spsmith1965 At the end he says it's written in c. Even better. I love how he touts the speed of the compiler which is written in c. Some things never change.

  • Go was already gone.

    now get back to C++ :D

  • the syntax is horrible but maybe it's just me

  • 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?

  • @firehead333 lua is very simple too

  • @catalinaguerrero not as simple though. ;)

  • @firehead333 , how u dare to compare basic-based languages with c-based languages? I think you need to see a psychiatrist ;-1

  • @dario4u Basic was here first. ;)

  • what about the "D" programmng language ? It seems an interesting language too...

  • @ianredford2001

    even it's D ,it's still in behind C ;)

  • its failure when you implement it only of minor OS like sucking apple fag OS (nazi steve jobs OS)

    Ideas are good by the way

  • Shame for the censor - I bet the "best scores" to the comments You score yourself/

  • 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.

  • Comment removed

  • ...damn/ A whole movie. I'll go for popcorn.

  • the channels are really good !

    i'm going to trying

  • He's a very good speaker.

  • @extenableuser what's up with the hate man? Different languages have different specialities and fields of application; a certain language doesn't make you a good or poor programmer. you certainly have no proof to say any of the things you have so far, and that's just not a fair way to make a sensible argument. you know nothing about me or my skills.

    I feel that a healthy balance between high and low level languages is due. This way, both execution and dev speed can be emphasized as necessary

  • @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.

  • s/Wade Park/whiteboard

  • 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.

  • @kennethadammiller Go is already out- this is just an old video.

  • @kennethadammiller Sorry, but it doesn't sound to me like you're much of a programmer at all. I've had plasters in a kitchen drawer but that didn't make me a surgeon. Steve Jobs said most programmers were mediocre and the best were several hundred times better than them and he was right. Oh the humanity. And oh the mediocrity. I fucking hate mediocre people.

  • Not bad, but... Python :) Not so fast, but very nice and simple to understand

  • @cesky1 Simple is good for simpletons.

  • Can anybody give me the "Clarity about Binding" as far as dealing with C Lite programming

  • 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

  • @WCverfrisser

    Slow is so relative. If a language causes you to use better design then your program may very well be faster.

  • @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.

  • 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!

  • D language of digitalmars is much better than this language

  • I agree.

  • This is really a good video! They are doing the same that I do!

    ^_^

  • sockets should be handled like channels.

  • I think that C/C++ are going to be faster than go , because google folks think to put a garbage collector....

  • 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.

  • 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....

  • They probably peek at the JVM source code to figure out how the best garbage collector works.

  • @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. :)

  • @BinaryReader You have to first define what your target group is. If you're referring to mediocre median programmers then what you say is true. Otherwise it's just a bunch of malarky. And I as one of many am sick and tired of being burdened down by the rank and file who just can't hack it.

  • @extendableuser It's not about being able to "hack it", and i hope you don't mean that literally.

    I'm specifically referring to productivity, Note, I don't have any issue with C/C++ as languages, i used them for several years, but I am in the business of delivering projects in and on time, with the least amount of fuss.

    Sorry, but calling people simpletons for using managed languages demonstrates your lack of understanding of how the industry works.

  • @BinaryReader

    Faster Development vs. Managing memory differently / increase in processing speed.

    It is a trade-off alright.

  • @BinaryReader Its actully the case that modern GCs are faster than the normal C++ stuff but slower then high optimized C++ and most C++ers don't know how to do that so C++ ends up slower than with GC.

    A lot of people like bjarne stroustrup (the inventer of C++) wanted to add GC to C++.

  • @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...

  • 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.

  • There are so many mistakes that can be made. The only way for a new language to be successful is to understand all the mistakes in the previous ones. Not having that understanding means history will simply repeat itself.

    Eg. untyped variables and how errors only at runtime destruct a language - smalltalk anyone?

    People that immediately jump up saying untyped variables are a good thing don't have enough experience.

  • @a1mint

    Anyone that says strictly type languages are a good thing simply don't have enough experience in real world applications.

    There is a huge amount of power and flexibility in a dynamic language and simply saying they are bad shows real immaturity in application development.

  • Not so hasty with your accusations about "maturity" buddy. I'm a hard core coder for well over 25 years. Chances are I have seniority over you.

    I'm simply stating that it has been my experience that all the things that the compiler doesn't catch at compile time, become a huge major pain in the ass at runtime. It's very difficult to test ever scenario, even with test cases.

    I've seen large architectures fall flat on its face because type mistakes would only show up at certain customers...

  • Also, wrt dynamic programming, aside from variable not having a fixed type, what is your idea of the dynamic aspect of programming?

    Self modifying code? Looking at objects at runtime (similar to Java introspection)?

    Passing code blocks into variables?

  • Hi, can you tell me if it is possible to use database with Go?

  • Sure if you write the wrapper code.

  • 24:42 "a slightly different example."

  • There are some errors in the subtitles.

    15:26 "when you get into this dependency trees"

    16:17 "for you and utterly transparent"

    15:48 "words like thread or process or coroutine,"

  • Fun?

    Well at least I made a hello world before going back to Python. :)

  • The keyword being "back", Uberware. Just kidding. For the last 6 years I've been using C and Ruby the way Google plans to use Go and Python.

  • Oops! awful mess that has put Google to Francis McCabe and Keith Clark, if Google will not soon change its name to programming language called GO, Google must pay millions of dollars to the creators of the Original programming language designed also called GO in 2003.

    Please look this is true Google has gotten into much trouble! for having given "GO" a name that already existed for over 5 years ago and they are using in their programming language.

  • @Zasket2 There's an issue but it's no problem for Google. McCabe doesn't have a registered copyright on Go!

  • @Zasket2

    Go and Go! are two different languages. Just like C and C++ are two different languages. Why should Google get in trouble?

  • You are right, my next company will be called "google!"

  • 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!"?

  • The interface is why Go could be a good system language.

  • but then what whould happen when you actually needed one?

  • Pointers aren't bad, pointer arithmetic (aka pointing to something that is not an object) is bad

  • 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.

  • Are you going to rewrite Chrome using Go?

  • No. Go isn't widely used at Google at the moment, but even if it were they wouldn't scrap an entire codebase just so it looks different when it would be functionally the same.

  • 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.

  • Well this is only a small team at Google, completely unrelated to the Chromium team. I'm sure most of the Chromium team would simply quit if they were asked to rewrite all their hard work in a different language just so Google could say "we stand by Go".

  • @blotchryanismi, Then I would just have to wait and see. I have seen Google throw out there a lot of open sourced code, but they seem to just write it and move on to the next project, expecting the open source community to pick up where they left. Although the initial code is solid and the intentions are good, I doubt this has worked very well; it might work with Go, but who knows.

  • @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.

  • My initial reaction was "Oh goody, another OOP language here to save our lives... just like was claimed of Ruby and Python the last few years..."

    But if the hierarchy is structured so I have worry less about inheritance, I'm certainly going to take a look. Seems like the parent-child relationship is going to be screwy though... (at least in my mind that's the only way I see it being possible)

  • ":=" has not been pumped from pascal lang ?

  • the syntax is very awful like := , no if,for ..etc braces , the way of defining a function ....etc

  • := isn't awful, it is just a shortcut for non-declare variables!:)

  • so if i declare the variable , we use just = ? :)

  • 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! ;)

  • Nice , but ithink if GO give us just one way for declare the var is better coz people will think using a certain way for declaring variable will be better for higher performance ..

    thanx :))

  • 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'.

  • people, do you know what memory-safe mean? NO MORE BUFFER OVERFLOW!!!

  • I like c++, but this is a whole new language on it's own platform?

  • inventing a programming language that will eventually over run all phones, computers, GPS systems, and cars seems like a good way to go for me. :)

  • Eventually isn't a practical timing in most software projects.

    Seriously guys, we should be improving/integrating what already works not reinventing the wheel

  • I agree it has some things that I don't like but can you please tell me what language do you think they used for writing the compiler? That's right c/c++.

  • @MateiAlexandruBogdan

    C/C++ has been used for compiler development for many years but it doesn't mean that it's the best language out there.

    C/C++ has lots of differences between different implementations, its memory system makes it slower than some other languages such as fortran, it hasn't automatic memory management or runtime code optimization. Moreover it uses an unsecure type system extremely hard to debug in comparison with Java.

    Anyway, C/C++ is by far the best system programming.

  • Please don't think that I don't have hopes for go. I want it to succeed. And I think that if any company is capable of creating a c/c++ replacement, it's Google.

  • Seems lyk a lot still needs to be done in terms of libraries. I wonder how Go would turn out to be if Donald Knuth were on the Go development team. :)

  • Comment removed

  • Statically typed language with the easy of dynamically typed languages = type inference. This has been done since the 70's with the ML family of languages.

  • Extremely limited type inference, no implicit conversions. This in no ML.

  • 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!

  • I'm sure it has many clever things under the hood but that syntax is not fun, quite the contrary.

  • This looks like a very interesting language, although the syntax does seem pretty ugly, but I guess build-times make up for that.

  • Ken Tomson is the greatest computer science engineer, but his new brainchild is ugly. Syntax and sematic of language are hard to understand, code look like terrible mess.

    But anyway, goroutines and channels conceptions are very interesting. You can find channels (really it are lazy evaluation) in haskell, goroutines is close to erlang processes.

    Truthfully, the language may take own place in contemporary programming.

  • Ken Thompson is ok, but he's certainly not the greatest or even close.

  • Please improve the subtitles. (perhaps ask speakers to make a transcript of their own talk)

  • Does anyone know if it's possible to get the google tech talks as podcasts?

  • It's great to have something new doing things a bit different. It's great to see if running on a mac too!!!!

  • Comment removed

  • I love how

    package main

    x:= 0

    yields "syntax error near x" instead of "illegal due to stupid pointless non-orthogonal restriction of short assignment syntax to functions"

    Another fun bit of ad hoc idiocy: int(PI) is legal if PI is a var but not if it's a const.

  • 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.

  • The interface concept is beautiful. Passing of objects under various unassuming contexts without multiple inheritance (evil) or templates (rabbit hole)

    = Kickass.

  • It's just static duck typing and takes quite a performance hit: methods must be searched for

  • Whilst it is a pity that this language so closely resembles the hackneyed BCPL family (C, C++, C#...) in terms of its syntax, I feel that people should look beneath this superficial ugliness and credit this talented team for all the effort they have made with the semantics. Just having a concurrent, garbage collected, fast systems programming language which compiles in a snap is enough. Credit should be given to them for making it Open Source too.

  • C plus is still root code.

    nothing ground breaking i will stick to perl

  • Does anyone know how fast Go is, compared to C, C++, Java, etc?

  • according to the slideshow, 10% - 20% slower than C

    Probably a fair bit faster than java.

  • You should try Java today (with server mode and async gc), you'd be surprised how fast it runs.... (faster than C+ or as fast as)

  • 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

  • We are not looking at the same ones... or they are badly written - like in any language, it can happen. I see the opposite: lots of badly written C++ programs running slower than Java. Like always, the issue is the programmer, not the language, but it is not because it is written in Java that it is automatically slower.

  • @thierrytheviking

    Oh it is, the need to check every index and the zillions of dynamic type casts in generics is slowing it down at lot.

  • @thierrytheviking mate, that is a lie. Java can never, ever run as fast as Native C, as it's based on C, making it a 4th generation language, not 3rd.

  • Ok, let's try it: implement an algorithm that iterates 100 million times over an array, each time doing a new (malloc for you) of an object/struct, and invoke a calc method on that object/struct, doing a simple calculation let's say current index++, see how long your program runs?

  • You are a stupid fool. Don't talk about compilers if you have never written one.

    Both compile to native machine code. This is _NOT_ the reason why it can't be faster or fast as C.

  • As Ken said on one of the last slides, you must excpect 10 to 20% slower that plain C.

    But think of all you get for this little extra overhead...

  • what the hell were they thinking when they said "we wanted to make the programmer write less" ... sorry, but code is read more than written. so readability should be more important than trying to save few keystrokes.

    and come on - really? lowercase -> private, Uppercase -> public ... wtf.

  • Readbility is not necessarily improved by having an expressive syntax; if you think otherwise, take a look at perl. Readability can be reduced by verbosity. The only people who disagree with this are still writing in COBOL. A syntax that's terse but unambiguous has fewer opportunities for defects.The private/Public distinction is an example of convention replacing syntax. Seems like a good thing, as it makes the private/Public declaration explicit, instead of defaulting to either.

  • Go is a re-hashed Lua ! Fucking Americans feel pissed off when somebody else come up with something more innovative.

  • Do you realize that it's THE Rob Pike speaking. Co-author of the 2 classic texts "The UNIX Programming Environment" and "The Practice of Programming".

  • Comment removed

  • 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.

  • Enjoying your paranoia, I see. Well, carry on!