backtop


Print 33 comment(s) - last by wempa.. on Nov 12 at 4:37 PM

Google says Go isn't ready for enterprise deployment

When it comes to programming, many of the languages that are commonly used have been around for a long time. Languages like C++ and JAVA have been used for numerous types of software. Google feels that while computers have become much faster over the years, developing software has not.

To help remedy this shortcoming Google has unveiled a new programming language called Go. Google describes Go as an experimental language that attempts to combine the speed of Python with performance and safety of C or C++.

Google Go team members wrote a blog post saying, "In our experiments with Go to date, typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C. Go is designed to let you move fast."

One caveat of Go is that not even Google is using the language internally at this time. The Go team says that the language is now mature enough for wide scale enterprise deployment. A post on the Go FAQ page reads, "We hope adventurous users will give it a try and see if they enjoy it. Not every programmer will, but we hope enough will find satisfaction in the approach it offers to justify further development."

The Go team gave a few trends that lead to the development of the Go language. The team says that the header files of languages like C are detrimental to fast compilation. The team also feels that garbage collection and parallel computation are not well supported by popular system languages.

The Go team wrote, "Go is a great language for systems programming with support for multi-processing, a fresh and lightweight take on object-oriented design, plus some cool features like true closures and reflection."



Comments     Threshold


This article is over a month old, voting and posting comments is disabled

Next...
By Spivonious on 11/11/2009 12:28:56 PM , Rating: 4
The world doesn't need another general-purpose language.

I didn't take a deep look at it, but it seems to be just a wrapper around C. It even uses a modified GCC compiler.

I'll stick with .NET for now, since it gives me garbage collection, easy parallel programming, the maturity of a 4th version platform, and a very nice IDE in Visual Studio.




RE: Next...
By wempa on 11/11/2009 12:34:26 PM , Rating: 4
This could be a very useful language if it gives you the power and speed of C and the development speed of a scripting language. Also, the point about the dependencies and header files is dead on. I always hated that about building C/C++ code.


RE: Next...
By Master Kenobi (blog) on 11/11/2009 12:37:38 PM , Rating: 2
I'll give you the point for header files, they are somewhat of a nuisance. However in the world of continually evolving software, header files have their uses. PL/SQL from Oracle is written with much the same structure.


RE: Next...
By TomZ on 11/11/09, Rating: -1
RE: Next...
By bandstand124 on 11/11/2009 1:56:35 PM , Rating: 3
C# is for programming at the application level. Java is mostly used for applications as well.

C, C++ is for systems programming, *nix is written in C/C++. Also, what do you think Windows is written in, it ain't C#. Go is intended to be a modern language for this that provides the advantages of C but without all the archaic crap.

You would expect people to write an operating system in Go or C or C++, you wouldn't in C# or Java (although there are a few efforts in Java).

Other benefits over C/C++ are garbage collection which is now good enough to be worth the programmer time saved and good support for multi-core.


RE: Next...
By Trickydicky on 11/11/2009 7:30:20 PM , Rating: 3
Windows may well be written in C# in the future:

http://research.microsoft.com/en-us/projects/singu...


RE: Next...
By bandstand124 on 11/12/2009 4:24:14 AM , Rating: 2
I will believe that when I see it. Microsoft historically have had problems executing these grand ideas. Cairo? WFS?


RE: Next...
By bandstand124 on 11/12/2009 6:28:16 AM , Rating: 2
I just looked at that singularity thing, there is still a whole bunch of it written in (drum roll)... C/C++!


RE: Next...
By ggordonliddy on 11/11/2009 11:28:04 PM , Rating: 1
quote:
what do you think Windows is written in

Most of the graphics layer of Windows 7 is written in an advanced version of Logo:

http://home.messiah.edu/~deroos/CSC171/LogoLab/Log...
http://logo.twentygototen.org

Some Fortran is also heavily utilized for the new Start menu logic.


RE: Next...
By bandstand124 on 11/12/2009 4:27:45 AM , Rating: 2
The actual operating system is written in C/C++. You are talking about the user interface.


RE: Next...
By ggordonliddy on 11/12/2009 1:13:32 PM , Rating: 3
But do you seriously DENY that it is written in LOGO and Fortran? Pshaw! A pox on your house!


