The Go Programming Language

Поделиться
HTML-код
  • Опубликовано: 11 окт 2024

Комментарии • 252

  • @matthiaswandel
    @matthiaswandel 15 лет назад +7

    I like it.
    It fills a gap that I thing would be good. For doing a simple web app, C is too low level, C# too much overhead in terms of building it and mono. But this would give me the safety, and the fast compilation.
    I think its kind of an old-school new language. I like it!

  • @khaelou
    @khaelou 2 года назад +6

    It lived up to the hype, still exciting even 12 years later

  • @maxcode81
    @maxcode81 15 лет назад +3

    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!

  • @mpldr_
    @mpldr_ 5 лет назад +8

    Reading through the comments: "no one's gonna use it", "it's crap"
    There shouldn't be any relevant programs writt... Is that fricking Docker?

  • @DiptaparnaBiswas
    @DiptaparnaBiswas 4 года назад

    Watching this after almost 11 years. Reading the comments posted 8-10 years ago is fun!

  • @willcs18
    @willcs18 15 лет назад

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

  • @hyperthreaded
    @hyperthreaded 15 лет назад +1

    It doesn't just "count to 100,000", it starts 100,000 threads (or at least things that feel like threads from the outside) simultaneously, and lets each of them read a value from an input stream, add 1, and write the result to an output stream (where the next thread picks it up). If you tried to do that in Java or C# or another language that has explicit low-level thread support, you'd probably blow up the machine.

  • @57thSevalle
    @57thSevalle 15 лет назад

    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.

  • @refreshingocean
    @refreshingocean 15 лет назад

    Very true. Let's give it a real shot before passing any judgments. You never know!

  • @Norphax
    @Norphax 15 лет назад

    just to clarify DMD is open source, the front end is GPL.
    LDC 64bit linux is working fine, less problems than DMD32.

  • @Rohedin
    @Rohedin 15 лет назад +1

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

  • @FUZxxl
    @FUZxxl 11 лет назад

    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.

  • @fossil2k
    @fossil2k 14 лет назад

    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.

  • @KjellArneRekaa
    @KjellArneRekaa 15 лет назад +1

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

  • @MrMessageWriter
    @MrMessageWriter 14 лет назад

    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.

  • @lordmetroid
    @lordmetroid 15 лет назад

    You can use an input framework to convert the alphabetical input to another language.

  • @TaughtByAdam
    @TaughtByAdam 14 лет назад

    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.

  • @torment3d
    @torment3d 15 лет назад

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

  • @gregmark1688
    @gregmark1688 11 лет назад

    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.

  • @profmo
    @profmo 15 лет назад

    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.

  • @gregmark1688
    @gregmark1688 11 лет назад

    "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

  • @dado112233
    @dado112233 15 лет назад

    i agree with you...i ll continue to use Erlang...until (and if) GO becomes a production ready environment.

  • @Norphax
    @Norphax 15 лет назад

    At first I was interested, though it looks/feels like a toy language that does not quite fit. Some of the design decisions they chose will make it harder to add some of the popular C++ features we use today.
    If you like the idea that C needs to be improved and actually want to be able to write system libs, device drivers or a OS kernel, check out
    "The D programming language"

  • @TaughtByAdam
    @TaughtByAdam 14 лет назад

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

  • @milanpintar
    @milanpintar 15 лет назад

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

  • @57thSevalle
    @57thSevalle 15 лет назад

    i just learned DMD is made open source since 1.041/2.026 released in march 2009. sorry for being harsh earlier.

  • @ReductioAdAbsurdum
    @ReductioAdAbsurdum 15 лет назад

    "#2 is perfectly valid, as I have used well over 2 dozen languages and it mixes Pascal, basic, python, C"
    It's OBVIOUSLY a combination of other languages. The point is that this is not BAD. Virtually ALL new languages are a combination of features from preceding languages. That's how languages evolve. Would you like me to enumerate how many languages went into something like Python or C++?

  • @npe9
    @npe9 15 лет назад

    #1 golang
    #2 Other than the interface function syntax it doesn't look nearly as bad as say C++
    #3 So?
    #4 I'm sure if it gains popularity it will move to the top of the google stack.

  • @ChristianKleineidam
    @ChristianKleineidam 15 лет назад

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

  • @ShadowofCatron
    @ShadowofCatron 14 лет назад

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

  • @chamcham123
    @chamcham123 15 лет назад +2

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

  • @donatienar
    @donatienar 14 лет назад

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

  • @TheBestNameEverMade
    @TheBestNameEverMade 15 лет назад

    D what about that? It has a lot of good features for a efficient modern language.

  • @npe9
    @npe9 15 лет назад

    They based 6g on Kencc(Ken's own C dialect) which is pretty close to the fastest compiler out there.

  • @michrev
    @michrev 15 лет назад

    Yeah, I oversimplified due to RUclips's 500-char limit. If all a thread does is inc a value then pass it to the next thread, doing that 100000 times should not be very slow despite synchronization and thread overhead et cetera. Still, the fact that you can get away with such reckless use of threads at all is pretty cool. (Though recklessness itself is not always a good trait for programmers!)
    I almost wanna try that in Java now, just to see if my WinXP blows up!

  • @jaybny
    @jaybny 15 лет назад

    the compiler is implementing it as 1 thread per goroutine

  • @fmanh
    @fmanh 14 лет назад

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

  • @ChiakiNanami736
    @ChiakiNanami736 2 месяца назад

    Anyone else just in pain seeing vides stamped "14 years ago"?

  • @encaputxat
    @encaputxat 15 лет назад

    amazing, google never stops

  • @lordmetroid
    @lordmetroid 15 лет назад

    goroutines sounds very much like Erlang processes, only that Erlang has been in production for 20 years.

  • @gustavocabrall
    @gustavocabrall 14 лет назад

    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!

  • @Octamed
    @Octamed 15 лет назад

    falcon is a nice new language. It can do all sorts of programming styles
    google "falcon language"

  • @lacostej
    @lacostej 15 лет назад

    > so to change visibility ...?
    Going private -> public, you shouldn't have many references to fix. The other way around, you have a bigger problem (you're breaking code anyway).
    And you will get refactoring support I guess.
    > I have to explicitly import a package...
    Not a problem to me. Package names are short anyway. Things are explicit that way.
    > and ... generics today?
    because generics wasn't an initial goal ? Is it that criticail. I prefer they do it right. It took Java 10 years...

  • @bedorlan
    @bedorlan 14 лет назад +1

    the channels are really good !
    i'm going to trying

  • @Etrage
    @Etrage 15 лет назад

    A person who thinks Pascal deserves to be laughed at. A person who forces others to think Pascal deserves to die.
    Your attempt to argument with names instead of objective reasons only proves the point.

  • @57thSevalle
    @57thSevalle 15 лет назад

    i think so, as they've partnered before for UTF-8

  • @maxcode81
    @maxcode81 15 лет назад

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

  • @clauchau
    @clauchau 15 лет назад

    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.

  • @Minddrops
    @Minddrops 12 лет назад

    I hope that this great language will take the place of java in android in the futur

  • @ThoughtProgramming
    @ThoughtProgramming 11 лет назад

    XXX Thought is Precious XXX
    Thinking in it’s most part is Behavioral Activity. Behavioral Activity can be programmed. Using language as a mind software we permanently are repeating our desired goals through spoken words, just like a mantra. This way we are establishing a specific pattern of information and literally downloading as well as programming the subconscious mind, which in response will trigger the programmed action. Our subconscious mind works like a computer. It turns commands..

  • @KjellArneRekaa
    @KjellArneRekaa 15 лет назад

    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.

  • @IliasBartolini
    @IliasBartolini 15 лет назад +1

    first impression... sounds interesting

  • @ThoughtProgramming
    @ThoughtProgramming 11 лет назад

    XXX
    Understanding thought patterns can be applied to reprogram unwanted thinking into positive thinking. Patterns are regular repetitions, in one form or another, a real play of beauty and design if rightfully applied. A pattern is regularity in the natural world therefore most patterns are repeating themselves in a predictable way. Thinking requires a language and hereby thinking also underlies the same applications. Did you ever think without using your language? That’s impossible, indeed.
    XXX

  • @LuMathis
    @LuMathis 15 лет назад

    anaphaxeon, it's a systems language; it's meant to be on the level of C, not C#.

  • @nicojuro
    @nicojuro 11 лет назад

    The only thing you said there that i could go without is blogger, i prefer tumblr for blogs.
    Without Google the internet wouldn't be the same, it'd be even more of a cesspool than it is.

  • @pagola
    @pagola 12 лет назад

    @FlameHue dnt hate those that are stronger than you

  • @gregmark1688
    @gregmark1688 11 лет назад

    I really don't know what you mean by that. But you're right. I make plenty of them and I (rather obviously) consider myself a smart people.

  • @clementj2005
    @clementj2005 14 лет назад

    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,

  • @DonQuichotteLiberia
    @DonQuichotteLiberia 14 лет назад

    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?

  • @TimVerweij
    @TimVerweij 15 лет назад

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

  • @Javi18House
    @Javi18House 15 лет назад

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

  • @57thSevalle
    @57thSevalle 15 лет назад

    the LDC win32 port is being dev by wilsonk , i've asked him personally via eMail if theres any possibilities for 64bit port, he replied he's working on win port in leisure times, development is a bit slow. i also asked the devs on IRC (#ldc) myself. don't call me a liar, i've been with D for few yrs already. im not going to respond to such childish comment anymore, have a nice day.

  • @jowens81
    @jowens81 15 лет назад

    Is that Ken Thompson as in B/UTF8/Multics Ken Thompson? Very cool if so.

  • @Jurily
    @Jurily 15 лет назад

    Yeah, let's have an opinion about a language we've never written a working program in, that'll be so informed!

  • @lennyhome
    @lennyhome 11 лет назад

    Please keep your word and consider my advice.

  • @gregmark1688
    @gregmark1688 11 лет назад

    Haskell has everything there is to have, and then some stuff nobody has even realized it has yet. Implementing Monad-based device drivers may be just a bit beyond the typical systems programmer, however. ;)

    • @linearz
      @linearz Год назад

      Haskell everything, except user base

  • @Parker8752
    @Parker8752 10 лет назад +1

    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.

    • @binaryblade2
      @binaryblade2 10 лет назад

      The current language is semicolon optional, you can insert a semicolon to put multiple statements per line. They are implicitly inserted if you omit them.

    • @Parker8752
      @Parker8752 10 лет назад

      What if you want a single statement that spans multiple lines?
      Take for example if you're using ternary operators to assign a value to a variable (using the syntax = ? : ? : ). It's so much easier to read that style of code if you can insert a new line into the statement and have the statement terminate at a semicolon, than if you have to stick the entire thing on a single line. I wouldn't want to stick a single variable assignment into an if statement if that's the only thing the condition actually affects, nor would I want to do it all in one line.

    • @binaryblade2
      @binaryblade2 10 лет назад

      From what I understand its not the new line but whitespace after certain structures that seperate statements.

    • @gathgealaich2552
      @gathgealaich2552 9 лет назад +1

      +Parker8752 "there's a reason why hardware drivers are still all written in C" The reason is called "inertia"...

    • @Parker8752
      @Parker8752 9 лет назад +1

      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.

  • @bomaryniuk3639
    @bomaryniuk3639 5 лет назад

    Fascinating is to read all these negative comments nowadays. :-D

  • @stvienna
    @stvienna 14 лет назад

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

  • @jmpoder
    @jmpoder 15 лет назад

    I wonder why there's no compiler support for windows, only linux and mac

  • @vudarksky
    @vudarksky 12 лет назад

    so you don't want Android , Search , Sites , Drive , RUclips , Blogger , G+ , Glass (Soon) , Maps or Earth , and pretty much everything in the web ?

  • @3yE
    @3yE 15 лет назад

    What's wrong with D2 per se? Please elaborate, i haven't been following D for the last 2 years.
    Also, with the language being governed by a single authority and non open source portion of DMD being x86 only, there is frankly little point in opensourcing it.

  • @BeyondDGrave
    @BeyondDGrave 14 лет назад

    @BinaryReader
    Faster Development vs. Managing memory differently / increase in processing speed.
    It is a trade-off alright.

  • @shishkabobby
    @shishkabobby 15 лет назад

    that was my thought too.. Is go the 'systems language' of a new multicore friendly OS with Erlang the application language?

  • @urbansoot
    @urbansoot 15 лет назад

    very interesting. will give it a try!

  • @ManuelBTC21
    @ManuelBTC21 15 лет назад +1

    I disagree. What hasn't changed is the style of the languages and the fundamental concepts. We are programming on a higher level though (higher levels of abstraction and ever more libraries).
    Arguing that nothing has fundamentally changed is like arguing that the grammar of a high school student as compared to a novelist hasn't changed. That may be true but entirely misses the point that the vocabulary is larger and the concepts expressed are much more elaborate.

  • @G0trex
    @G0trex 15 лет назад

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

  • @57thSevalle
    @57thSevalle 15 лет назад

    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.

  • @theandichrist
    @theandichrist 15 лет назад

    This is exciting!

  • @JuddMan03
    @JuddMan03 15 лет назад

    according to the slideshow, 10% - 20% slower than C
    Probably a fair bit faster than java.

  • @ReductioAdAbsurdum
    @ReductioAdAbsurdum 15 лет назад

    #1 and #4 are the same, #2 and #3 are somewhat clueless. (1) ALL languages are a mix of multiple preceding languages. (2) The first C++ compilers simply translated into C for compilation -- but that's moot, because Go doesn't even do that.

  • @afr65536
    @afr65536 13 лет назад

    @d0m96 in Go, you can choose

  • @Norphax
    @Norphax 15 лет назад

    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"

  • @Keyframe3D
    @Keyframe3D 15 лет назад

    in this day and age why opt for GCC backend instead of LLVM? Those 10% alone would come from LLVM backend.

  • @Truthiness231
    @Truthiness231 15 лет назад

    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)

  • @Javi18House
    @Javi18House 15 лет назад

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

  • @gwizvideo
    @gwizvideo 15 лет назад

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

  • @classmaker
    @classmaker 14 лет назад

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

  • @KrakensDen
    @KrakensDen 14 лет назад

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

  • @gregatragenet
    @gregatragenet 15 лет назад

    Do you have to work at google to have a keyboard with the theta key? ;)

  • @aoeaoae
    @aoeaoae 15 лет назад +1

    this is all fompt up y'all!
    so to change visibility of an object I have to edit all the references to it in a code?
    I have to explicitly import a package, and then use all its exported objects fully qualified by a package name?
    and how one creates a language two years ago and still figures out generics today? designs it around a concept of duct typing and never mentions the concept?
    stop inventing the bended wheel.

  • @advance512
    @advance512 15 лет назад

    It isn't threads! It's "goroutines", or rather - "coroutines". There's only one thread - there are no synchronization needs, at all. Look it up: "coroutine" in Wikipedia.

  • @therid420
    @therid420 15 лет назад

    but then what whould happen when you actually needed one?

  • @JuddMan03
    @JuddMan03 15 лет назад

    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

  • @MTGandP
    @MTGandP 15 лет назад

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

  • @yankoaleksandrov
    @yankoaleksandrov 4 года назад

    GO GO GO !

  • @HealyHQ
    @HealyHQ 15 лет назад

    But will it blend?

  • @3yE
    @3yE 15 лет назад

    You argue with the name "Pascal" instead of objective reasons, so that's what you get back.

  • @balkiprasanna1984
    @balkiprasanna1984 12 лет назад

    I agree with you...

  • @cshtreck
    @cshtreck 15 лет назад

    I love D. I can't understand why they'd put rockets on python.