So.. Google are going ahead with their 'Go' programming language - "a cross between C++ and Python".

Article
Official site

Not sure what my thoughts are on it yet. What does everyone else make of it..?

Recommended Answers

All 28 Replies

Well, since you're unwilling to think, I'm not going to do it for you.

I was just posting to see what the general consensus was to be honest .

Personally, I think that it sounds like a good idea in that Python and C++ are both powerful languages and the combination could balance out each language's disadvantages but I'm not entirely sure how that would work smoothly.. and even though the idea sounds nice I'm not so sure I like it running under Google - 'evil' is a strong word but..

I guess it depends what their plans are for it.. and maybe how open they are about developing it further.

Well, I like it. In particular, slices, rather than pointer arithmetic, is simply The Right Thing.

I have been looking for a good safe systems programming language, and it seems like garbage collection is the practical thing to do. The other option is Cyclone, which I don't like.

Looks like google doesn't let this language run on windows because windows is too popular. hehehe At least it will run on linux and mac. Unfortunate that it's not cross platform for all systems.

>Looks like google doesn't let this language run on windows

:-/ Oh, well that sucks. Not a fan of languages that aren't easily portable.

not even if it's mixed with such excellent features as Python's. ;)

Sorry I'm not able to burst into enthusiasm. The statement alone, they would combine Python's development speed with the "safety of a compiled language like C or C++" is a farce. C++ is one of the unsafest languages out there. Not to mention the ugly syntax ;)

One really cool hybrid between dynamically and statically typed language with a great syntax is Boo. Another language that already provides most features of Go's is D.

I guess Google's move has market-strategic reasons more than everything else. Nonetheless I would very much welcome a truly safe (unlike C++) system programming language that is backed by a strong player in the market and does not suffer from the resource hunger of .NET and Java.

commented: just because you dont understand C++ doesn't mean it's ugly or unsafe. +0

It seems Go will be used so much on server applications that's why windows has not been considered.

Maybe Windows is simply too unsafe for Go.

Actually the syntax looks a lot like a mix of Object Pascal and C++, not sure where the beauty of Python went.

not even if it's mixed with such excellent features as Python's. ;)

Sorry I'm not able to burst into enthusiasm. The statement alone, they would combine Python's development speed with the "safety of a compiled language like C or C++" is a farce. C++ is one of the unsafest languages out there. Not to mention the ugly syntax ;)

I think that quote is referring to type safety. Not to mention monkey-patch safety. If you know how to use C++, it's a very safe language. C++ provides the best "resource safety" of any mainstream language.

Go is a variant of C and has a type system very similar to C's. I think it's a great place to start -- it doesn't have exceptions, so the behavior of things is very predictable. I can imagine projects where I'd normally use C, but now I'd use Go. And Go has room to grow.

you downraved my post, and commented on my reputation "just because you dont understand C++ doesn't mean it's ugly or unsafe." Let me respond in kind:

First: You must think you've been blissed with supernatural powers to know out of nothing whether I understand C++ or not. Well you are not. I have been programming in C++ for more than 10 years. And I mean hard-core, system level programming, in safety-critical areas. I wouldn't say a language is unsafe unless I have experienced it. Besides, I'm in good company here - even Bjarne Stroustrup, the creator of C++, says it is unsafe.

Second: Ugliness is in the eye of the beholder. To say that C++ syntax is ugly is my God-given right. Period.

I know language wars are easily inflamed, but neither this thread, nor I need another one of those (even less than we need more C++ ;) )

commented: What does Bjarne Stroustrup really know? +0

I think that quote is referring to type safety. Not to mention monkey-patch safety. If you know how to use C++, it's a very safe language. C++ provides the best "resource safety" of any mainstream language.

You don't know me, so you assume I don't know what I'm talking about. I'm not bashing about C++ because I don't know it. I'm doing it because I do know it. (I've been a C++ system programmer for 10+ years.)

To say "If you know how to use C++, it's a very safe language" is a no-statement. Everything, even assembler, is safe if "you know how to use it". That's not the point about safety in programming languages.

"C++ provides the best resource safety of any mainstream language"??? Yeah, dangling pointers, memory leaks, array boundary breakage... All signs of "resource safety". The opposite is true: I'd say that virtually every other mainstream language today has a much higher level of resource safety than C++. (Alas at the expense of resource hunger, but that's another story.)

