shenzhen-go

Experimental visual Go environment

2 years after

"SHENZHEN GO" (working title)

Build Status Doc Status license

SHENZHEN GO (working title) is an experimental visual Go environment, inspired by programming puzzle games such as TIS-100 and SHENZHEN I/O.

SHENZHEN GO provides a UI for editing a "graph," where the nodes are goroutines and the arrows are channel reads and writes. (This is analogous to multiple "microcontrollers" communicating electrically in a circuit.) It can also convert a graph into pure Go source code, which can be compiled and run, or used as a library in a regular Go program.

SHENZHEN GO was unveiled at the linux.conf.au 2017 Open Source & Games Miniconf.

Read more at https://google.github.io/shenzhen-go.

Example Graph

Dependencies

SHENZHEN GO requires:

Installation

If you are using Go 1.7, you need to have set your $GOPATH (common choices are $HOME and $HOME/go, but it's up to you). For Go 1.8, the default $GOPATH is $HOME/go so it is not necessary to set it (but you can change it to override the default if you want).

To install, open a terminal and run:

go get -u github.com/google/shenzhen-go/cmd/shenzhen-go

This should create the shenzhen-go binary in your $GOPATH/bin directory. Run it:

$GOPATH/bin/shenzhen-go

and a web browser should appear with SHENZHEN GO (if not, navigate to http://localhost:8088/ manually).

The file browser is limited to the directory shenzhen-go was started in.

Navigate to the examples/primes.szgo file and play around - this demonstrates an example prime number sieve program.

Notes

This is not an official Google product.

This is an experimental project - expect plenty of rough edges and bugs, and no support.

Related Repositories

awesome-gamesofcoding

awesome-gamesofcoding

A curated list of games that can teach you how to learn a programming language. ...

awesome-resources

awesome-resources

Awesome resources for coding and learning: open source projects, websites, books ...

ali-oss

ali-oss

aliyun OSS(open storage service) nodejs client ...

docs

docs

Documentation of Nuxt.js ...

fantastic-postgres

fantastic-postgres

Documents and tools for open source database - PostgreSQL. ...