RE: Next...
By wempa on 11/11/2009 2:56:37 PM , Rating: 3
Java and C# don't come anywhere near the speed of compiled C code.


RE: Next...
By BailoutBenny on 11/11/2009 7:44:57 PM , Rating: 3
Let me fix that for you:

Java and C# don't come anywhere near the speed of HIGHLY OPTIMIZED SINGLE PLATFORM C code.

Java and C# are about on par with C code that is not optimized for any particular architecture.

Java and C# programmer here with a C/C++ background.

As for Google's language, who cares. It's another C descendant, we have enough of those. Until someone can come up with something better than C, it won't matter.


RE: Next...
By bandstand124 on 11/12/2009 4:33:12 AM , Rating: 2
I totally agree, the debate here is not how good this language is for web developers or whatever. It is simply:

C/C++ is used almost exclusively for systems programming, can Go replace it and make the experience better?

It has to be better than C, and I think they have some good ideas. Personally, I am glad that people are still trying and I think the goroutines give it a serious edge.

If it succeeds in being better than C, only time will tell. I think it an easier language for a newbie to learn already.


RE: Next...
By wempa on 11/12/2009 4:37:43 PM , Rating: 2
OK, well the "HIGHLY" part of your statement is debatable. Also, C# ties you to MS platforms unless you count mono.


RE: Next...
By Master Kenobi (blog) on 11/11/2009 12:35:13 PM , Rating: 2
I looked through it, I don't really see anything particularly unique to it to warrant time learning the language and utilizing it. It seems to have the same charactistics with C/C++ with some overhead. I'm not convinced its faster to program for either.


RE: Next...
By Spivonious on 11/11/2009 12:42:50 PM , Rating: 4
Reading through this: http://golang.org/doc/go_lang_faq.html

This language seems like it was designed in the 70s. There are objects, but no inheritance, explicit interfaces, polymorphism, method overloading. There is concurrency, but no real locking capabilities, so bring on the race conditions. There is no support for generics, no assertions, and no exception handling.

No serious development will ever take place with this language.


RE: Next...
By bandstand124 on 11/11/2009 2:25:34 PM , Rating: 2
I think they are taking a different approach to concurrency using CSP. There shouldn't be any race conditions, livelocks or deadlocks.

Also, they argue that assertions encourage lazy programming, generics are more trouble than they are worth, method overloading is too slow in terms of compilation speed and it can obscure meaning.

Only time will tell if anything is done with it, I guess.


RE: Next...
By lebe0024 on 11/11/2009 4:43:47 PM , Rating: 2
It doesn't have inheritance because you don't need it. It uses duck-typing just like python, ruby, or any other awesome OO scripting languages. As long as the object responds to the message you're sending it, you're good to go.

Any language that compiles to binary, is very very fast, has great OO support, and has its own garbage collection is going to be a game changer. I absolutely love C++, but I'd like it more with duck-typing and garbage collection, and it appears that's what Go is.


RE: Next...
By BailoutBenny on 11/11/2009 7:59:59 PM , Rating: 2
Rather have Java or C#. JavaFX is a nice scripting version of Java that still compiles to Java.

Java and C# both have JIT VM's so compiling to binary still occurs. They both have great OO support and garbage collection. Both languages have great threading models. In fact, out of all the things you listed, the only thing they don't have is duck typing, which I hate with all the essence of my being anyway. Java wasn't the game changer it could have been because of its early drawbacks but C# has already started to change the game.

Go isn't going to go anywhere, hell even Google won't use it.


RE: Next...
By rs1 on 11/11/2009 8:39:56 PM , Rating: 2
Duck-typing is just jargon for "the language doesn't have a typing system, but we pretend that it does anyways". It's really not a positive in any context outside of development speed (and even then it only improves development speed for simple projects, for anything truly complex it just obfuscates the code). It doesn't make the language safer or more expressive, it just makes it easier to make a mess out of your code.


RE: Next...
By rs1 on 11/11/2009 7:09:14 PM , Rating: 2
quote:
I didn't take a deep look at it, but it seems to be just a wrapper around C. It even uses a modified GCC compiler.


I read through their tutorial, and I think that's a pretty fair assessment. However, I will say that the support for concurrent programming looks really nice (just place the "go" keyword in front of any function call, and that call will execute in a new thread), as do the built-in data structures for cross-thread communication/synchronization.

