Initial Thoughts on Google Go

I read the “tutorial”: and thought, “the syntax is Frankenstein ugly. They have Guido on staff, but this looks like they consulted Larry Wall. Why didn’t they just write an open source D compiler?”

Then I read the FAQ. Some very interesting ideas, and personally, ever since using C++ for some large embedded programming projects (large? embedded? not as oxymoronic as you might think), I’ve been thinking these same things for a while now:

No major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously. There are several trends:

  • Computers are enormously quicker but software development is not faster.
  • Dependency management is a big part of software development today but the “header files” of languages in the C tradition are antithetical to clean dependency analysis—and fast compilation.
  • There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript.
  • Some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages.
  • The emergence of multicore computers has generated worry and confusion.

We believe it’s worth trying again with a new language, a concurrent, garbage-collected language with fast compilation.

D has been around a while, but it just doesn’t seem to be catching on; maybe because it just doesn’t have a large corporation behind it. Maybe because it’s not fully open source. Or, maybe because it doesn’t have all the features of Go.



iron said…
Google's new programming language, called Go, took the application development world by storm when the search giant released it. The ambitious technology's pedigree features programming experts from the Unix world, including Ken Thompson, who teamed with Dennis Ritchie to create Unix. Created as a systems programming language to help speed up development of systems inside Google, Go is now viewed as a general-purpose language for Web development, mobile development, addressing parallelism and a lot more.

Popular posts from this blog

SystemVerilog Fork Disable "Gotchas"

Git Rebase Explained

'git revert' Is Not Equivalent To 'svn revert'