I hate to say it, but it seems Rob Pike missed his target. In terms of the "niche", it sounds he was speaking about D, much more than Go. D can be as concise as Python, maps well to the "traditional" C++/Java, and has newer stuff, such as mixins, etc. Go is sort of like C, version 2011 (and this is not a feature - it's a bug).
Man this video made me feel like i just drank a glass of cool fresh water after a long walk through the scorching desert. Really well put.
Industrial code is REALLY verbose... java does not help either. It seems more like a 3in1 instant coffee: Just pour some code in there, and it will turn into this beautiful cool new app. But we all know it's not exactly the real thing, like a good made arabica espresso.
Computer Science is like LIFE. You first say that herbs are medicines(medival), then we replace them with incantations(premedival), followed by Unani(5th Century), 17th Century(Allopathy), 21st century we go back to herbs.
Similarly, Go is an example that verbosity provided by C++ and Java HINDERS programmers more than it supports them.
Python is also another example of why we should have LOVED C.
This talk described why I use Haskell, even if it veered off into talking about his pet language at the end. Lighter weight syntax, compiled code + much stronger types.
This comment has received too many negative votesshow
I’m amused how the entire talk remains completely oblivious of C#, then describes a niche which C# already fills, and claims that we need Go to fill it again :-D
I use C and Python on a daily basis and it works pretty well for the two areas I develop for, very low-level embedded, and dumb apps for my Windows box.
100% of the examples of "why C++ and Java suck" are C++. Java's not anywhere near that bad. Furthermore, The ECMA open standard language known as C#--brought about by a big, pushy company no different in this space than Google--already had the exact same objectives as Java and now Go had, and it has actually been fundamentally evolving at the core, such as to replace patterns with language features (as seen in lambdas and extension methods). Google just wanted to be INDEPENDENT, typical anti-MS.
@MrStimpy77 100%? Did you happen to stop watching before the Java example? Both C++ and Java have their flaws, as do C# and Go. A language covering all usage areas might be possible, but then you'd spend years learning all the language features.
his analysis seems right on to me. Language designers are like the people who make James Bonds weapons. Sometimes they make programmers cool and useful stuff and sometimes it's overly complex crap. At least when things are open source, we get some say in it, which is how it should be.
Btw, in my humble opinion C# doesn't have such minuses. Its syntax is much clearer and "almost" ideal. Plus, lambdas and dynamic make it realy handy. So it is already in that niche. Well, but Google doesn't like MS, so it is obvious why Rob hadn't said a word about .net ;-)
@XorLavir the .NET apis suffer from the same flaws as Java. Any little thing is a big chore and there's a community culture of accepting -- or shall I even say embracing -- undue complexity. The thing that continues to make Python or Ruby pleasant to work in is that the communities as a whole are pragmatic and will call you out if you write constipated code. This is what .NET needs but suffers from too many years of neglect and bs initiatives - just look at how WCF is destroying productivity.
@XorLavir .NET no cross platform. And .NET and environment are commercial.
For commercial programming it's not a problem. You can use anything you want to create software fast and cheaper. But what about academical projects? They always has low budget.
I'm junior scientist and i have little project and there are team about 7 developers.
I need GUI and cross-platform. And all I use must be free.
Now my choice is C++ and QT. I have speed, cross-platform, GUI and many free libs.
Well, programming languages like C++ are performance oriented. If you want to go OO, drop C++ because of its quasi-approach to abstract the machine details (you basically make your own OO system in C++). Java's types aren't 100% OO either. Keep in mind that you have to become the compiler to understand the language. [Note that C was made popular because of AT&T and UNIX; C++ builds on that and should be considered "the assembly language" of today.] (I don't know Go. I don't do Java.)
The Java example breaks about every rule in the book. It's static, the constants do not comply to Sun Java coding practices, it uses 1.4 style code instead of relying on boxing/unboxing, well the list goes on. His other example is a stack of Generics and inner classes put on top of each other. That would have been flagged as a gross abuse by any reviewer.
I'm not disagreeing on what he says in the talk per se, but those examples were below the belt.
"Go" is a bit too low level for my uses (I prefer Python), but I certainly agree with Rob about the stupid verbosity of C++ and Java, their hidden pitfalls, the suckiness of their stdlibs and of most commonly used libraries, etc.
So has GO already made the step from "it's just a project/test and we want to see how it goes", like they said at IO, to a mature language aimed for production?
1. The new outsider are often interpreted because they don't have the resources to build a fast compiler
2. The fast go compiler dosn't really make fast code. The slower go compiler creat fast code. I agree that compilers are to slow but I would make it a prim goal
3. I agree with a lot of his points but Go isn't really what he says. Its NOT! as expressiv as a good high lvl language
@nickik21 The go compiler does make pretty fast code, and it's not heavily optimized.
People can go ahead and make an LLVM based Go compiler if they want to. They went with a code base they were really familiar with, which was the Plan 9 C compilers as a basis for the Go compilers.
Go is pretty expressive, it's got closures. it's got a nice approach to interfaces and types. It's got concurrency built into the language as well as a CSP like programming model.
2. Don't know bitc. As far as C replacement goes I think Rust is the way to go (i'm not so into system language but rust has some cool stuff (functional stuff))
3. Compiled Language are still faster for low level stuff and for a system language I would still go with a compiler. I would go to LLVM its not good to reinvent the wheel.
I hate to say it, but it seems Rob Pike missed his target. In terms of the "niche", it sounds he was speaking about D, much more than Go. D can be as concise as Python, maps well to the "traditional" C++/Java, and has newer stuff, such as mixins, etc. Go is sort of like C, version 2011 (and this is not a feature - it's a bug).
DreamOfTurtles 3 months ago in playlist OSCON 2010
Man this video made me feel like i just drank a glass of cool fresh water after a long walk through the scorching desert. Really well put.
Industrial code is REALLY verbose... java does not help either. It seems more like a 3in1 instant coffee: Just pour some code in there, and it will turn into this beautiful cool new app. But we all know it's not exactly the real thing, like a good made arabica espresso.
tieigisi 4 months ago
Computer Science is like LIFE. You first say that herbs are medicines(medival), then we replace them with incantations(premedival), followed by Unani(5th Century), 17th Century(Allopathy), 21st century we go back to herbs.
Similarly, Go is an example that verbosity provided by C++ and Java HINDERS programmers more than it supports them.
Python is also another example of why we should have LOVED C.
MrXStark 7 months ago
D code compiles much faster than Go.
FlameHue 7 months ago
@FlameHue Funny that, I was thought about D as he described Go.
DreamOfTurtles 3 months ago in playlist OSCON 2010
This talk described why I use Haskell, even if it veered off into talking about his pet language at the end. Lighter weight syntax, compiled code + much stronger types.
edwardkmett 1 year ago
This has been flagged as spam show
Nice hair Asian women lushfmlk.info
noalewer 1 year ago
This comment has received too many negative votes show
I’m amused how the entire talk remains completely oblivious of C#, then describes a niche which C# already fills, and claims that we need Go to fill it again :-D
TimwiTerby 1 year ago
@TimwiTerby not a whole lot of talk about C# at OSCON - and for good reason
JefferySchmitz 7 months ago
I use C and Python on a daily basis and it works pretty well for the two areas I develop for, very low-level embedded, and dumb apps for my Windows box.
you238 1 year ago
This has been flagged as spam show
Java 1.2 became Java 2. Will Go version 1.2 become GOTO?
tinjaw 1 year ago
This has been flagged as spam show
Java 1.2 became Java 2. Will Go version 1.2 become GOTO ?
tinjaw 1 year ago
Java 1.2 became Java 2. Will Go version 1.2 become GOTO ?
tinjaw 1 year ago
nilbud 1 year ago
The blackout between the transition from the slides to the video of Rob is ANNOYING.
You'd think between O'reilly, Google, and Bell Labs they would at least know someone who could edit these better.
013108today 1 year ago
100% of the examples of "why C++ and Java suck" are C++. Java's not anywhere near that bad. Furthermore, The ECMA open standard language known as C#--brought about by a big, pushy company no different in this space than Google--already had the exact same objectives as Java and now Go had, and it has actually been fundamentally evolving at the core, such as to replace patterns with language features (as seen in lambdas and extension methods). Google just wanted to be INDEPENDENT, typical anti-MS.
MrStimpy77 1 year ago
@MrStimpy77 100%? Did you happen to stop watching before the Java example? Both C++ and Java have their flaws, as do C# and Go. A language covering all usage areas might be possible, but then you'd spend years learning all the language features.
wickdomful 1 year ago
Comment removed
MrStimpy77 1 year ago
i guess he's right in many ways. just curious he hasn't mentioned scala for more than 2 seconds. they seem to down the exact same road...
hansiraber 1 year ago
the D and Go people should pool their efforts, merge the two and call it 'The GoD Programming Language'
yudlejoza 1 year ago 43
@yudlejoza You could call it G'Do. You wait and wait for the compile to finish.
RareSpibs 1 year ago
@yudlejoza
LOL - Awesome =)
msniemi 11 months ago
his analysis seems right on to me. Language designers are like the people who make James Bonds weapons. Sometimes they make programmers cool and useful stuff and sometimes it's overly complex crap. At least when things are open source, we get some say in it, which is how it should be.
rkulla 1 year ago
time 2:50 is genious )) very funny ))
soshial 1 year ago
Btw, in my humble opinion C# doesn't have such minuses. Its syntax is much clearer and "almost" ideal. Plus, lambdas and dynamic make it realy handy. So it is already in that niche. Well, but Google doesn't like MS, so it is obvious why Rob hadn't said a word about .net ;-)
XorLavir 1 year ago
@XorLavir the .NET apis suffer from the same flaws as Java. Any little thing is a big chore and there's a community culture of accepting -- or shall I even say embracing -- undue complexity. The thing that continues to make Python or Ruby pleasant to work in is that the communities as a whole are pragmatic and will call you out if you write constipated code. This is what .NET needs but suffers from too many years of neglect and bs initiatives - just look at how WCF is destroying productivity.
farastray1 1 year ago
@farastray1
Are we talking about .net or C# as a language? Because .net has IronRuby and IronPython.
>NET apis suffer from the same flaws as Java.
That is disputable. I didn't saw in this presentation any mentioning about Java library flaws we could project on .net.
>WCF is destroying productivity
That is disputable. It is not every way tool. It is pretty small part of libraries. You don't have to use it, right?
I also can mention such marvelous project as Nemerle meta-programming.
XorLavir 1 year ago
@XorLavir .NET no cross platform. And .NET and environment are commercial.
For commercial programming it's not a problem. You can use anything you want to create software fast and cheaper. But what about academical projects? They always has low budget.
I'm junior scientist and i have little project and there are team about 7 developers.
I need GUI and cross-platform. And all I use must be free.
Now my choice is C++ and QT. I have speed, cross-platform, GUI and many free libs.
PALFINTER 1 year ago
@PALFINTER
OMG, You are out of time, sir.
Try Mono and MonoDevelop. They are mature now and included in manu Linux distribs by default.
>I'm junior scientist and i have little project and there are team about 7 developers.
Maybe you are interested in using SIMD also. Mono can do that.
tirania. org/ blog/ archive/ 2008/ Nov-03. html
C++ and QT is a good choice, but anyway using managed languages is faster for developing.
XorLavir 1 year ago
@XorLavir
I know about mono, but community of mono(C#) is not so big as c++/c.
C# little slower then c++.
I need unmanaged code, direct using of memory and so on.
If I need performance then I use c++. If I need fast developing then I use Python (for prototypes).
BUT at almost all you right. In this video no words about C#, no words about Java and so on.
PALFINTER 1 year ago
verbosity makes programs easier to maintain. Code completion solves programmers laziness. =)
tivrfoa 1 year ago
Well, programming languages like C++ are performance oriented. If you want to go OO, drop C++ because of its quasi-approach to abstract the machine details (you basically make your own OO system in C++). Java's types aren't 100% OO either. Keep in mind that you have to become the compiler to understand the language. [Note that C was made popular because of AT&T and UNIX; C++ builds on that and should be considered "the assembly language" of today.] (I don't know Go. I don't do Java.)
Moryton 1 year ago
The Java example breaks about every rule in the book. It's static, the constants do not comply to Sun Java coding practices, it uses 1.4 style code instead of relying on boxing/unboxing, well the list goes on. His other example is a stack of Generics and inner classes put on top of each other. That would have been flagged as a gross abuse by any reviewer.
I'm not disagreeing on what he says in the talk per se, but those examples were below the belt.
owlstead 1 year ago
@owlstead And yet he was easily able to find code like that in the wild...
leimy2k 1 year ago
"Go" is a bit too low level for my uses (I prefer Python), but I certainly agree with Rob about the stupid verbosity of C++ and Java, their hidden pitfalls, the suckiness of their stdlibs and of most commonly used libraries, etc.
ChilapaOfTheAmazons 1 year ago 16
So has GO already made the step from "it's just a project/test and we want to see how it goes", like they said at IO, to a mature language aimed for production?
rwese 1 year ago
@rwese Google is using Go in production systems today.
I've used it for prototyping some concurrent systems at work, as I'm not yet comfortable adopting it myself yet.
leimy2k 1 year ago
1. The new outsider are often interpreted because they don't have the resources to build a fast compiler
2. The fast go compiler dosn't really make fast code. The slower go compiler creat fast code. I agree that compilers are to slow but I would make it a prim goal
3. I agree with a lot of his points but Go isn't really what he says. Its NOT! as expressiv as a good high lvl language
nickik21 1 year ago
@nickik21 The go compiler does make pretty fast code, and it's not heavily optimized.
People can go ahead and make an LLVM based Go compiler if they want to. They went with a code base they were really familiar with, which was the Plan 9 C compilers as a basis for the Go compilers.
Go is pretty expressive, it's got closures. it's got a nice approach to interfaces and types. It's got concurrency built into the language as well as a CSP like programming model.
leimy2k 1 year ago
A few points I want to ask:
1. Why imperative? Why not functional constructs?
2. Why not something that lends itself to formal analysis like bitc?
3. How is a compiled language 'faster'? An interpreted language could simply compile known hot / cold paths (AOT) and JIT the rest.
nwmcsween 1 year ago
@nwmcsween
1. because the want to adress C programmers
2. Don't know bitc. As far as C replacement goes I think Rust is the way to go (i'm not so into system language but rust has some cool stuff (functional stuff))
3. Compiled Language are still faster for low level stuff and for a system language I would still go with a compiler. I would go to LLVM its not good to reinvent the wheel.
nickik21 1 year ago
@nwmcsween
1. Because he understands imperative programming, and most programmers know imperative programming vs a declarative or functional style.
3. If it's JIT "compiled" it's not interpreted.
leimy2k 1 year ago