I think it's still a little too low-level for widespread use (you still get to muck around with pointers, and there's a new memory allocation operator called make() whose behavior is subtly different from new()), though the big let-down for me was that despite the claims made that Go is an object-oriented language, there's nothing at all in the tutorial to indicate this. It looks like more of a functional/procedural language to me.

It might be useful for low-level things, and I think the concurrency model would make it a fun language for implementing a server in, but I wouldn't really use it for any general-purpose or high-level programming jobs.


Hm...
By rs1 on 11/11/2009 2:04:17 PM , Rating: 2
quote:
Google describes Go as an experimental language that attempts to combine the speed of Python with performance and safety of C or C++.


This statement struck me as a bit odd. As an interpreted language, python is in no way speedy to execute. Maybe in this case "speed" refers to the time it takes to develop/implement a program in the language?

But regardless, calling C/C++ "safe" is just ludicrous. Both of those languages give you numerous ways to shoot yourself in the foot (pointer types, explicit memory management, etc.), and in general require a more knowledgeable developer than higher-level languages like python and Java.




RE: Hm...
By bandstand124 on 11/11/2009 2:12:45 PM , Rating: 2
I see what you mean that is an odd statement.

Maybe it means the "speed of developing with" Python.


RE: Hm...
By peelman on 11/11/2009 2:31:07 PM , Rating: 2
He made a pretty clear distinction by saying SPEED of python and PERFORMANCE of C/C++. He was very much referring to the fact that the amount of time it takes to write something in a modern scripting language is a fraction of what's needed in C/C++. There are advantages to both. I welcome something else that might be a happy medium between the hideous ness of C/C++, the crap performance of Java, and the speed of development of Python/Ruby/etc.


RE: Hm...
By bobsmith1492 on 11/11/2009 4:54:57 PM , Rating: 2
C is a great language. What is this hideous ness you speak of?


typo?
By AmishElvis on 11/11/2009 1:06:17 PM , Rating: 5
quote:
One caveat of Go is that not even Google is using the language internally at this time. The Go team says that the language is now mature enough for wide scale enterprise deployment.


do you mean NOT mature or NOW mature?




RE: typo?
By Sivar on 11/11/2009 1:56:37 PM , Rating: 2
I found that confusing as well...

quote:
Google says Go isn't ready for enterprise deployment
quote:
The Go team says that the language is now mature enough for wide scale enterprise deployment


I think it's safe to say that you were right, he meant to type "not".


Just say NO to Google...
By djcameron on 11/11/2009 12:44:02 PM , Rating: 2
A number of years ago there was a fear that Microsoft was going to take over everything. Google is a far more fearsome entity than Microsoft was ever. What's worse about Google? Well, Google tracks everything that you do! Privacy? I think not!




RE: Just say NO to Google...
By deputc26 on 11/11/09, Rating: 0
RE: Just say NO to Google...
By djcameron on 11/11/2009 5:28:57 PM , Rating: 2
That is one of the most asinine arguments that you could possibly make in rebuttal. What the heck, why don't we just publish everyone's browsing habits, email, chat sessions, etc on the web for everyone to view? You're not hiding anything, are you?


By ggordonliddy on 11/11/2009 11:32:11 PM , Rating: 2
quote:
The Go team gave a few trends that lead to the development of the Go language.

Please learn basic spelling/grammar. "Lead" (pronounced leed) is the present form of the verb. "Led" (pronounced like the metal) is the past tense.




Great New Language
By HotPlasma on 11/12/2009 7:35:34 AM , Rating: 2
Does anyone want a "speedy" language like Python that compiles instantly? How about a language that lets you really get into nitty-gritty bit manipulations and other low-level stuff? One that supports OO, including inheritance? How about one with a huge user community? What about one with a huge code base to borrow from.

It's called Perl and it's been around for years.




"So, I think the same thing of the music industry. They can't say that they're losing money, you know what I'm saying. They just probably don't have the same surplus that they had." -- Wu-Tang Clan founder RZA











botimage
Copyright 2012 DailyTech LLC. - RSS Feed | Advertise | About Us | Ethics | FAQ | Terms, Conditions & Privacy Information | Kristopher Kubicki