Go language was motivated as an answer to Google's C++ problem. A lot
of their server software is written in C++.

Go provides an intrinsic way to do concurrency and via goroutine
messaging, does not revolve around having to get locks right for multi-
threaded access to objects.

Also, the goroutine concurrency is far more fine-grained than
threading. Threads are upper-bounded by what the underlying operating
system can effectively manage (usually topping out at a few thousand
at best). There are Go sample programs that spawn up to a 100,000
goroutines in a single program and harvest values from them.

However, a very significant paint point for all the C++ code base is
the build time overhead. Go language is designed to be very fast to
compile and link into executables.

Java doesn't have an intrinsic actor model approach to concurrency.
Nor has Java been targeted for very efficient compile/link into
executable ala Go.

Go also has a huge boilerplate reduction in code verbosity relative to
Java. It compiles down to native code and its feasible to directly
call a lot of POSIX APIs from Go without all the fuss and muss of
Java's JNI muck. Go didn't have a package for interacting with file
system events, but because how how easy it is to inter-operate with
Linux APIs, I was able to whip up a Go package on top of Linux inotify
subsystem in short order.

I kind of see Go as a language that has appeal to people that like the
C language. It's not as low level to the degree that C is (no pointer
arithmetic) but it has an essence of C simplicity about it. Sort of a
C brought into the 21 st century.

If you prefer the coolness factor of the functional languages, and C
didn't ever have much appeal to you, then you probably won't really
care for Go.

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to