I observed a funny thing during the last decade or so: Usually people who are in flaming defense of C++ (or anything "conservative") are quick to taunt its critiques they wouldn't know what they were talking about. Truth is, it is usually the defenders who don't know what it means to work in a more advanced language. The most passionate C++ fundamentalists (and rigid opponents of Java, .NET, or really anything invented after 1990) that I've ever met have never seriously programmed in anything but C and C++. Seems to me like BMW owners who refuse to believe that a Ferrari (or anything) is faster than their beloved car brand. ;)

You don't know me, so you assume I don't know what I'm talking about. I'm not bashing about C++ because I don't know it. I'm doing it because I do know it. (I've been a C++ system programmer for 10+ years.)

I don't care about you or your appeal to self-authority. I'm going to assume you don't know what you're talking about because most people don't.

And stop having a chip on your shoulder, and I was comparing C++'s safety merits relative to Python's, because there are some.

To say "If you know how to use C++, it's a very safe language" is a no-statement. Everything, even assembler, is safe if "you know how to use it". That's not the point about safety in programming languages.

That's not true. Even if you "know how to use" assembler, there's still a high probability of yourself creating a memory error. Unless you're using a statically typed assembly language or something. If you "know how to use" C++, you can reduce the probability of memory errors in most of your code to zero. You of course have to restrict yourself to a subset of the language and standard library -- at mundane levels such as avoiding certain functions like std::vector's operator[], and at other levels such as using smart pointer types, avoiding pointers entirely, using non-cyclic data structures, just tolerating some copying, and avoiding STL-style iterators.

"C++ provides the best resource safety of any mainstream language"??? Yeah, dangling pointers, memory leaks, array boundary breakage... All signs of "resource safety". The opposite is true: I'd say that virtually every other mainstream language today has a much higher level of resource safety than C++. (Alas at the expense of resource hunger, but that's another story.)

The only way in which C++ is particularly unsafe is memory safety. Which is, of course, the most important one. In other cases, C++ has stronger control over resources, because it had to tackle this problem head-on regarding memory safety. For example, in C#, you could just write var x = File.Open("blah.txt") , or whatever the API is. The file won't get closed until the object is garbage collected. Maybe you realize this so you write x.Close(). That's still not exception-safe. So okay, like any good C# developer, you write using (var x = File.Open("blah.txt")) { ... } . It's much easier to hold references to resources like files and connections longer than you intended in languages that are not C++, because C++ gives you exception safety without having to know that something is IDisposable.

Maybe you're so worried about dangling pointers and array boundary breakage because you don't know how to use C++. Yes, I am trolling you. And yes, I might be right.

I observed a funny thing during the last decade or so: Usually people who are in flaming defense of C++ (or anything "conservative") are quick to taunt its critiques they wouldn't know what they were talking about.

I have observed a funny thing in forums for the last decade or so: people tend to project their expectations of people's attitudes onto their interpretation of what they're reading.

Truth is, it is usually the defenders who don't know what it means to work in a more advanced language. The most passionate C++ fundamentalists (and rigid opponents of Java, .NET, or really anything invented after 1990) that I've ever met have never seriously programmed in anything but C and C++. Seems to me like BMW owners who refuse to believe that a Ferrari (or anything) is faster than their beloved car brand. ;)

I'm not sure if there's anybody in this thread you're referring to, besides that guy who downrepped you for some reason.

Woah, people seem easily offended today. :S But back to the topic at hand, i'm quite annoyed that is talked about how it was a mix of python C++ etc. Because i really couldn't see much of the python in it, it doesn't look like python, it compiles, unlike python and im just trying to find when i see the thing that makes me think. Oh that sure is python!

And i want it on windows :P

I don't care about you or your appeal to self-authority. I'm going to assume you don't know what you're talking about because most people don't.
...
And stop having a chip on your shoulder, and I was comparing C++'s safety merits relative to Python's, because there are some.
...
Maybe you're so worried about dangling pointers and array boundary breakage because you don't know how to use C++. Yes, I am trolling you. And yes, I might be right.
...
I have observed a funny thing in forums for the last decade or so: people tend to project their expectations of people's attitudes onto their interpretation of what they're reading.
...

