Google releases new programing language.

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View



Google releases new programing language.
http://golang.org /

http://tech.yahoo.com/news/infoworld/20091110/tc_infoworld/99864

and for your viewing pleasure:

http://www.youtube.com/watch?v=rKnDgT73v8s

a one hour youtube video!


Cheers Don...



--
Don McKenzie

Site Map:            http://www.dontronics.com/sitemap
We've slightly trimmed the long signature. Click to see the full one.
Re: Google releases new programing language.



Quoted text here. Click to load it

Looks interesting, in the sed->awk->Perl tradition perhaps.

But "goroutines"? Somebody should be flogged...

--
Rich Webb     Norfolk, VA

Re: Google releases new programing language.


Quoted text here. Click to load it
gotines?
gootines?
They got into trouble as soon as they named it "go"

Bob

Re: Google releases new programing language.



Quoted text here. Click to load it

A quite decent review by MarkCC over at Good Math, Bad Math
<http://scienceblogs.com/goodmath/2009/11/googles_new_language_go.php

Mark qualifies as One Smart Cookie and he has had some time to play with
the language since he works at Google. Short version: ... nah, read the
original; it's not too long and has useful insights.

The best, though, was from commentator James H G Redekop: "I get this
feeling they picked the name so that when they put out the next version
of the language, they can call it Go2 and make Dijkstra jokes."

--
Rich Webb     Norfolk, VA

Re: Google releases new programing language.


Quoted text here. Click to load it

Can't it print simple words ?  Lazzo may be interested....


geoff



Re: Google releases new programing language.


On Fri, 13 Nov 2009 05:43:06 +1100

Quoted text here. Click to load it

Looks a lot like Python, but with a compiler instead of an
interpreter.  *shrug*

--
Rob Gaddi, Highland Technology
Email address is currently out of order

Re: Google releases new programing language.



Quoted text here. Click to load it


To me, it looks a lot more like C/Java than it looks like
Python:

 * whitespace isn't significant
 
 * curly-braces as block delimiters
 
 * semicolons to separate statements  

When it comes to semantics rather than looks, it still doesn't
seem all that similar to Python. In general, the object/type
system doesn't seem to be comparable (Go has no inheritence).

Go also has no exceptions or any practical error-handling
facilities.

All in all, I was pretty underwheled.

--
Grant Edwards                   grante             Yow! I have the power to
                                  at               HALT PRODUCTION on all
We've slightly trimmed the long signature. Click to see the full one.
Re: Google releases new programing language.



Quoted text here. Click to load it
[...]

One big difference between Python and Go that I forgto to
mention is that go is statically typed while Python is
dynamically typed.  That's a pretty fundamental difference.

I use Python every day, and I really don't see where the
comparison to Python comes from.  To me it looks more like
cleaned up Java or C with garbage collection.

--
Grant Edwards                   grante             Yow! What a COINCIDENCE!
                                  at               I'm an authorized "SNOOTS
We've slightly trimmed the long signature. Click to see the full one.
Re: Google releases new programing language.


Quoted text here. Click to load it

That's my take on it too. What really impressed me was the great
concurrency stuff.

--
    W
  . | ,. w ,   "Some people are alive only because
We've slightly trimmed the long signature. Click to see the full one.
Re: Google releases new programing language.


Quoted text here. Click to load it

This is comp.arch.embedded - where's the compilers for non-x86 targets?
  I suppose that gccgo could be re-targeted, if the run-time library is
not too difficult to port.

 From a very quick glance, it looks like some good points:

Source in utf-8 with utf-8 support throughout (not a big deal for
embedded systems, but great for "big" systems);

Proper modules and namespaces;

Useful standard libraries;

Inferred strong typing;

Mandatory braces in for, if and switch statements;

Proper arrays that are distinct from pointers;

Maps (like Python dicts or Perl hashes);

Support for processes and communication;

Explicitly sized integers;


and some bad points:

Separate compiler and linker steps (you'd think they would have learned
from the "success" of gcc's link-time optimisation project);

Much of the ugliness from C, with a good dose of its own (though less
than C++ templates);

Currently limited to x86 and amd64.

Re: Google releases new programing language.



Quoted text here. Click to load it

Well they specifically mention that an incomplete port to ARM exists so
I guess it is not too far away.

Re: Google releases new programing language.



Quoted text here. Click to load it

The deifference between a Public function and a private function is
determined by the first character of the name. But when using UTF-8
how does it tell the difference for say Japanese names?


Antoon



Re: Google releases new programing language.


Quoted text here. Click to load it

You'd have to ask someone who wants to program with Japanese function names.

I don't really see much benefit from being able to use non-ASCII
characters in function or variable names.  But then, I program in
English (and even if I occasionally use Norwegian words in names, it's
easy to transliterate for programming purposes).  Where I do see utf-8
as potentially useful is in strings, and possibly in comments and inline
source code documentation.

I'm not a fan of having something as small as the capitalization of a
name affecting something as important as the visibility of a function.

Re: Google releases new programing language.


Quoted text here. Click to load it

It supports ARM as well as x86.

--
    W
  . | ,. w ,   "Some people are alive only because
We've slightly trimmed the long signature. Click to see the full one.
Re: Google releases new programing language.


Quoted text here. Click to load it

I noticed that as a minor point deeper inside the documentation - the
front pages don't mention it.

Obviously Google have worked on compilers targeting the cpus they are
interested in.  But if it is going to be of interest to
comp.arch.embedded, it there must be compilers targeting the cpus /we/
are interested in.  x86 and amd64 barely register here, and pure ARM is
not much better.  If and when there are ports for ARM Thumb, Cortex,
PPC, Coldfire, MIPs, AVR, 8051, msp430, etc., etc., then c.a.e. can get
excited.

Re: Google releases new programing language.


Quoted text here. Click to load it

There's a gcc frontend for Go, so doesn't that cover Cortex,
ARM Thumb, PPC, Coldfire, MIPS, AVR, SPARC, IBM z-series, H8,
SH, MSP430, and so on?

--
Grant

Re: Google releases new programing language.


Quoted text here. Click to load it

Depends what you mean by 'cover'.
 If that means can create 'hello world', yes, but the serious weakness
of a hop that includes gcc, is the debug info no longer reaches back
to the users source code.
 Any polished debug environment needs source level Step, and full
variable watch, in the native structures.

-jg



Re: Google releases new programing language.
Quoted text here. Click to load it

The gcc front end is certainly a good start.  gcc has numerous
front-ends (C, C++, Fortran, Ada, Objective C, and various other
out-of-tree languages), a middle-end, and a range of back-ends
(something like 30+ in-treee).  However, gcc is not nearly as modular as
it appears - there are interconnections between front-end parts and
back-end parts that mess things up.  In particular, you can't just take
the "go" front-end and configure and compile for the AVR back-end - it's
quite possible that the "go" front-end makes demands of the back-end,
such as insisting on it being 32-bit.  As another example, avr-gcc is
missing some features in its C++ support (though some would say that
having only limited RTTI and exceptions support is a good thing...),
partly because of missing front-end, back-end interaction.

Even when minimal requirements are met, there is then the quality of the
code.  Again as an easy example, the avr backend can generate quite
reasonable 32-bit code - but if the front-end language insists on using
32-bit all the time, the final generated avr code will be terrible even
if it is technically correct.

Then there are the libraries - although I believe that much of the "go"
libraries is written in C, there are still porting issues.

So a gcc front-end for "go" is a big step towards portability, but there
are still more steps ahead.


Quoted text here. Click to load it

I think this is a bit mixed up.  Having a gcc front-end means that you
/can/ get debug information all the way through.  I believe you are
thinking of a a C pre-processor (like "cfront") that generates C code
and is then compiled.  If that were the case, using C as an intermediary
language, then most debug information is typically lost.

Of course, having a gcc front-end does not guarantee that you do get
good debug information - it depends on the quality of the debug
information generated by the gcc "go" front-end, on how well that fits
with gdb (or other elf debuggers), and how well the actual debugger
software works.

Re: Google releases new programing language.
Quoted text here. Click to load it

If you check the doc's, they mention that the GCC frontend generates C
code, which is all you get for debugging.

--
    W
  . | ,. w ,   "Some people are alive only because
We've slightly trimmed the long signature. Click to see the full one.
Re: Google releases new programing language.
Quoted text here. Click to load it

I haven't read the docs, so I'll take your word for it.  But if that's
the case, then it is not a gcc frontend - it's a pre-processor
generating C as an intermediary language.  That's fair enough - there
are several compiler tools that do that, and it's a quick way to make a
fairly portable tool.  But the terminology they have used on the website
is at best misleading.

Site Timeline