Go

From RogueBasin
(Difference between revisions)
Jump to: navigation, search
(Undo revision 29998 by Jarretcardenas (talk))
Line 1: Line 1:
 +
{{Programming language| name = Go
 +
|company = Google
 +
|influences = C, Python
 +
|updated = 2013-08-13 (1.1.2)
 +
|status = Stable
 +
|licensing = Open Source (MIT License)
 +
|platforms = Linux, OS X, Windows, FreeBSD
 +
|site = http://golang.org/}}
 +
 
'''Go''' is a programming language announced by Google in November 2009. It is a native-code compiled, garbage-collected, concurrent language, born from the developers' frustration with developing concurrent server applications with C++. Version 1 of Go was released in March 2012, and should be a stable target for future applications.
 
'''Go''' is a programming language announced by Google in November 2009. It is a native-code compiled, garbage-collected, concurrent language, born from the developers' frustration with developing concurrent server applications with C++. Version 1 of Go was released in March 2012, and should be a stable target for future applications.
  
Line 13: Line 22:
 
== Related Links ==
 
== Related Links ==
  
* [http://golang.org/ Official Go website]
 
 
* [http://go-lang.cat-v.org/ Go Programming Language Resources at cat-v.org]
 
* [http://go-lang.cat-v.org/ Go Programming Language Resources at cat-v.org]
  
 
[[Category:Programming languages]]
 
[[Category:Programming languages]]

Revision as of 16:07, 7 September 2013

Go
Programming Language
Company Google
Influences C, Python
Updated 2013-08-13 (1.1.2)
Status Stable
Licensing Open Source (MIT License)
Platforms Linux, OS X, Windows, FreeBSD
Official site of Go


Go is a programming language announced by Google in November 2009. It is a native-code compiled, garbage-collected, concurrent language, born from the developers' frustration with developing concurrent server applications with C++. Version 1 of Go was released in March 2012, and should be a stable target for future applications.

Roguelike Issues

Go has several modern programming features, such as garbage collection and closures, which help when developing roguelikes. It has a reasonably simple duck-typing-based object system, which is clean, but doesn't necessarily match the complex problem of roguelike data modeling. The concurrent features aren't much needed in main roguelike logic, which is generally very sequential, but can help when programming an user interface that runs asynchronously with the game logic.

Go has two compilers, the standalone gc one and a GCC front-end gccgo. The official GCC distribution has included the Go front end since version 4.6. The gc toolchain supports Linux, BSD, OS X and Windows on x86-32 or x86-64. Gccgo uses GCC as a backend, and can theoretically target any platform supported by GCC. As of 2012-07, there is some ARM support, but Go is not suitable for the standard type of Android app development, where native code is compiled into a dynamic library invoked by a wrapper application in Java, since Go code cannot be easily compiled into a dynamic library.

There is FFI support for linking to external C libraries like SDL or Curses. Calling C code from Go is reasonably straightforward.

As of 2012-08, there is a long-standing issue which makes garbage collection occasionally fail and the application to eventually run out of memory with some memory use patterns on 32-bit Go applications. 64-bit applications do not have the problem. This may be an issue for games, which can use complex memory allocations and run for a long time.

Related Links

Personal tools