Whew, Rashakil, that was one frustrated response. I didn't mean to hurt your feeling, pal. I really didn't.

Look, I could be trolling you back, or I could take your arguments to pieces, or quote recognized authorities and studies that confirm the lack of safety in C++, or point you to references on qualities of good programming language design... But would that get us anywhere? Would that make you accept any argument of any "authority" other than yourself? Or make you start talking to me on equal footing? Probably not.

To me, a programming language is a tool, not a religion. It's a matter of practical value, not belief.

If you want to believe you are surrounded by idiots who all don't know WTF they are talking about, that's OK. (I guess it's a though that easily crops up to an intelligent person.) If you need to believe your BMW is better than my Ferrari's - that's cool too. But let's just stop polluting this thread with a nonconstructive language crusade.

However if you want to start a serious, fair and open-minded discussion about programming language safety, start a new thread, and I'm in. If not, good luck, and peace be with you.

commented: Rashakil is not only a good troll, but also a smart one. You lose. +0

i'm quite annoyed that is talked about how it was a mix of python C++ etc. Because i really couldn't see much of the python in it.

You are right, there is not much of Python in Go's syntax. I think when they (Google or else) say "like Python" they mean features and qualities of the language that allow for rapid development.

And i want it on windows :P

Me too :)

Look, I could be trolling you back, or I could take your arguments to pieces, or quote recognized authorities and studies that confirm the lack of safety in C++, or point you to references on qualities of good programming language design... But would that get us anywhere? Would that make you accept any argument of any "authority" other than yourself? Or make you start talking to me on equal footing? Probably not.

The trouble with trying to argue with me is that you don't disagree with me about C++.

Edit: What you disagree with, apparently, is the practice of providing reasons for the things you say.

The trouble with trying to argue with me is that you don't disagree with me about C++..

Good.

Edit: What you disagree with, apparently, is the practice of providing reasons for the things you say

As I said, I have no problem in providing all the reasons you need and more - elsewhere, on another thread.

One thing I would like to say if I can get this language working on Ubuntu.
"GoGoGoogle"_"

Seems to me there was once a political group called Technocrats, who envisioned a Utopian society that would rally around a universal language... But what happens when you give power to technocrats? They each plump for what he or she thinks is the perfect language! It is to laugh!

After reading the FAQ, the two features which I found interesting were:
- No type hierarchy; this is a life safer given that the ridiculous amount of time OO programmers spend juggling with type hierarchies.
- Goroutines instead of threads; spawning a new thread only when it's absolutely required is cool IMO.

That being said, the syntax looks a bit ugly and convoluted.

It's important to note that this language doesn't seem to be designed for a Python programmer craving more speed. Rather it seems geared at C++ programmers who feel they could benefit from some specific features which can be found in languages like Python, hence the phrase "a cross between C++ and Python" can be a bit misleading.

Bugga - The Google Go language isn't in the Ubuntu synaptic package manager so tons of commands need to be done to install the Go compiler. And I can tell you now very few people would want to do that so this language will never be popular at this rate with a command line interface to install and an endless installation process depending on the OS. I might just stick with Java.

Bugga - The Google Go language isn't in the Ubuntu synaptic package manager so tons of commands need to be done to install the Go compiler. And I can tell you now very few people would want to do that so this language will never be popular at this rate with a command line interface to install and an endless installation process depending on the OS. I might just stick with Java.

Honestly you deserve to be stuck with Java.

I watched an hour tech video on the Google "Go" programming language and not having any experience with Python, I could only relate to the similarities between C and C++ which there are quite a few. However, I thought some of the syntax in the language should be addressed as it might be more complicated than it needs to be for new programmers.

My experience in programming has been with C++, Visual Basic, C#, and Java. I enjoyed working in Java, but did not have the same kind of enthusiasm in VB and C#. I would like to see more work done in the syntax of both languages.

we have to GO !!...

Well, I like it. In particular, slices

How did I missed it? It's been a long time the language was released. I am keen to learn new languages.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.